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