You are on page 1of 8

How to write a model

in Mosel Xpress-IVE

• Name of the model & options


• Parameters
• Declarations (decision variables, arrays, etc.)
• Data input
• Objective function
• Constraints
• Output & results

1
How to write a model
(1) Name of the model & options

model ModelName
options …
uses “mmxprs”

… !other sections

end-model

For comment write “!” before the commented word

2
How to write a model
(2) Parameters – optional section

model ModelName
!parameters section first
parameters
MAXTIME=300
USE_LOG=false
!...
end-parameters
!Rest of the model (declarations, statements, etc.)
end-model

3
How to write a model
(3) Declarations (variables, arrays, etc.)

declarations
Variable : mpvar
VariableArray : array() of mpvar
IntegerVariable : mpvar
BinaryVariable : mpvar
end-declarations

IntegerVariable is_integer !when integer variable


BinaryVariable is_binary !when binary variable

4
How to write a model
(4) Data input – optional section

declarations
UnitCost : array(1..10) of integer
end-declarations

initializations from “Filename”


UnitCost;
end-initializations

5
How to write a model
(5) Objective function

Cost:=2*x1+3*x2
!...constraints
minimize(Cost) !you don’t need to declare Cost

or

Profit:=2*x1+3*x2
!...constraints
miximize(Profit) !you don’t need to declare Profit

6
How to write a model
(6) Constraints

! simple constraint
X1+3*X2-5*X3<=8
x1  3x2  5x3  8

! multiple constraints using loop


forall(i in 1..10) Z(i)=1
zi  1 for i  1, .. ,10
10

x
! sum constraint
i B
sum(i in 1..10) X(i)<=B
i 1

! multiple sum constraints using loop


forall(i in 1..5) sum (j in 1..10)
10
X(i,j)=1

x
j 1
ij 1 for i  1, .. ,5
7
How to write a model
(7) Output & results

! Value of objective function - getobjval


writeln(“Objective value: “, getobjval)

! Value of decision variable


writeln(“X1 = “,getsol(X1))

! Values of decision variables in array using loop


forall(i in 1..M)
writeln(" Y(“, i,") = “, getsol(Y(i)))

You might also like