FICOTM Xpress Optimization Suite

Xpress-Tuner
User guide

Last update 26 May, 2009

www.fico.com

Make every decision countTM

Published by Fair Isaac Corporationc Copyright Fair Isaac Corporation 2009. All rights reserved.
All trademarks referenced in this manual that are not the property of Fair Isaac are acknowledged.
All companies, products, names and data contained within this book are completely fictitious and are used solely to illustrate
the use of Xpress. Any similarity between these names or data and reality is purely coincidental.

How to Contact the Xpress TeamInformation, Sales and Licensing
USA, CANADA AND ALL AMERICASEmail: XpressSalesUS@fico.com
WORLDWIDE
Email: XpressSalesUK@fico.com
Tel: +44 1926 315862
Fax: +44 1926 315854
FICO, Xpress team
Leam House, 64 Trinity Street
Leamington Spa
Warwickshire CV32 5YN
UK

Product Support
Email: Support@fico.com(Please include ’Xpress’ in the subject line)
Telephone:
NORTH AMERICA
Tel (toll free): +1 (877) 4FI-SUPP
Fax: +1 (402) 496-2224
EUROPE, MIDDLE EAST, AFRICA
Tel: +44 (0) 870-420-3777
UK (toll free): 0800-0152-153
South Africa (toll free): 0800-996-153
Fax: +44 (0) 870-420-3778
ASIA-PACIFIC, LATIN AMERICA, CARIBBEAN
Tel: +1 (415) 446-6185
Brazil (toll free): 0800-891-6146

For the latest news and Xpress software and documentation updates, please visit the Xpress website at
http://www.fico.com/xpress or subscribe to our mailing list.

Xpress-Tuner User Guide

FICOTM Xpress Optimization Suite

Xpress-TunerUser guide
Release 1.1
26 May, 2009

Contents
12
3
4
5
6
71

Xpress-Tuner purpose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How to tune a problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Tuning process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Detailed results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Tuning a set of problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Tuning methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Terminology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1
2
4
5
7
8
10

Xpress-Tuner purpose
FICOTM Xpress solves MIP problems by applying a number of algorithms and techniques, such as
cutting planes, heuristics, branch and bound search, etc. The Xpress internal algorithms are user
customizable through control parameters. Xpress control parameters are designed to control one
or more of:• A choice (e.g. breadth-first versus depth-first search)• A set of choices (e.g. pick and choose presolve techniques)• An amount (e.g. number of rounds of knapsack cuts)• A frequency (e.g. apply heuristics every N nodes)
Xpress-Tuner will find a favorable set of control parameters that allow the Xpress-Optimizer tosolve a particular MIP problem (or a set of problems) faster than by using defaults.
Xpress-Tuner is designed to be easy to use by a non expert, as it always provides a concise
winning strategy that can be readily implemented using the Xpress-Optimizer libraries,
Xpress-Mosel or Xpress-BCL. At the same time it provides a wealth of information to users
familiar with Xpress control parameters, for deeper analysis of the problem behavior with respect
to different solution approaches.

Xpress-Tuner purpose

c 2009 Fair Isaac Corporation. All rights reserved.

page 1

Xpress-Tuner User Guide2

How to tune a problem
Upon starting Xpress-Tuner, the following application window appears:

The most important user interface elements are:
1. The problem file name: this can be an .MPS or .LP file, a compressed .MPS.GZ or .LP.GZ file,or a .SET file (containing a collection of matrices). It represents the file (or set of files) to be
tuned. Note: Xpress-Tuner will create a working directory called "\tuner\" in the same
directory where the problem file name is located. All tuner runs will be stored in the newly
created directory.
2. Optimization direction: minimize or maximize.
3. The desired optimality gap for the problem. Usually 0%, but any number between 0-100%
will work (e.g. 0.1%)
4. The desired run time for the problem. This should be a realistic expectation based on
business requirements. For example, if Xpress takes 5 minutes to find the optimal solution
and spends a lot of time branching, input an aggressive target time of 60 seconds. Note:
Times are always in seconds.
5. Reduce time to gap is probably the most desired goal, but other goals are available as well.
6. Allow Xpress-Tuner to use more than one thread. For best overall performance, use no morethan one thread per available CPU/core. Also impose a maximum time limit on all the runs ina tuning session. Note that a generous amount of time may be necessary to obtain a good
tuned strategy. Allow a minimum of 200 runs for best results (e.g. 60s × 200 runs = 12,000 s).
7. Optionally, force certain control parameter settings by entering them as baseline
parameters. These will override any potential values that may be discovered by theautomated tuner. Also check/uncheck the options to load a preexisting solution (.slx file) ora directives file (.dir) for all the tuner runs in a session.

