Copyright © ILOG 2008 IBM ILOG CPLEX Advanced Performance Tuning Optimization Technologies Workshop...

44
Copyright © ILOG 2008 IBM ILOG CPLEX Advanced Performance Tuning Optimization Technologies Workshop John Gregory CPLEX Product Manager IBM [email protected]

Transcript of Copyright © ILOG 2008 IBM ILOG CPLEX Advanced Performance Tuning Optimization Technologies Workshop...

Page 1: Copyright © ILOG 2008 IBM ILOG CPLEX Advanced Performance Tuning Optimization Technologies Workshop John Gregory CPLEX Product Manager IBM jgregor@us.ibm.com.

Copyright © ILOG 2008

IBM ILOG CPLEX Advanced Performance Tuning

Optimization Technologies Workshop

John GregoryCPLEX Product Manager IBM [email protected]

Page 2: Copyright © ILOG 2008 IBM ILOG CPLEX Advanced Performance Tuning Optimization Technologies Workshop John Gregory CPLEX Product Manager IBM jgregor@us.ibm.com.

2

Copyright © ILOG 2008

CPLEX Performance Tuning Overview

Speed Continuous Models (LP, QP, QCP/SOCP)

MIP

Memory Operating System

Deployment Application

CPLEX

Numerical Ill conditioning

Numerical Instability

Summary

Page 3: Copyright © ILOG 2008 IBM ILOG CPLEX Advanced Performance Tuning Optimization Technologies Workshop John Gregory CPLEX Product Manager IBM jgregor@us.ibm.com.

3

Copyright © ILOG 2008

Tuning for Speed: Continuous Models

Try each algorithm Primal Simplex

Dual Simplex

Network Simplex

Barrier (only option for QCP/SOCP)

Sifting (LP only)

Concurrentopt (LP only, parallel processors)

Page 4: Copyright © ILOG 2008 IBM ILOG CPLEX Advanced Performance Tuning Optimization Technologies Workshop John Gregory CPLEX Product Manager IBM jgregor@us.ibm.com.

4

Copyright © ILOG 2008

Tuning for Speed: Continuous Models

Other tactics Presolve dual on (apply presolve, then solve the dual model)

LP only

Constraints : 1972170 [Greater: 1972170]

Variables : 275036 [Free: 275036]

Constraint nonzeros: 9234686

Objective nonzeros: 156817

RHS nonzeros: 1487481

Parallel barrier method

Check for numerical difficulties

Page 5: Copyright © ILOG 2008 IBM ILOG CPLEX Advanced Performance Tuning Optimization Technologies Workshop John Gregory CPLEX Product Manager IBM jgregor@us.ibm.com.

5

Copyright © ILOG 2008

Tuning for Speed: Continuous Models

Iteration logs Degeneracy (simplex methods)

Excessive time per iteration

Page 6: Copyright © ILOG 2008 IBM ILOG CPLEX Advanced Performance Tuning Optimization Technologies Workshop John Gregory CPLEX Product Manager IBM jgregor@us.ibm.com.

6

Copyright © ILOG 2008

Tuning for Speed : Continuous Models

Degeneracy, sample log Iter: 4751 Infeasibility = 8.000000

Iter: 4870 Infeasibility = 8.000000

Iter: 4976 Infeasibility = 6.999999

Iter: 5083 Infeasibility = 6.000000

Iter: 5191 Infeasibility = 6.000000

...

Iter: 5862 Infeasibility = 6.000000

Iter: 5968 Infeasibility = 6.000000

Perturbation started.

Page 7: Copyright © ILOG 2008 IBM ILOG CPLEX Advanced Performance Tuning Optimization Technologies Workshop John Gregory CPLEX Product Manager IBM jgregor@us.ibm.com.

7

Copyright © ILOG 2008

Tuning for Speed: Continuous Models

Excessive time per iteration, sample log

Elapsed time = 138.23 sec. (37000 iterations)

Iter: 37969 Infeasibility = 387849.999786

