| |||||||||||
Minimum and maximum constraints Description Defining minimum and maximum constraints. Further explanation of this example: 'Xpress Kalis Mosel Reference Manual'
Source Files By clicking on a file name, a preview is opened at the bottom of this page.
minmax.mos (!**************************************************************** CP example problems =================== file minmax.mos ``````````````` Minimum and maximum constraints. (c) 2008 Artelys S.A. and Fair Isaac Corporation *****************************************************************!) model "Min and Max" uses "kalis" declarations R = 1..5 x: array(R) of cpvar v, w, y: cpvar L: cpvarlist MaxCtr: cpctr end-declarations setname(v,"v") setname(w,"w") setname(y,"y") forall(i in R) do setname(x(i),"x"+i+"") setdomain(x(i), 0, 2*i + round(5*random + 0.5)) end-do writeln("Initial domains:\n ", x, " ", v) ! Minimum constraint with automated posting v = minimum(x) writeln("With minimum constraint:\n ", x, " ", v) x(1) = 2 writeln("Fixing x(1) to 2: ", v) ! Maximum constraint with explicit posting MaxCtr:= w = maximum({x(2), x(3), x(5)}) if cp_post(MaxCtr) then writeln("With maximum constraint:\n ", x, " ", w) else exit(1) end-if w <= 7 writeln("Bounding w by 7:\n ", x, " ", w) ! Maximum constraint on list of variables L += x(2); L += x(3); L += x(4) y = maximum(L) writeln("With 2nd maximum constraint:\n ", x, " ", y) if cp_find_next_sol then writeln("A solution:\n ", x, " ", v, " ", w, " ", y) end-if end-model | |||||||||||
© Copyright 2024 Fair Isaac Corporation. |