Download
language ESSENCE 1.2.0
$ prob039.essence: Rehearsal Problem
$ Problem details available at http://www.csplib.org/Problems/prob039/
$ 07 September 2007
$
given n_pieces, n_players : int(1..)
letting Piece be domain int(1..n_pieces),
Index be domain int(1..n_pieces),
Player be domain int(1..n_players)
given duration : function (total) Piece --> int(1..),
plays_in : relation of (Player*Piece)
find order : function (total, bijective) Index --> Piece,
arrive, leave : function (total) Player --> Index
maximising
sum p : Player .
sum([duration(order(i)) | i : Index, i <= arrive(p) ]) +
sum([duration(order(i)) | i : Index, i >= leave(p)
, i <= n_pieces ])
such that
forAll p : Player . plays_in(p,arrive(p)),
forAll p : Player . plays_in(p,leave(p)),
forAll p : Player .
forAll i : Index
, plays_in(p,order(i))
. arrive(p) <= i /\ leave(p) >= i