Download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
language Essence 1.3
$ prob030.essence: Balanced Academic Curriculum Problem
$ Problem details available at http://www.csplib.org/Problems/prob030/
$ 07 September 2007
$
 
given n_courses, n_periods,
      load_per_period_lb, load_per_period_ub,
      courses_per_period_lb, courses_per_period_ub : int(1..)
 
letting Course be domain int(1..n_courses),
        Period be domain int(1..n_periods)
 
given prerequisite : relation of (Course * Course),
      course_load : function (total) Course --> int(1..)
 
find curr : function (total) Course --> Period
 
such that
    forAll c1,c2 : Course . prerequisite(c1,c2) -> curr(c1) < curr(c2),
    forAll p : Period . (sum c in preImage(curr,p) . course_load(c)) <= load_per_period_ub /\
                        (sum c in preImage(curr,p) . course_load(c)) >= load_per_period_lb,
    forAll p : Period . |preImage(curr,p)| <= courses_per_period_ub /\ |preImage(curr,p)| >= courses_per_period_lb