Iter: 39121 Infeasibility = 379979.999768

Iter: 40295 Infeasibility = 375639.999998

Elapsed time = 150.41 sec. (41000 iterations)

...

Elapsed time = 24318.58 sec. (138000 iterations)

Iter: 138958 Infeasibility = 23.754244

Elapsed time = 24736.98 sec. (139000 iterations)

Elapsed time = 25145.43 sec. (140000 iterations)

12 sec.

827 sec.

Page 8: Copyright © ILOG 2008 IBM ILOG CPLEX Advanced Performance Tuning Optimization Technologies Workshop John Gregory CPLEX Product Manager IBM jgregor@us.ibm.com.

8

Copyright © ILOG 2008

Tuning for Speed: Continuous Models

Degeneracy Try each algorithm

Instruct CPLEX to perturb the model

Excessive time per iteration Try each algorithm

Check for virtual memory usage Run with more memory available Turn on memory emphasis parameter

Consider alternate pricing (pgradient/dgradient) Time per iteration depends on pricing scheme

Page 9: Copyright © ILOG 2008 IBM ILOG CPLEX Advanced Performance Tuning Optimization Technologies Workshop John Gregory CPLEX Product Manager IBM jgregor@us.ibm.com.

9

Copyright © ILOG 2008

Tuning for Speed: MIP

Try the Tuning Tool (CPLEX 11 or later) Primarily for MIPs, but works for all problem types

Works with all CPLEX interfaces, including interactive

optimizer

Can make use of internal algorithm information

Let CPLEX and your computer do the work

Page 10: Copyright © ILOG 2008 IBM ILOG CPLEX Advanced Performance Tuning Optimization Technologies Workshop John Gregory CPLEX Product Manager IBM jgregor@us.ibm.com.

10

Copyright © ILOG 2008

Tuning for Speed: MIP

Input: Model(s) to tune, tuning instructions Problem in memory or set of problems in files

Fixed parameter set, parameters which should not be

tuned, e.g., tolerances, threads

Parameters, metrics to control tuning process (e.g.

total tuning time, average or worst case run time)

Output: Tuned and fixed parameter settings

Page 11: Copyright © ILOG 2008 IBM ILOG CPLEX Advanced Performance Tuning Optimization Technologies Workshop John Gregory CPLEX Product Manager IBM jgregor@us.ibm.com.

11

Copyright © ILOG 2008

Tuning for Speed: MIP

Examine node log (if Tuning Tool doesn’t help) Excessive iteration counts for node relaxations.

Use different start/sub algorithm. Barrier method doesn’t support restarts. Set dual gradient to exact steepest edge norms, file

parameter to store node file on disk and compress it.

More progress needed in best integer or best node

value?

Page 12: Copyright © ILOG 2008 IBM ILOG CPLEX Advanced Performance Tuning Optimization Technologies Workshop John Gregory CPLEX Product Manager IBM jgregor@us.ibm.com.

12

Copyright © ILOG 2008

Nodes Cuts/ Node Left Objective IInf Best Integer Best Node ItCnt

0 0 -89.0000 6 -89.0000 5278 0 0 -89.0000 6 Fract: 4 12799 0 2 -89.0000 6 -89.0000 12799 1 1 infeasible -89.0000 20767 2 2 -89.0000 5 -89.0000 27275 3 1 infeasible -89.0000 32502 … 8 2 -89.0000 8 -89.0000 65717 9 1 infeasible -89.0000 73714 … Solution time = 177.33 sec. Iterations = 73714 Nodes = 10 (1)

Tuning for Speed: MIP

Excessive iteration counts for node LPs, sample

node log #1 (dual simplex to solve node LPs)

Page 13: Copyright © ILOG 2008 IBM ILOG CPLEX Advanced Performance Tuning Optimization Technologies Workshop John Gregory CPLEX Product Manager IBM jgregor@us.ibm.com.

13

Copyright © ILOG 2008

Tuning for Speed: MIP

