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

Working with models and accessing dynamic libraries in Mosel

mmexlib.c: Working with models and accessing dynamic libraries in Mosel (requires burglari.bim, chess2.bim, trans.bim)
  • load and unload BIM models
  • run a model in Mosel
  • display information about loaded models
  • display information about additional libraries required by the loaded models
mmdispmod.c: Display the contents of a model; the information is read from a bim file
  • display run-time parameters, requirements, symbols, package/module dependencies, annotations
mmdispdso.c: Display the contents of a module
  • display constants, types, control paramters, subroutines, I/O drivers
Note that these examples require the provided mos files to be pre-compiled.

Further explanation of this example: 'Mosel Library Reference', Section 1.2 Post processing interface and Section 1.4 Handling of modules

Source Files
By clicking on a file name, a preview is opened at the bottom of this page.

Data Files


  * Mosel Example Problems                              *
  * ======================                              *
  *                                                     *
  * file trans.mos                                      *
  * ``````````````                                      *
  * Example for the use of the Mosel language           *
  * (Network problem: transport from depots to          *
  *  customers)                                         *
  *                                                     *
  * (c) 2008 Fair Isaac Corporation                     *
  *     author: S. Heipcke, 2001                        *

model Transport                     ! Start a new model

uses "mmxprs"                       ! Load the optimizer
public declarations
 Suppliers: set of string           ! Set of suppliers
 Customers: set of string           ! Set of customers
 COST: dynamic array(Suppliers,Customers) of real  ! Unit cost of sending from depot d
                                        ! to customer c
 AVAIL: array(Suppliers) of real    ! Availability of products
 DEMAND: array(Customers) of real   ! Demand by customers

 x: dynamic array(Suppliers,Customers) of mpvar ! Flow from supplier s to customer c

                                    ! Read data from file
initializations from "Models/trans.dat"

 forall(s in Suppliers, c in Customers| COST(s,c)>0)
                                    ! Objective: minimize total cost
 Min:= sum(s in Suppliers, c in Customers) COST(s,c)*x(s,c) 

 forall(s in Suppliers) L(s):= sum(c in Customers) x(s,c) <= AVAIL(s)
 forall(c in Customers) D(c):= sum(s in Suppliers) x(s,c) >= DEMAND(c) 


Back to examples browserPrevious exampleNext example