1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | 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 |