Excessive iteration counts for node LPs, sample

node log #2 (primal simplex to solve node LPs) Nodes Cuts/ Node Left Objective IInf Best Integer Best Node ItCnt 0 0 -89.0000 5 -89.0000 6603 0 0 -89.0000 5 Fract: 5 7120 0 2 -89.0000 5 -89.0000 7120 1 1 infeasible -89.0000 9621 2 2 -89.0000 5 -89.0000 10616 3 1 infeasible -89.0000 12963 … 8 2 -89.0000 8 -89.0000 21522 9 1 infeasible -89.0000 23891 … Solution time = 54.37 sec. Iterations = 23891 Nodes = 10 (1)

Page 14: Copyright © ILOG 2008 IBM ILOG CPLEX Advanced Performance Tuning Optimization Technologies Workshop John Gregory CPLEX Product Manager IBM jgregor@us.ibm.com.

14

Copyright © ILOG 2008

Tuning for Speed: MIP

Progress in best node but not best integer:

Nodes Cuts/ Node Left Objective IInf Best Integer Best Node ItCnt Gap... 300 229 22.6667 40 31.0000 22.0000 4433 29.03% 400 309 cutoff 31.0000 22.3333 5196 27.96% 500 387 26.5000 31 31.0000 22.6667 6164 26.88%...

7800 5260 28.5000 23 31.0000 25.6667 55739 17.20% 7900 5324 28.2500 26 31.0000 25.6667 56424 17.20% 8000 5385 27.3750 30 31.0000 25.7778 57267 16.85%

Page 15: Copyright © ILOG 2008 IBM ILOG CPLEX Advanced Performance Tuning Optimization Technologies Workshop John Gregory CPLEX Product Manager IBM jgregor@us.ibm.com.

15

Copyright © ILOG 2008

Tuning for Speed: MIP

Progress in best integer but not best node:

Nodes Cuts/ Node Left Objective IInf Best Integer Best Node ItCnt Gap… 300 296 2018.0000 27 3780.0000 560.0000 3703 85.19%* 300+ 296 0 2626.0000 560.0000 3703 78.67%* 393 368 0 2590.0000 560.0000 4405 78.38% 400 372 560.0000 291 2590.0000 560.0000 4553 78.38% 500 472 810.0000 175 2590.0000 560.0000 5747 78.38%...

* 7740+ 5183 0 1710.0000 560.0000 66026 67.25% 7800 5240 1544.0000 110 1710.0000 560.0000 66279 67.25% 7900 5325 944.0000 176 1710.0000 560.0000 66801 67.25% 8000 5424 1468.0000 93 1710.0000 560.0000 67732 67.25%

Page 16: Copyright © ILOG 2008 IBM ILOG CPLEX Advanced Performance Tuning Optimization Technologies Workshop John Gregory CPLEX Product Manager IBM jgregor@us.ibm.com.

16

Copyright © ILOG 2008

Tuning for Speed: MIP

Tactics for lack of progress in best integer Use especially if customer accepts a good, perhaps

sub optimal solution.

MIP emphasis Set to 1 (emphasize integer feasibility) Set to 4 (emphasize finding hidden integer solutions)

Solution Polishing Requires an integer feasible solution Use to improve sub optimal solutions at end of MIP search Or use as replacement for majority of MIP search when

- local search works well- node LPs are time consuming- improving best node appears hopeless

Page 17: Copyright © ILOG 2008 IBM ILOG CPLEX Advanced Performance Tuning Optimization Technologies Workshop John Gregory CPLEX Product Manager IBM jgregor@us.ibm.com.

17

Copyright © ILOG 2008

Tuning for Speed: MIP

Lack of progress in best integer (continued) RINS Heuristic

Local search heuristic- Needs an integer feasible solution

MIP Starts and Solution Repair CPLEX 10.0 and later accepts partial MIP starts

- Solution repair for (partial) infeasible MIP starts

May make RINS, Solution Polishing more effective

