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

Python files for the Mosel-Python comparison blog

Description

Python files for the blog post comparing Mosel and Python: 4 Main Takeaways from Comparing Xpress Mosel and Python for Optimization Models.

Instructions for running these files:
  1. Extract the data files into the same directory as the Python files.
  2. To run a single file via the command line, call Python and pass the filename followed by the first 2 digits of the data file. For example: python SparseGrouping_std.py 00

pythonblog.zip[download all files]

Source Files

Data Files





SparseVariables_adv.py

'''********************************************************
  * Python Example Problems                               *
  *                                                       *
  * file SparseVariables_adv.py                           *
  * Improved version of model 'SparseVariables_std.py'    *
  * -- Enumeration of sparse multidimensional arrays --   *
  *                                                       *
  * (c) 2019-2025 Fair Isaac Corporation                  *
  ******************************************************'''
#S:IMPORT
import pandas as pd
import xpress as xp
import sys

if len(sys.argv) > 1:
    DATA_FILE_PREFIX = sys.argv[1]
else:
    DATA_FILE_PREFIX = "00"
print("#E:IMPORT")

print("#S:READ")
C = pd.read_csv(DATA_FILE_PREFIX + '_H_SparseVariables_C.csv', index_col = ['i', 'j', 'k', 'l']).squeeze()
print("#E:READ")

print("#S:PROC")
p = xp.problem()

f = pd.Series(
    data = [ p.addVariable() for _ in range(C.shape[0]) ],
    name = 'f', index = C.index)
print("#E:PROC")

print("#S:TEST")
for (i, j, k, l) in C.index.values:
    print('{} {} {} {}'.format(i, j, k, l))
print("#E:TEST")

Back to examples browser