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

Using the tuner functions in the Python interface

Read a MIPLIB2010 problem instance, then apply the Optimizer's tuner both with default tuner method and with a user-defined method file.

Further explanation of this example: 'Xpress Python Reference Manual'

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

import xpress as xp

# Creates a problem and read a MIPLIB2010 instance

p = xp.problem()'miplib-rndinst.mps.gz')

# Create a file default-MIP.xtm with the tuner options that are tested
# by default by the tuner. The file has the following format: a
# section with controls that are applied to each tuner run
# ("FIXED-CONTROLS") and a set of controls that are tested
# independently by the tuner ("TUNABLE-CONTROLS"). Tunable controls
# have each one or more value that the tuner will test, first
# independently and then in combination with others.
#   OUTPUTLOG            = 1
#   XSLP_POSTSOLVE       = 1
#   BRANCHDISJ           = 0
#   COVERCUTS            = 0, 2, 20
#   CUTFACTOR            = 0.5, 1, 5
#   CUTFREQ              = 2
# ... and others. The file is written AFTER reading in the problem in order
# for the optimizer to recognize that it is a MIP.


# Set the total amount of time the tuner can spend in tuning
# (tunermaxtime) and the time limit for each run. The negative sign
# allows for stopping even if no integer solution was found.
p.controls.tunermaxtime = 100
p.controls.maxtime = -10

# Tune the optimizer on the problem

# Now try tuning on a different tuner method: the file mymethod.xtm
# contains slightly different combination of controls and values, and
# the tuner will test different combinations this way. Note that the
# output will show that the Optimizer finds old tuner runs and will
# use the relative information

# Finally, before solving the problem, increase the time limit.
p.controls.maxtime = -1000


Back to examples browserPrevious example