Feasibility Pump Heuristic (CPLEX 11 and later) Applied first at root node

Page 18: Copyright © ILOG 2008 IBM ILOG CPLEX Advanced Performance Tuning Optimization Technologies Workshop John Gregory CPLEX Product Manager IBM jgregor@us.ibm.com.

18

Copyright © ILOG 2008

Tuning for Speed: MIP

Lack of progress in best integer (continued) Probing

Set to 3 (maximum probing)

Cuts Set to 2 (aggressive cut generation)

Cuts and Probing don’t explicitly help find feasible

solutions, but the resulting tighter formulation may

help. Can be useful when combined with setting MIP emphasis to

1 (emphasize integer feasibility)

Page 19: Copyright © ILOG 2008 IBM ILOG CPLEX Advanced Performance Tuning Optimization Technologies Workshop John Gregory CPLEX Product Manager IBM jgregor@us.ibm.com.

19

Copyright © ILOG 2008

Tuning for Speed: MIP

Tactics for lack of progress in best node MIP emphasis

Set to 2 or 3 to emphasize proving optimality and moving best node respectively.

- May need Partial/Infeasible MIP start, Feasibility Pump or RINS Heuristic to compensate for fewer integer feasible solutions

Probing Set to 3 (maximum probing)

Cuts Set to 2 (aggressive cut generation)

Cuts and Probing often tighten the model formulation

Page 20: Copyright © ILOG 2008 IBM ILOG CPLEX Advanced Performance Tuning Optimization Technologies Workshop John Gregory CPLEX Product Manager IBM jgregor@us.ibm.com.

20

Copyright © ILOG 2008

Tuning for Speed: MIP

Tactics for lack of progress in best node and

best integer Set MIP emphasis to 3

May cause difficulties finding integer feasible solutions Compensate by using (partial or infeasible) MIP starts,

Feasibility Pump, RINS Heuristic, Solution Polishing to help find more integer feasible solutions

Page 21: Copyright © ILOG 2008 IBM ILOG CPLEX Advanced Performance Tuning Optimization Technologies Workshop John Gregory CPLEX Product Manager IBM jgregor@us.ibm.com.

21

Copyright © ILOG 2008

Tuning for Speed: MIP

Tactics for lack of progress in best node and

best integer (continued) Provide a starting solution, regardless of objective

value Can help CPLEX’s local search heuristics Can yield additional tightening of the model Consider external methods (e.g. Constraint Programming,

Metaheuristics like Simulated Annealing, model specific heuristics) to find a starting solution

Try CPLEX’s feasopt feature

Page 22: Copyright © ILOG 2008 IBM ILOG CPLEX Advanced Performance Tuning Optimization Technologies Workshop John Gregory CPLEX Product Manager IBM jgregor@us.ibm.com.

22

Copyright © ILOG 2008

Tuning for Speed: MIP

Other tactics Specific model knowledge determines parameter

settings

Try branching up first

1

1

i

n

i

x binary ix

Page 23: Copyright © ILOG 2008 IBM ILOG CPLEX Advanced Performance Tuning Optimization Technologies Workshop John Gregory CPLEX Product Manager IBM jgregor@us.ibm.com.

23

Copyright © ILOG 2008

Tuning for Speed: MIP

Other tactics (continued) Specific model knowledge determines priority order.

Time period models- Higher priority to earlier time periods.

Dependencies among integer variables

0 - ii Uzxinteger ix binary iz

Page 24: Copyright © ILOG 2008 IBM ILOG CPLEX Advanced Performance Tuning Optimization Technologies Workshop John Gregory CPLEX Product Manager IBM jgregor@us.ibm.com.

24

Copyright © ILOG 2008

Tuning for Speed: MIP

Other tactics (continued) Specific model knowledge determines changes to

model Adding model specific cuts

- Tighten formulation- Remove symmetry

Sherali, Smith “Improving Zero-One Model Representations Via Symmetry Considerations”

