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/prob/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 |