Download
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