Download
language ESSENCE 1.2.0
$ prob038.essence: Steel Mill Slab Design Problem
$ Problem details available at http://www.csplib.org/Problems/prob038/
$ 07 September 2007
given n_colours, n_orders, col_per_slab : int(1..)
given nbSizes : int(1..)
letting sizes be domain int(1..nbSizes)
letting Colour be domain int(1..n_colours),
Order be domain int(1..n_orders)
given ordSize : function (total) Order --> int(1..),
ordCol : function (total) Order --> Colour
find cut : function set of Order --> sizes
minimising sum (_,os) in toSet(cut) . os
such that
forAll os1, os2 in defined(cut), os1 != os2 . |os1 intersect os2| = 0,
forAll o : Order . exists os in defined(cut) . o in os,
forAll os in defined(cut) . (sum o in os . ordSize(o)) <= cut(os),
forAll (os,cut_os) in toSet(cut) . (sum o in os . ordSize(o)) <= cut_os,
forAll os in defined(cut) . (sum o in os . ordCol(o) ) <= col_per_slab