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





QuantityDiscount_std.mos

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

   file QuantityDiscount_std.mos
   `````````````````````````````
   -- Multiple cases within a loop --

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

    uses "mmsheet"

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

    writeln("#S:READ")
    declarations
        P: range
        V: array(P) of integer
        W: array(P) of real
        S: real
    end-declarations

    initializations from "mmsheet.csv:" + DATA_FILE_PREFIX + "_H_QuantityDiscount_V.csv"
        V as "[]"
    end-initializations
    writeln("#E:READ")

    writeln("#S:PROC")
    forall(p in P)
        case V(p) of
            0:          W(p) := 1.50
            1:          W(p) := 1.45
            2..5:       W(p) := 1.30
            6..50:      W(p) := 1.25
            else        W(p) := 1.20
        end-case

    S := sum(p in P) V(p) * W(p)
    writeln("#E:PROC")

    writeln("#S:TEST")
    setparam("realfmt", "%.2f")
    writeln(S)
    writeln("#E:TEST")
end-model
Back to examples browser