Model reformulation http://www.ilog.com/products/cplex/news/newsletters/

cplex_newsletter_9410.cfm

Page 25: Copyright © ILOG 2008 IBM ILOG CPLEX Advanced Performance Tuning Optimization Technologies Workshop John Gregory CPLEX Product Manager IBM jgregor@us.ibm.com.

25

Copyright © ILOG 2008

Memory Tuning: Operating System

Virtual memory slows performance Task Manager (Windows)

Top, ps, vmstat under Unix

Make sure you can allocate all available memory Java VM limitations

Use –Xmx option to increase heap size

On a 32-bit machine, the real limit is 2GB

Limits on individual accounts

Compiler/Linker options 32 bit AIX has default of 256 MB for memory allocations.

Write a simple program to test available memory (or ask us for one).

Page 26: Copyright © ILOG 2008 IBM ILOG CPLEX Advanced Performance Tuning Optimization Technologies Workshop John Gregory CPLEX Product Manager IBM jgregor@us.ibm.com.

26

Copyright © ILOG 2008

Memory Tuning: Deployment Considerations

Compare memory usage Solve the Deployment application model(s) with:

Interactive CPLEX Simple example programs

Purify, Insure, Bounds Checker, Valgrind (Linux only) can help with memory leaks

Make sure you solve the correct model Display problem statistics

Data check parameter

Diagnostic routines in check.c

Page 27: Copyright © ILOG 2008 IBM ILOG CPLEX Advanced Performance Tuning Optimization Technologies Workshop John Gregory CPLEX Product Manager IBM jgregor@us.ibm.com.

27

Copyright © ILOG 2008

Memory Tuning: CPLEX Considerations

Sometimes CPLEX really uses all available

memory Default settings emphasize speed over memory

conservation.

Is CPLEX memory usage reasonable? 1 GB per million constraints of an LP

- Exceptions: large aspect ratios, very dense constraints

1 GB per million (constraints + quadratic variables) of a QP- Exception: dense Q matrix lacking sparse factorization

At least that much for MIP, MIQP

Page 28: Copyright © ILOG 2008 IBM ILOG CPLEX Advanced Performance Tuning Optimization Technologies Workshop John Gregory CPLEX Product Manager IBM jgregor@us.ibm.com.

28

Copyright © ILOG 2008

Memory Tuning: CPLEX Considerations

Memory conservation techniques General

Turn memory emphasis on (slight extra run time) Use different algorithm (LP and QP) As a last resort, turn presolve off (potential big increase in

run time)

LP Set presolve dual indicator on

Page 29: Copyright © ILOG 2008 IBM ILOG CPLEX Advanced Performance Tuning Optimization Technologies Workshop John Gregory CPLEX Product Manager IBM jgregor@us.ibm.com.

29

Copyright © ILOG 2008

Memory Tuning: CPLEX Considerations

Memory conservation techniques (continued) MIP

MIP search tree often dominates memory usage- Performance tuning to reduce node count.- Setting node file parameter to 3 efficiently writes nodes to

disk.- Setting variable select parameter to 3 (strong branching).

Fewer nodes required to make the same amount of progress.

Page 30: Copyright © ILOG 2008 IBM ILOG CPLEX Advanced Performance Tuning Optimization Technologies Workshop John Gregory CPLEX Product Manager IBM jgregor@us.ibm.com.

30

Copyright © ILOG 2008

Memory Tuning: Other Tactics

Buy more memory (but only after accurately

estimating requirements)

Specialized algorithms Example: Column generation for models with large

aspect ratios.

Page 31: Copyright © ILOG 2008 IBM ILOG CPLEX Advanced Performance Tuning Optimization Technologies Workshop John Gregory CPLEX Product Manager IBM jgregor@us.ibm.com.

31

Copyright © ILOG 2008

Memory Tuning: Other Tactics

Review of model development process

Model reformulation Reduce problem dimensions

Reduce “difficulty” while increasing problem size. MIP reformulations for column generation. Increase in problem size in exchange for sparser problem