How to tune a problem

c 2009 Fair Isaac Corporation. All rights reserved.

page 2

Xpress-Tuner User Guide

8. Select a tuning method. Adaptive flexible comprehensive is the most comprehensive tuning
method and is usually a good first choice. Other options (e.g. focus on root node, focus on
branching) may be preferable if the performance shortcoming is better understood.
9. Customize the tuning method as necessary. Instructions are provided by each tuningmethod.
10. Clicking Start will launch the tuner.

How to tune a problem

c 2009 Fair Isaac Corporation. All rights reserved.

page 3

Xpress-Tuner User Guide

3Tuning process
While Xpress-Tuner is running, the display changes to:

The most important elements/regions are:
1. A summary of the tuning goal, including the target (desired) gap and the time allowed perrun.
2. The progress update section shows how much time has passed since the tuning session wasstarted and how much time remains (based on the time limit imposed when starting theTuner). This section also shows if the Tuner managed to improve on Xpress-Optimizer
defaults. Finally, the button View Detailed Strategy Rankings... will open a more detailed
window (described in section 4 of this Xpress-Tuner user guide). The checkbox Include runs
from previous sessions controls whether runs from previous tuning sessions of the sameproblem will be displayed in the detailed window.
3. The activity log shows a very brief summary of a few previously completed strategy runs.
4. This section shows the active control parameter strategy and the output from the active
optimization run. The Tuner session can be interrupted by pressing the Stop button (allTuner results are stored on disk so stopping a session is a safe operation; next time, theTuner will resume where it left off by reading the previous results from disk)
5. Together with number 6, the most important display section of the Xpress-Tuner: theBaseline versus Best so far comparison shows how the current best tuned strategy comparesto the baseline run. In most cases, the Tuner will compare favorably. After every strategy
run, this section is updated to show the current winning strategy.
6. The winning strategy settings: a list of control parameters that make up the winningstrategy. This list is updated in tandem with the current best strategy and offers constantfeedback on how the Tuner is performing.
To compare strategies against each other, click on View Detailed Strategy Rankings.

Tuning process

c 2009 Fair Isaac Corporation. All rights reserved.

page 4

Xpress-Tuner User Guide4

Detailed results
After clicking on View Detailed Strategy Rankings, the following window appears:

Each line in the list represents a run; each run represents a unique strategy tried by the Tuner. Thecolumns in the list are:Machine

The computer name where the Tuner is running.

Xpress Version

Version of the Xpress-Optimizer.

WhenThe date and time (+milliseconds) when the run was initiated.

Alg

The algorithm used for the initial LP relaxation.

File

The matrix (or set of files) being tuned.

MAXTIME

The time limit per run (imposed by the user) for the global search.

MIPRELSTOP

The relative gap stopping criterion (imposed by the user).

Control parameters

A varying number of control parameters. No value means default.

Rank

Rank based on the goal specified by the user (e.g., best gap, best solution,etc.)

Run time

Actual time elapsed, for the entire solve, including initial LP relaxation.

Gap

The optimality gap. See the definition for MIPRELSTOP.

Objective

The best integer solution of the run.

Bound

The best bound of the run.

Root Gap

The optimality gap after the root node.

Root Objective

The best integer solution after the root node.

Detailed results

c 2009 Fair Isaac Corporation. All rights reserved.

page 5

Xpress-Tuner User Guide

Root BoundThe best bound after the root node.

Solutions

Number of integer feasible solutions found.

Nodes

Number of branch and bound nodes explored.

The shade of the color green indicates the relative rank of numbers within a column. Lighter
shades of green indicate smaller values; darker shades of green indicate larger values.
Note: Comparisons between columns are meaningless.
In some cases, such as for the Gap column, lighter shades of green are better and will correlatewith lower (better) Rank values. In other case, such as for the Bound column for a minimization
problem, larger values (highlighted with dark shades of green) are better.
The results in the table can be sorted by clicking on any column header. The sorting is stable,
which means that several criteria can be applied in series (e.g. sort by gap, then by objective, thenby number of nodes).
The results in the table can be copied to the clipboard (Copy to clipboard) and then pasted inExcel, etc.
By right clicking in the results list, various options for manipulating the current selection will
become available, such as selecting all the runs whose values in the current column are equal tothe value currently under the mouse cursor. When one or more runs are selected, click on thebutton View / Compare Selected... to analyze the 2+ more runs side by side:

