80 likes | 269 Views
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. How to write a model (1) Name of the model & options. model ModelName options … uses “mmxprs”
E N D
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
How to write a model (1) Name of the model & options modelModelName options … uses“mmxprs” … !other sections end-model For comment write “!”before the commented word
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
How to write a model (3) Declarations (variables, arrays, etc.) declarations Variable :mpvar VariableArray: array() of mpvar IntegerVariable : mpvar BinaryVariable : mpvar end-declarations IntegerVariableis_integer !when integer variable BinaryVariableis_binary !when binary variable
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
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
How to write a model (6) Constraints ! simple constraint X1+3*X2-5*X3<=8 ! multiple constraints using loop forall(iin 1..10) Z(i)=1 ! sum constraint sum(iin 1..10) X(i)<=B ! multiple sum constraints using loop forall(iin 1..5)sum (j in 1..10) X(i,j)=1
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(iin 1..M) writeln(" Y(“,i,") = “,getsol(Y(i)))