data

st min QxxT

bAx st min yyT

0 LxybAx

LLQ T

Page 32: Copyright © ILOG 2008 IBM ILOG CPLEX Advanced Performance Tuning Optimization Technologies Workshop John Gregory CPLEX Product Manager IBM jgregor@us.ibm.com.

32

Copyright © ILOG 2008

Numerical Tuning: Ill conditioning

Sensitivity of computed solutions to perturbations in problem data

Condition number of a matrix CPLEX solves systems of equations of the form

Exact solution is

bBx

bBx 1

Page 33: Copyright © ILOG 2008 IBM ILOG CPLEX Advanced Performance Tuning Optimization Technologies Workshop John Gregory CPLEX Product Manager IBM jgregor@us.ibm.com.

33

Copyright © ILOG 2008

Numerical Tuning: Ill conditioning

Condition number of a matrix (continued) To measure effects of perturbations, consider

Exact solution is

Combine with exact solution of x:

bbxxB )(

)(1 bbBxx

bBx 1

Page 34: Copyright © ILOG 2008 IBM ILOG CPLEX Advanced Performance Tuning Optimization Technologies Workshop John Gregory CPLEX Product Manager IBM jgregor@us.ibm.com.

34

Copyright © ILOG 2008

Numerical Tuning: Ill conditioning

Condition number of a matrix (ctd). Using Cauchy - Schwarz inequality

This gives max. absolute change in x relative to

change in b. Now consider relative change by using

Cauchy - Schwarz inequality in original system:

|| || |||| |||| xBb

|| || |||| |||| 1 bBx

Page 35: Copyright © ILOG 2008 IBM ILOG CPLEX Advanced Performance Tuning Optimization Technologies Workshop John Gregory CPLEX Product Manager IBM jgregor@us.ibm.com.

35

Copyright © ILOG 2008

Numerical Tuning: Ill conditioning

Condition number of a matrix (continued) Combine and rearrange to get

Similar procedure for perturbing B yields

||)|| / || (|| |||| |||| || || / |||| 1 BBBBxxx

|| || || || )cond( 1 BBB

||)|| / || (|| |||| |||| || || / |||| 1 bbBBxx

Page 36: Copyright © ILOG 2008 IBM ILOG CPLEX Advanced Performance Tuning Optimization Technologies Workshop John Gregory CPLEX Product Manager IBM jgregor@us.ibm.com.

36

Copyright © ILOG 2008

Numerical Tuning: Ill conditioning

Ill conditioning can occur under perfect

arithmetic

But, finite precision can perturb the exact

system of equations we wish to solve, resulting

in significant changes to the computed solution

Page 37: Copyright © ILOG 2008 IBM ILOG CPLEX Advanced Performance Tuning Optimization Technologies Workshop John Gregory CPLEX Product Manager IBM jgregor@us.ibm.com.

37

Copyright © ILOG 2008

Numerical Tuning: Ill conditioning

Sources of perturbations due to finite precision Rounding of data

Near singular matrices Avoid computing data in single precision

Round off error in the simplex method computations,

particularly the basis factorization.

Round off error due to scaling of large data values

Floating point calculations involving values of greatly

different orders of magnitude Avoid mixtures of very large and small coefficients

Page 38: Copyright © ILOG 2008 IBM ILOG CPLEX Advanced Performance Tuning Optimization Technologies Workshop John Gregory CPLEX Product Manager IBM jgregor@us.ibm.com.

38

Copyright © ILOG 2008

Numerical Tuning: Ill conditioning

Rounding of data

Maximize x1 + x2 c1: 1/3 x1 + 2/3 x2= 1 c2: x1 + 2 x2 = 3 Solution: x1 = 3.0

Maximize x1 + x2 c1: .333333 x1 + .666667 x2 = 1 c2: x1 + 2 x2 = 3 Solution: x1 = x2 = 1.0, cond(B) = 6.66667e+06

Maximize x1 + x2 c1: .333333333 x1 + .666666667 x2 = 1 c2: x1 + 2 x2 = 3 Solution: x1 = 3.0, cond(B) = 6.333333

Page 39: Copyright © ILOG 2008 IBM ILOG CPLEX Advanced Performance Tuning Optimization Technologies Workshop John Gregory CPLEX Product Manager IBM jgregor@us.ibm.com.

39

Copyright © ILOG 2008

Numerical Tuning: Ill conditioning

Avoid rounding whenever possible

Exact formulation:Maximize x1 + x2 c1: 1/3 x1 + 2/3 x2= 1 c2: x1 + 2 x2 = 3

Imprecisely rounded:Maximize x1 + x2 c1: .333333 x1 + .666667 x2 = 1 c2: x1 + 2 x2 = 3

Scale to integral value whenever possible:Maximize x1 + x2 c1: x1 + 2 x2 = 3 c2: x1 + 2 x2 = 3

Page 40: Copyright © ILOG 2008 IBM ILOG CPLEX Advanced Performance Tuning Optimization Technologies Workshop John Gregory CPLEX Product Manager IBM jgregor@us.ibm.com.

40

Copyright © ILOG 2008

Numerical Tuning: Ill conditioning

Rounding of data (continued) Changes in right hand side can have similar effect

Maximize x1 + x2 c1: .333333 x1 + .666667 x2 = 1 c2: x1 + 2 x2 = 3 Solution: x1 = x2 = 1.0

Maximize x1 + x2 c1: .333333 x1 + .666667 x2 = .999999 c2: x1 + 2 x2 = 3 Solution: x1 = 3.0

Page 41: Copyright © ILOG 2008 IBM ILOG CPLEX Advanced Performance Tuning Optimization Technologies Workshop John Gregory CPLEX Product Manager IBM jgregor@us.ibm.com.

41

Copyright © ILOG 2008

Numerical Tuning: Numerical Instability

Large values in problem data Bounds can magnify round off error:

Large coefficient ratios in matrix rows or columns:

0 z 01000000000 xbinary 5000, zx

NNNB xAAbBx ) ( -

Page 42: Copyright © ILOG 2008 IBM ILOG CPLEX Advanced Performance Tuning Optimization Technologies Workshop John Gregory CPLEX Product Manager IBM jgregor@us.ibm.com.

42

Copyright © ILOG 2008

Symptoms of Numerical Instability

Sample iteration log

Iter: 6389 Objective = 13137.039899Iter: 6390 Objective = 13137.039899Iter: 6391 Objective = 13726.011591Markowitz threshold set to 0.3.Iter: 6456 Scaled infeas = 300615.030682...Iter: 6752 Scaled infeas = 0.000002Iter: 6754 Objective = -23870.812630

Page 43: Copyright © ILOG 2008 IBM ILOG CPLEX Advanced Performance Tuning Optimization Technologies Workshop John Gregory CPLEX Product Manager IBM jgregor@us.ibm.com.

43

Copyright © ILOG 2008

Numerical Tuning Tactics

General Turn numerical emphasis on

Rounding of data Compute data as accurately as possible

Round off error in simplex method Set Markowitz tolerance to .90 (or higher if

necessary)

Large values in problem data Reduce large coefficients if possible

Set scaling parameter to 1 (aggressive scaling)

Page 44: Copyright © ILOG 2008 IBM ILOG CPLEX Advanced Performance Tuning Optimization Technologies Workshop John Gregory CPLEX Product Manager IBM jgregor@us.ibm.com.

44

Copyright © ILOG 2008

CPLEX Performance Tuning Summary

CPLEX solves most problems with no trouble Organized tactics for the outliers can yield dramatic savings in

time.

Different categories of performance problems.

Use all available information Iteration and node logs for LP and MIP

Interactive CPLEX

Simple test programs (CPLEX and your own)

OS memory management tools

Purify/Insure/Bounds Checker/Valgrind

ILOG Technical Support and Consulting