FICO Xpress Optimization Examples Repository
 FICO Optimization Community FICO Xpress Optimization Home

Compilation to/from memory

Description
• ugcompfrmem.mos, ugcompfrmem.c: Compiling a model held in memory
• ugcompmem.mos, ugcompmem.c, ugcompmem.java, ugcompmemcs.cs: Compiling a model to memory (requires burglar2.mos, burglar.dat)
Further explanation of this example: 'Mosel User Guide', Section 17.1 Generalized file handling

Source Files

Data Files

burglar2.mos

```(!******************************************************
Mosel User Guide Example Problems
=================================

file burglar2.mos
`````````````````
Use of index sets.

(c) 2008 Fair Isaac Corporation
author: S. Heipcke, 2001, rev. 2006
*******************************************************!)

model Burglar2
uses "mmxprs"

declarations
WTMAX = 102                    ! Maximum weight allowed
ITEMS = {"camera", "necklace", "vase", "picture", "tv", "video",
"chest", "brick"}     ! Index set for items

VALUE: array(ITEMS) of real    ! Value of items
WEIGHT: array(ITEMS) of real   ! Weight of items

take: array(ITEMS) of mpvar    ! 1 if we take item i; 0 otherwise
end-declarations

initializations from 'burglar.dat'
VALUE  WEIGHT
end-initializations

! Objective: maximize total value
MaxVal:= sum(i in ITEMS) VALUE(i)*take(i)

! Weight restriction
sum(i in ITEMS) WEIGHT(i)*take(i) <= WTMAX

! All variables are 0/1
forall(i in ITEMS) take(i) is_binary

maximize(MaxVal)                 ! Solve the MIP-problem

! Print out the solution
writeln("Solution:\n Objective: ", getobjval)
forall(i in ITEMS)  writeln(" take(", i, "): ", getsol(take(i)))
end-model

```