FICO
FICO Xpress Optimization Examples Repository
FICO Optimization Community FICO Xpress Optimization Home
Back to examples browserPrevious exampleNext example

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[download]





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


Back to examples browserPrevious exampleNext example