Detailed results

c 2009 Fair Isaac Corporation. All rights reserved.

page 6

Xpress-Tuner User Guide

5Tuning a set of problems
To ensure that the control parameter settings obtained using the Tuner are robust enough for anentire category of problems, it’s a good idea to select a varied set of inputs to a mathematicalmodel and generate several matrix instances of the same model. By grouping different matrix
instances of the same model into a set and then allowing Xpress-Tuner to find a good tuned
strategy for the set, you can better ensure that the settings will work well on new instances ofthe same model.
The Strategy Rankings window looks different when comparing set runs:

Note that individual matrix runs are listed alongside set runs and ranked relative to each other.
The screenshot above was obtained by grouping air04.mps and air05.mps into a set called
air.set. A run of air04.mps indicating Rank 1 is better than a run of air04.mps indicating
Rank 2. Thus, the detailed strategy rankings window allows you to compare not only sets but also
set components against each other. Further insights may be gained from this comparison.

Tuning a set of problems

c 2009 Fair Isaac Corporation. All rights reserved.

page 7

Xpress-Tuner User Guide

6

Tuning methods
Several tuning methods are available by default:

Note 1: All tuning methods are customizable.
Note 2: Any tuning method can be cloned and then customized.
Tuning methods:
Adaptive flexible comprehensive

The best choice for most purposes. A comprehensive tuning
method, it initially contains a large number of diverse
strategies to try (this is user customizable).

Adaptive flexible quick

The same tuning method as Adaptive flexible comprehensive
but with fewer initial strategies. Not as broad as thecomprehensive method, this method allows the Tuner toreach the adaptive phase quicker. This method sacrifices somequality to save tuning time.

Adaptive flexible root focus

This method focuses on control parameters that impact theroot node of the MIP search.

Adaptive flexible tree focus

This method focuses on control parameters that impact thebranching phase of the MIP search.

Adaptive pure comprehensive

This tuning method initially contains the same number ofstrategies as Adaptive flexible comprehensive. It uses a very
elitist evolutionary selection scheme for choosing derived
strategy candidates.

Adaptive pure quick

Same as Adaptive pure comprehensive, but with fewer initialstrategies.

Adaptive pure root focus

Same as Adaptive pure comprehensive, but with a focus onthe root node.

Tuning methods

c 2009 Fair Isaac Corporation. All rights reserved.

page 8

Xpress-Tuner User Guide

Adaptive pure tree focus

Same as Adaptive pure comprehensive, but with a focus on
the branch and bound search.

Combinations

Try all combinations of values for a small number of control
parameters

Mixer

Read all previous compatible runs from disk and apply theadaptive evolutionary algorithm to all these runs to derive
better strategies. For example, a Tuner session focusing on
cutting strategies can be combined with a Tuner session
focusing on strong branching by running them separately andthen starting a third run using the Mixer tuning method.

Single run 1

A shortcut to trying a single strategy.

Single run 2

A shortcut to trying another single strategy.

Tuning methods

c 2009 Fair Isaac Corporation. All rights reserved.

page 9

Xpress-Tuner User Guide7

Terminology
Terms used in this user guide are described below in the context of the Xpress-Tuner.
Control parameter setting A control parameter is a named setting which can be used tocustomize the Xpress-Optimizer. For example, CUTSTRATEGY=0 is a control
parameter setting that instructs the Optimizer to disable applying cuts to aproblem.
ProblemA matrix file to be solved.

RunA run represents one execution of the Xpress-Optimizer on a given problem
using a given strategy.

SessionA session refers to the complete execution of a tuning method. After clicking
the Start button to start a tuning session, Xpress-Tuner will try different
strategies according to selected tuning method and either run out of thegiven time limit or be stopped by the user upon pressing the Stop button.

Set

A number of problems grouped together into a set (using the Create a set ofmatrices... button in the Xpress-Tuner application). Xpress-Tuner willautomatically run all the problems in the set and compute results for theentire set. Note: Average gap for all runs of all the problems in the set is the
only criterion used for comparing set runs against each other.

Strategy

A number of control parameter settings applied together in a run. For
example, CUTSTRATEGY=0, HEURSTRATEGY=3 is a strategy.

Tuning method

Each of several adaptive or non-adaptive techniques for executing runs,
whose goal is finding a favorable strategy for solving a problem or a set ofproblems.

Terminology

c 2009 Fair Isaac Corporation. All rights reserved.

page 10