FICO
FICO Xpress Optimization Examples Repository
FICO Optimization Community FICO Xpress Optimization Home
Back to examples browser

Mosel files for the Mosel-Python comparison blog

Description

Mosel files for the blog post comparing Mosel and Python.

Instructions for running these files:
  1. Extract the data files into the same directory as the Mosel files
  2. To run a single file via the command line, call Mosel and pass the filename followed by "DATA_FILE_PREFIX=" and the first 2 digits of the data file. For example: mosel SparseGrouping_std.mos DATA_FILE_PREFIX=00
Further explanation of this example: See the blog 4 Main Takeaways from Comparing Xpress Mosel and Python for Optimization Models


Source Files

Data Files





SparseVariables_std.mos

(!******************************************************
   Mosel Example Problems
   ======================

   file SparseVariables_std.mos
   ````````````````````````````
   -- Enumeration of sparse multidimensional arrays --

   (c) 2019-2025 Fair Isaac Corporation
       author: S.Heipcke
*******************************************************!)
model "Sparse Variables"

  !S:IMPORT
  uses "mmsheet"

  parameters
    DATA_FILE_PREFIX = "00"
  end-parameters
  writeln("#E:IMPORT")

  writeln("#S:READ")
  declarations
    ISet: range
    f: dynamic array(ISet,ISet,ISet,ISet) of mpvar
    C: dynamic array(ISet,ISet,ISet,ISet) of real
  end-declarations

  initializations from "mmsheet.csv:skiph;" + DATA_FILE_PREFIX + "_H_SparseVariables_C.csv"
    C as "[]"
  end-initializations
  writeln("#E:READ")

  writeln("#S:PROC")
  forall(i,j,k,l in ISet | exists(C(i,j,k,l)) ) create(f(i,j,k,l))
  writeln("#E:PROC")

  writeln("#S:TEST")
  forall(i,j,k,l in ISet | exists(C(i,j,k,l)) ) do
    writeln(i, " ", j, " ", k, " ", l)
  end-do
  writeln("#E:TEST")

end-model

Back to examples browser