ILOGCPLEX11 - Boston Universitysites.bu.edu/paschalidis/files/2015/06/CPLEX11_2manuals.pdfand are...

1653
ILOG CPLEX 11.2

Transcript of ILOGCPLEX11 - Boston Universitysites.bu.edu/paschalidis/files/2015/06/CPLEX11_2manuals.pdfand are...

  • ILOG CPLEX 11.2

  • ILOG CPLEX

    NOTICES

    Product copyright notice

    ILOG CPLEX Copyright © 1997 – 2008, by ILOG SA, 9 Rue de Verdun, 94253 GentillyCedex, France, and ILOG, Inc., 1195 W. Fremont Avenue, Sunnyvale, California94087-3832, USA. All rights reserved.

    Restrictions of general use

    This document and the software described in this document are the property of ILOGand are protected as ILOG trade secrets. They are furnished under a license ornondisclosure agreement, and may be used or copied only within the terms of suchlicense or nondisclosure agreement. No part of this work may be reproduced ordisseminated in any form or by any means, without the prior written permission of ILOGSA or ILOG Inc.

    Trademarks

    ILOG, the ILOG design, CPLEX, and all other logos and product and service names ofILOG are registered trademarks or trademarks of ILOG in France, the USA and/or othercountries.

    All other brand, product, and company names are trademarks or registered trademarksof their respective holders.

    Java and all Java-based marks are either trademarks or registered trademarks of SunMicrosystems, Inc. in the United States and other countries.

    Microsoft and Windows are either trademarks or registered trademarks of MicrosoftCorporation in the United States and other countries.

    Acknowledgement of use: dtoa routine of the gdtoa package

    ILOG acknowledges use of the dtoa routine of the gdtoa package, available at

    http://www.netlib.org/fp/.

    The author of this software is David M. Gay.

    All Rights Reserved.

    Copyright (C) 1998, 1999 by Lucent Technologies

    Permission to use, copy, modify, and distribute this software and its documentation forany purpose and without fee is hereby granted, provided that the above copyright noticeappears in all copies and that both that the copyright notice and this permission notice

  • and warranty disclaimer appear in supporting documentation, and that the name ofLucent or any of its entities not be used in advertising or publicity pertaining to distributionof the software without specific, written prior permission.

    LUCENT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. INNO EVENT SHALL LUCENT OR ANY OF ITS ENTITIES BE LIABLE FOR ANY SPECIAL,INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVERRESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTIONOF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OFOR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

    (end of license terms of dtoa routine of the gdtoa package)

  • Table of contents

    ILOG CPLEX Release Notes....................................................................................14ILOG CPLEX 11.2 Release Notes.............................................................................................15Welcome to ILOG CPLEX 11.2....................................................................................................................17Port changes: deprecated and removed ports.............................................................................................18Conversion notes for all users......................................................................................................................19

    New solution polishing interface........................................................................................................21Impact of multiple MIP starts.............................................................................................................31MIP starts independent of the solution pool......................................................................................35Change in XML schema....................................................................................................................41Lower and upper cutoff tolerances....................................................................................................42User cuts may be purged..................................................................................................................43

    Conversion notes for users of MS Windows.................................................................................................44Conversion notes for users of Concert Technology......................................................................................45

    Conversion notes for users of C++ API.............................................................................................46Conversion notes for users of Java API............................................................................................47Conversion notes for users of .NET API...........................................................................................49

    Conversion notes for users of the Callable Library.......................................................................................51New features for all users.............................................................................................................................55

    New parameters................................................................................................................................57New error codes................................................................................................................................58Solving more SOCP, QCP, and MIQCP.............................................................................................59Multiple MIP starts............................................................................................................................60Write level for SOL, MST file formats................................................................................................64

    I L O G C P L E X 1 1 . 2 5

    C O N T E N T S

  • Refining a conflict in a MIP start.......................................................................................................65Accessing MIP relative gap...............................................................................................................66New ways to measure computational time........................................................................................67

    ILOG CPLEX 11.1 Release Notes.............................................................................................69Welcome to ILOG CPLEX 11.1....................................................................................................................71

    Announcements................................................................................................................................72Port changes.....................................................................................................................................73

    Conversion notes for all users......................................................................................................................77Conversion overview.........................................................................................................................78Solution polishing and MIP starts......................................................................................................79Locale and the writing of readable files.............................................................................................80

    Conversion notes for Concert Technology users..........................................................................................81Conversion notes for Callable Library users.................................................................................................82

    ILOG CPLEX 11.0.......................................................................................................................83ILOG CPLEX 11.0 Release Notes...............................................................................................................85Announcements: port changes.....................................................................................................................86Conversion notes for all users......................................................................................................................87

    Overview...........................................................................................................................................89Changes in existing parameters........................................................................................................90Dynamic search................................................................................................................................91Informational callbacks......................................................................................................................92Node limits........................................................................................................................................93File format removed: SOS.................................................................................................................94Error codes removed.........................................................................................................................95Error codes added.............................................................................................................................96

    Conversion notes for Concert Technology users..........................................................................................97Overview...........................................................................................................................................98Conversion notes for users of the C++ API.......................................................................................99Conversion notes for users of the Java API....................................................................................100Conversion notes for users of the .NET API...................................................................................101

    Conversion notes for Callable Library users...............................................................................................102New features for all users...........................................................................................................................105

    Overview.........................................................................................................................................107Solution pool...................................................................................................................................108Tuning tool.......................................................................................................................................109Deterministic parallel MIP...............................................................................................................110New algorithm for MIQCPs.............................................................................................................111Feasibility pump..............................................................................................................................112New status code for FeasOpt..........................................................................................................113New status codes for solution pool..................................................................................................114Solution information available for MIPs and FeasOpt.....................................................................115Interruption and termination............................................................................................................116New parameters..............................................................................................................................117

    I L O G C P L E X 1 1 . 26

  • New features in Concert Technology..........................................................................................................119Overview.........................................................................................................................................120

    New features in the Callable Library...........................................................................................................121New features in the Interactive Optimizer...................................................................................................122Documentation for IDEs.............................................................................................................................123

    Getting Started with ILOG CPLEX........................................................................124ILOG CPLEX Getting Started..................................................................................................125Introducing ILOG CPLEX...........................................................................................................................127

    What is ILOG CPLEX?....................................................................................................................129Using the parallel optimizers...........................................................................................................135Data entry options...........................................................................................................................136What ILOG CPLEX is not................................................................................................................137What you need to know...................................................................................................................138What’s in this manual......................................................................................................................139Notation in this manual....................................................................................................................140Related documentation...................................................................................................................141

    Setting up ILOG CPLEX.............................................................................................................................143Overview.........................................................................................................................................144Installing ILOG CPLEX....................................................................................................................145Setting up licensing.........................................................................................................................148Using the Component Libraries.......................................................................................................149

    Tutorials......................................................................................................................................................151Solving an LP with ILOG CPLEX....................................................................................................153Interactive Optimizer tutorial...........................................................................................................165Concert Technology tutorial for C++ users......................................................................................237Concert Technology tutorial for Java users.....................................................................................279Concert Technology tutorial for .NET users....................................................................................301Callable Library tutorial...................................................................................................................315

    ILOG CPLEX User's Manual..................................................................................349ILOG CPLEX User's Manual...................................................................................................351Meet ILOG CPLEX.....................................................................................................................................353

    What is ILOG CPLEX?....................................................................................................................355What does ILOG CPLEX do?..........................................................................................................356What you need to know...................................................................................................................358Examples online..............................................................................................................................359Notation in this manual....................................................................................................................361Related documentation...................................................................................................................362Announcements and updates.........................................................................................................365Further reading...............................................................................................................................366

    Languages and APIs..................................................................................................................................367ILOG Concert Technology for C++ users........................................................................................369ILOG Concert Technology for Java users........................................................................................423

    I L O G C P L E X 1 1 . 2 7

  • ILOG Concert Technology for .NET users.......................................................................................473ILOG CPLEX Callable Library.........................................................................................................503

    Programming considerations......................................................................................................................553Developing CPLEX applications......................................................................................................555Managing input and output..............................................................................................................583Timing interface...............................................................................................................................607Licensing an application..................................................................................................................611Tuning tool.......................................................................................................................................625

    Continuous optimization.............................................................................................................................643Solving LPs: simplex optimizers......................................................................................................645Solving LPs: barrier optimizer.........................................................................................................691Solving network-flow problems.......................................................................................................733Solving problems with a quadratic objective (QP)...........................................................................751Solving problems with quadratic constraints (QCP)........................................................................775

    Discrete optimization..................................................................................................................................799Solving mixed integer programming problems (MIP)......................................................................801Solution pool: generating and keeping multiple solutions...............................................................911Using special ordered sets (SOS)...................................................................................................969Using semi-continuous variables: a rates example.........................................................................977Using piecewise linear functions in optimization: a transport example...........................................987Logical constraints in optimization................................................................................................1013Indicator constraints in optimization..............................................................................................1025Using logical constraints: Food Manufacture 2..............................................................................1033Early tardy scheduling...................................................................................................................1043Using column generation: a cutting stock example.......................................................................1055

    Infeasibility and unboundedness..............................................................................................................1075Preprocessing and feasibility........................................................................................................1077Managing unboundedness............................................................................................................1081Diagnosing infeasibility by refining conflicts..................................................................................1085Repairing infeasibilities with FeasOpt...........................................................................................1121

    Advanced programming techniques.........................................................................................................1131User-cut and lazy-constraint pools................................................................................................1133Using goals...................................................................................................................................1149Using optimization callbacks.........................................................................................................1183Goals and callbacks: a comparison...............................................................................................1231Advanced presolve routines..........................................................................................................1235Advanced MIP control interface....................................................................................................1251Parallel optimizers.........................................................................................................................1269

    ILOG CPLEX Parameters.....................................................................................1290ILOG CPLEX Parameters Reference Manual.......................................................................1291Accessing parameters..............................................................................................................................1292Parameter names.....................................................................................................................................1293Correspondence of parameters................................................................................................................1294

    I L O G C P L E X 1 1 . 28

  • Saving parameter settings to a file...........................................................................................................1295Topical list of parameters..........................................................................................................................1297

    Simplex.........................................................................................................................................1299Barrier...........................................................................................................................................1300MIP................................................................................................................................................1301MIP general...................................................................................................................................1302MIP strategies...............................................................................................................................1303MIP cuts........................................................................................................................................1304MIP tolerances..............................................................................................................................1305MIP limits.......................................................................................................................................1306Solution polishing..........................................................................................................................1307Solution pool.................................................................................................................................1308Network.........................................................................................................................................1309Parallel optimization......................................................................................................................1310Sifting............................................................................................................................................1311Preprocessing: aggregator, presolver...........................................................................................1312Tolerances.....................................................................................................................................1313Limits.............................................................................................................................................1314Display and output........................................................................................................................1315

    List of CPLEX parameters........................................................................................................................1317advanced start switch....................................................................................................................1329constraint aggregation limit for cut generation..............................................................................1331preprocessing aggregator fill.........................................................................................................1332preprocessing aggregator application limit....................................................................................1333barrier algorithm............................................................................................................................1334barrier column nonzeros...............................................................................................................1335barrier crossover algorithm...........................................................................................................1336barrier display information.............................................................................................................1337convergence tolerance for LP and QP problems...........................................................................1338barrier growth limit.........................................................................................................................1339barrier iteration limit.......................................................................................................................1340barrier maximum correction limit...................................................................................................1341barrier objective range..................................................................................................................1342barrier ordering algorithm..............................................................................................................1343convergence tolerance for QC problems.......................................................................................1344barrier starting point algorithm......................................................................................................1345MIP strategy best bound interval...................................................................................................1346bound strengthening switch..........................................................................................................1347MIP branching direction................................................................................................................1348backtracking tolerance..................................................................................................................1349MIP cliques switch.........................................................................................................................1351clock type for computation time.....................................................................................................1352coefficient reduction setting...........................................................................................................1353

    I L O G C P L E X 1 1 . 2 9

  • variable (column) read limit...........................................................................................................1354conflict information display............................................................................................................1355MIP covers switch.........................................................................................................................1356simplex crash ordering..................................................................................................................1357lower cutoff....................................................................................................................................1359number of cutting plane passes....................................................................................................1360row multiplier factor for cuts..........................................................................................................1361upper cutoff...................................................................................................................................1362data consistency checking switch.................................................................................................1363dependency switch........................................................................................................................1364MIP disjunctive cuts switch............................................................................................................1365MIP dive strategy..........................................................................................................................1366dual simplex pricing algorithm.......................................................................................................1367type of cut limit..............................................................................................................................1368absolute MIP gap tolerance..........................................................................................................1370relative MIP gap tolerance............................................................................................................1371integrality tolerance.......................................................................................................................1372epsilon used in linearization..........................................................................................................1373Markowitz tolerance......................................................................................................................1375optimality tolerance.......................................................................................................................1376perturbation constant....................................................................................................................1377relaxation for FeasOpt...................................................................................................................1378feasibility tolerance........................................................................................................................1379mode of FeasOpt..........................................................................................................................1380MIP flow cover cuts switch............................................................................................................1382MIP flow path cut switch................................................................................................................1383feasibility pump switch...................................................................................................................1384candidate limit for generating Gomory fractional cuts...................................................................1386MIP Gomory fractional cuts switch................................................................................................1387pass limit for generating Gomory fractional cuts...........................................................................1388MIP GUB cuts switch....................................................................................................................1389MIP heuristic frequency................................................................................................................1390MIP implied bound cuts switch......................................................................................................1391MIP integer solution limit...............................................................................................................1392simplex maximum iteration limit....................................................................................................1393local branching heuristic................................................................................................................1394memory reduction switch..............................................................................................................1395MIP callback switch between original model and reduced, presolved model................................1396MIP node log display information..................................................................................................1398MIP emphasis switch....................................................................................................................1400MIP node log interval....................................................................................................................1402MIP priority order switch................................................................................................................1403MIP priority order generation........................................................................................................1404

    I L O G C P L E X 1 1 . 210

  • MIP dynamic search switch...........................................................................................................1405MIQCP strategy switch..................................................................................................................1407MIP MIR (mixed integer rounding) cut switch................................................................................1409precision of numerical output in MPS and REW file formats.........................................................1410network logging display switch......................................................................................................1411network optimality tolerance..........................................................................................................1412network primal feasibility tolerance...............................................................................................1413simplex network extraction level....................................................................................................1414network simplex iteration limit.......................................................................................................1415network simplex pricing algorithm.................................................................................................1416MIP subproblem algorithm............................................................................................................1417node storage file switch.................................................................................................................1419MIP node limit...............................................................................................................................1420MIP node selection strategy..........................................................................................................1421numerical precision emphasis.......................................................................................................1422nonzero element read limit............................................................................................................1423absolute objective difference cutoff...............................................................................................1424lower objective value limit..............................................................................................................1425upper objective value limit.............................................................................................................1426parallel mode switch......................................................................................................................1427simplex perturbation switch...........................................................................................................1430simplex perturbation limit..............................................................................................................1431absolute MIP gap before starting to polish a feasible solution......................................................1432relative MIP gap before starting to polish a feasible solution........................................................1433MIP integer solutions to find before starting to polish a feasible solution......................................1434nodes to process before starting to polish a feasible solution.......................................................1435time before starting to polish a feasible solution...........................................................................1436time spent polishing a solution (deprecated).................................................................................1437limit on number of solutions generated for solution pool...............................................................1438primal simplex pricing algorithm....................................................................................................1440presolve dual setting.....................................................................................................................1441presolve switch..............................................................................................................................1442linear reduction switch...................................................................................................................1443limit on the number of presolve passes made...............................................................................1444node presolve switch.....................................................................................................................1445simplex pricing candidate list size.................................................................................................1446MIP probing level...........................................................................................................................1447time spent probing.........................................................................................................................1448indefinite MIQP switch...................................................................................................................1449QP Q-matrix nonzero read limit.....................................................................................................1450primal and dual reduction type......................................................................................................1451simplex refactoring frequency.......................................................................................................1452relaxed LP presolve switch............................................................................................................1453

    I L O G C P L E X 1 1 . 2 11

  • relative objective difference cutoff.................................................................................................1454frequency to try to repair infeasible MIP start...............................................................................1455MIP repeat presolve switch...........................................................................................................1456RINS heuristic frequency..............................................................................................................1457algorithm for continuous problems................................................................................................1458algorithm for continuous quadratic optimization............................................................................1460MIP starting algorithm...................................................................................................................1461constraint (row) read limit..............................................................................................................1463scale parameter............................................................................................................................1464messages to screen switch...........................................................................................................1465sifting subproblem algorithm.........................................................................................................1466sifting information display..............................................................................................................1467upper limit on sifting iterations.......................................................................................................1468simplex iteration information display.............................................................................................1469simplex singularity repair limit.......................................................................................................1470absolute gap for solution pool.......................................................................................................1471limit on number of solutions kept in solution pool..........................................................................1472relative gap for solution pool.........................................................................................................1474solution pool intensity....................................................................................................................1475solution pool replacement strategy...............................................................................................1477MIP strong branching candidate list limit.......................................................................................1478MIP strong branching iterations limit.............................................................................................1479limit on nodes explored when a subMIP is being solved...............................................................1480symmetry breaking........................................................................................................................1481global default thread count............................................................................................................1482optimizer time limit........................................................................................................................1485tree memory limit..........................................................................................................................1486tuning information display.............................................................................................................1487tuning measure.............................................................................................................................1488tuning repeater..............................................................................................................................1489tuning time limit.............................................................................................................................1490MIP variable selection strategy.....................................................................................................1491directory for working files..............................................................................................................1493memory available for working storage...........................................................................................1494write level for MST, SOL files........................................................................................................1495MIP zero-half cuts switch..............................................................................................................1497

    ILOG CPLEX File Formats...................................................................................1498ILOG CPLEX File Formats Reference Manual.....................................................................1499Brief descriptions of file formats...............................................................................................................1501Reading and entering file formats in the Interactive Optimizer.................................................................1505Saving problems in the Interactive Optimizer...........................................................................................1506LP file format: matrix models....................................................................................................................1507MPS file format: industry standard...........................................................................................................1515

    I L O G C P L E X 1 1 . 212

  • Overview of MPS..........................................................................................................................1516Records in MPS format.................................................................................................................1517Example of MPS file format...........................................................................................................1523

    Special records in MPS files: ILOG CPLEX extensions...........................................................................1525Overview of MPS extension..........................................................................................................1527Objective sense and name in MPS files........................................................................................1528Integer variables in MPS files........................................................................................................1529Special ordered sets (SOS) in MPS files......................................................................................1531Quadratic objective information in MPS files.................................................................................1533Quadratically constrained programs (QCP) in MPS files..............................................................1535Indicator constraints in MPS files..................................................................................................1536User defined cuts in MPS files......................................................................................................1538Lazy constraints in MPS files........................................................................................................1539

    NET file format: network flow models.......................................................................................................1540PRM file format: parameter settings.........................................................................................................1545BAS file format: advanced basis...............................................................................................................1546MST file format: MIP starts.......................................................................................................................1548ORD file format: priorities and branching orders......................................................................................1550SOL file format: solution files....................................................................................................................1551FLT file format: filter files for the solution pool..........................................................................................1553

    Overview of FLT............................................................................................................................1554Reading and writing filter files.......................................................................................................1555Syntax of a filter file.......................................................................................................................1556Diversity filters...............................................................................................................................1557Range filters..................................................................................................................................1558

    CSV file format: comma separated values...............................................................................................1559XML file format: serialized models and solutions.....................................................................................1560

    ILOG CPLEX Interactive Optimizer.....................................................................1561Interactive Optimizer Commands........................................................................................1563Overview of commands............................................................................................................................1564Table of the commands of the Interactive Optimizer.................................................................................1565Managing parameters in the Interactive Optimizer...................................................................................1579Saving a parameter specification file........................................................................................................1580

    Index......................................................................................................................1583

    I L O G C P L E X 1 1 . 2 13

  • ILOG CPLEX 11.2 Release NotesThank you for installing ILOG CPLEX 11.2. Before using it, please review these noteshighlighting improvements and changes in this version.

    ILOG CPLEX 11.1 Release NotesThank you for installing ILOG CPLEX 11.1. These release notes highlight improvements inILOG CPLEX 11.1. Please review these notes before using ILOG CPLEX 11.1.

    ILOG CPLEX 11.0Dedicated to Lloyd Clarke (1964–2007)

    I L O G C P L E X 1 1 . 214

  • ILOG CPLEX 11.2 Release Notes

    Thank you for installing ILOG CPLEX 11.2. Before using it, please review these noteshighlighting improvements and changes in this version.

    In this section

    Welcome to ILOG CPLEX 11.2Describes general outlines of ILOG CPLEX 11.2.

    Port changes: deprecated and removed portsDocuments available and deprecated ports.

    Conversion notes for all usersDescribes changes important to all users, identifies new behavior of existing features, andrecommends ways to preserve previous behavior, if necessary. When a parameter, method,or routine is deprecated, it is a good idea to migrate to the recommended replacement as soonas possible. The deprecated parameter, method, or routine will be removed in future versionsof the product. If migration to the recommended replacement poses a problem, please consultILOG CPLEX technical support for advice.

    Conversion notes for users of MS WindowsIntroduces a change in the clock type parameter

    Conversion notes for users of Concert TechnologyDescribes changes of interest to those who use Concert Technology. A new version of ConcertTechnology (Concert Technology 2.7) accompanies this release of ILOG CPLEX 11.2. Thisnew version requires you to recompile and link your Concert Technology applications.

    I L O G C P L E X 1 1 . 2 15

  • Conversion notes for users of the Callable LibraryDescribes changes of interest to those who use the Callable Library (C API).

    New features for all usersAnnounces new features in ILOG CPLEX 11.2.

    I L O G C P L E X 1 1 . 216

  • Welcome to ILOG CPLEX 11.2

    ILOG CPLEX 11.2 introduces new features that are designed to make your applications morecapable than ever:

    ♦ New control over solution polishing allowing the user to specify the conditions for startingand for terminating the polishing of an integer feasible solution

    ♦ Management of multiple MIP starts, either separately from or in conjunction with thesolution pool.

    ♦ Extension of the conflict refiner to handle MIP starts (a help in debugging models).

    ♦ Automatic transformation of additional types of quadratic constraints into second ordercone programs (SOCP).

    ♦ A new timing interface to compute the elapsed time of an operation.

    I L O G C P L E X 1 1 . 2 17

  • Port changes: deprecated and removed ports

    For a complete list of machine types and library formats (including version numbers ofcompilers and JDKs) see the file yourCPLEXhome/mptable.html in the distributionof the product. That file contains more detailed descriptions of available ports than do thesehighlights.

    Recommendedreplacement

    StatusPlatformPort name

    ultrasparc32_9_9 for SunStudio 9 and higher

    deprecated andremoved; no longeravailable

    Sun Studio 8, 32–bitultrasparc32_9_8

    ultrasparc64_9_9 for SunStudio 9 and higher

    deprecated andremoved; no longeravailable

    Sun Studio 8, 64–bitultrasparc64_9_8

    A new port, compatiblewith IBM Power AIX 5.3

    deprecated: no longeravailable in the nextrelease

    IBM Power AIX 5.2 IBMXL C/C++ 7.0 32–bit

    power32_aix5.2_7.0

    or higher, will beavailable in the nextrelease.

    A new port, compatiblewith IBM Power AIX 5.3

    deprecated: no longeravailable in the nextrelease

    IBM Power AIX 5.2 IBMXL C/C++ 7.0 64–bit

    power64_aix5.2_7.0

    or higher, will beavailable in the nextrelease.

    Sun Studio 8The ports named ultrasparc32_9_8 and ultrasparc64_9_8, compatible with Sun Studio 8 andhigher, have been removed and are not supported in ILOG CPLEX 11.2. The recommendedreplacements are the new ports ultrasparc32_9_9 and ultrasparc64_9_9, compatible withSun Studio 9 and higher. The Sun Studio 9 ports are available in ILOG CPLEX 11.2.

    IBM Power AIX 5The ports named power32_aix5.2_7.0 and power64_aix5.2_7.0, previously announced asdeprecated, are still deprecated, and still available in this release. The recommendedreplacement is migration to AIX 5.3 (or a higher version) followed by migration to a newCPLEX port supporting AIX 5.3 (or higher), which will be provided at the time the deprecatedport is removed.

    I L O G C P L E X 1 1 . 218

  • Conversion notes for all users

    Describes changes important to all users, identifies new behavior of existing features, andrecommends ways to preserve previous behavior, if necessary. When a parameter, method,or routine is deprecated, it is a good idea to migrate to the recommended replacement as soonas possible. The deprecated parameter, method, or routine will be removed in future versionsof the product. If migration to the recommended replacement poses a problem, please consultILOG CPLEX technical support for advice.

    In this section

    New solution polishing interfaceSolution polishing, an optional feature for mixed integer programming (MIP) problems,exploits heuristic methods to improve the best integer feasible solution found so far. It worksas a final phase of optimization. ILOG CPLEX 11.2 offers a new interface for finer controlover this polishing step. This topic introduces the new interface for solution polishing, outlineschanges implied by it, and recommends a migration path with examples.

    Impact of multiple MIP startsOutlines changes in behavior due to support for multiple MIP starts.

    MIP starts independent of the solution poolOutlines changes due to multiple MIP starts being independent of the solution pool.

    Change in XML schemaDescribes a change in the XML schema with respect to solutions.

    I L O G C P L E X 1 1 . 2 19

  • Lower and upper cutoff tolerancesAnnounces better documentation of behavior of cutoff tolerances.

    User cuts may be purgedAnnounces purgeable cuts

    I L O G C P L E X 1 1 . 220

  • New solution polishing interface

    Solution polishing, an optional feature for mixed integer programming (MIP) problems,exploits heuristic methods to improve the best integer feasible solution found so far. It worksas a final phase of optimization. ILOG CPLEX 11.2 offers a new interface for finer controlover this polishing step. This topic introduces the new interface for solution polishing, outlineschanges implied by it, and recommends a migration path with examples.

    In this section

    Solution polishing parametersDocuments improvements in solution polishing and recommends migration to the improvedAPI.

    Example: control the time spent polishingShows how to manage time spent polishing a feasible solution.

    Example: switch to polishing after first feasible solutionRecalls previous interface, then shows new interface, followed by a way to reproduce previousbehavior.

    Example: control solution polishing with gapShows how to use a MIP gap as a criterion to control solution polishing.

    I L O G C P L E X 1 1 . 2 21

  • Solution polishing parameters

    ILOG CPLEX 11.2 offers a new interface for finer control over solution polishing. The newinterface applies certain existing parameters to solution polishing, adds new parameters toallow better control of solution polishing, and deprecates a parameter no longer needed toenforce a time limit specific to solution polishing.

    Existing parameters to control solution polishingIn previous versions of ILOG CPLEX, the only stopping criterion for solution polishing wasset by the parameter PolishTime, CPX_PARAMPOLISHTIME to limit time spent polishinga solution (deprecated). General stopping criteria, such as the optimizer time limit, absoluteMIP gap, relative MIP gap, MIP node limit, or MIP integer solution limit, did not apply tosolution polishing in previous releases of the product.

    Now, however, ILOG CPLEX 11.2 allows the user to control more finely when solutionpolishing terminates. In other words, the tolerances and limits listed in this table now applyto solution polishing.

    General parameters now apply to solution polishing

    Interactive OptimizerCallable LibraryConcertTechnology

    ReferenceManual

    mip tolerancesabsmipgap

    CPX_PARAM_EPAGAPEpAGapabsolute MIP gaptolerance

    mip tolerances mipgapCPX_PARAM_EPGAPEpGaprelative MIP gaptolerance

    mip limits solutionsCPX_PARAM_INTSOLLIMIntSolLimMIP integer solutionlimit

    mip limits nodesCPX_PARAM_NODELIMNodeLimMIP node limit

    timelimitCPX_PARAM_TILIMTiLimoptimizer time limit

    New parameters to control solution polishingIn addition to those existing parameters that now control the termination of solution polishing,there are also new parameters specific to the starting conditions for solution polishing.

    With these new parameters, a user can tell CPLEX when to switch from branch & cut tosolution polishing. CPLEX is able to switch after it has found a feasible solution and put intoplace the MIP structures needed for solution polishing. When these two conditions are met(feasible solution and structures in place), CPLEX stops branch & cut and switches to solutionpolishing whenever the first of these starting conditions is met:

    ♦ when CPLEX achieves a specified absolute MIP gap;

    ♦ when CPLEX achieves a specified relative MIP gap;

    ♦ when CPLEX finds a specified number of integer solutions;

    I L O G C P L E X 1 1 . 222

  • ♦ when CPLEX processes a specified number of nodes;

    ♦ when CPLEX reaches a specified time limit on time spent in optimization.New parameters to specify starting conditions for solution polishing in Concert Technology

    CPLEX starts polishingConcert TechnologyReference Manual

    After achieving this absoluteMIP gap.

    PolishAfterEpAGapabsolute MIP gap before starting topolish a feasible solution

    After achieving this relativeMIP gap.

    PolishAfterEpGaprelative MIP gap before starting topolish a feasible solution

    After finding this number ofinteger solutions.

    PolishAfterIntSolMIP integer solutions to find beforestarting to polish a feasible solution

    After processing this numberof nodes.

    PolishAfterNodenodes to process before starting topolish a feasible solution

    After optimization spends thisamount of time.

    PolishAfterTimetime before starting to polish afeasible solution

    New parameters to specify starting conditions for solution polishing in the Callable Library

    CPLEX starts polishingCallable LibraryReference Manual

    After achieving this absoluteMIP gap.

    CPX_PARAM_POLISHAFTEREPAGAPabsolute MIP gap beforestarting to polish a feasiblesolution

    After achieving this relativeMIP gap.

    CPX_PARAM_POLISHAFTEREPGAPrelative MIP gap beforestarting to polish a feasiblesolution

    After finding this number ofinteger solutions.

    CPX_PARAM_POLISHAFTERINTSOLMIP integer solutions to findbefore starting to polish afeasible solution

    After processing this numberof nodes.

    CPX_PARAM_POLISHAFTERNODEnodes to process beforestarting to polish a feasiblesolution

    After optimization spendsthis amount of time.

    CPX_PARAM_POLISHAFTERTIMEtime before starting to polisha feasible solution

    New parameters to specify starting conditions for solution polishing in the InteractiveOptimizer

    CPLEX starts polishingInteractive OptimizerReference Manual

    After achieving this absoluteMIP gap.

    mip polishafter absmipgapabsolute MIP gap before starting topolish a feasible solution

    After achieving this relativeMIP gap.

    mip polishafter mipgaprelative MIP gap before starting topolish a feasible solution

    I L O G C P L E X 1 1 . 2 23

  • CPLEX starts polishingInteractive OptimizerReference Manual

    After finding this number ofinteger solutions.

    mip polishafter solutionsMIP integer solutions to find beforestarting to polish a feasible solution

    After processing this numberof nodes.

    mip polishafter nodesnodes to process before starting topolish a feasible solution

    After optimization spends thisamount of time.

    mip polishafter timetime before starting to polish afeasible solution

    Deprecated parameter:Time spent polishing a solutionThe parameter PolishTime, CPX_PARAM_POLISHTIME to limit time spent polishing asolution (deprecated) has been deprecated in this version and will be removed from a futureversion of ILOG CPLEX. This deprecated parameter is incompatible with the new parametersoffering better control over solution polishing. In particular, attempts to set this deprecatedparameter together with any of the new solution polishing parameters raise an error:1807CPXERR_PARAM_INCOMPATIBLE.

    I L O G C P L E X 1 1 . 224

  • Example: control the time spent polishing

    As an example of how to manage time spent polishing a feasible solution, suppose the userwants to solve a problem by spending 100 seconds in branch & cut and an additional 200seconds in polishing.

    In previous versions of CPLEX, a user applied the following commands:

    ♦ The user set the general optimizer time limit to 100.0 seconds. That parameter (TiLim,CPX_PARAM_TILIM) controlled only the time spent in branch & cut.

    ♦ The user set the parameter to limit time spent polishing a solution (deprecated) to 200.0seconds. That parameter (PolishTime, CPX_PARAM_POLISHTIME) controlled onlythe time spent in polishing.

    ♦ The user called the optimizer.However, that procedure entails a difficulty if no feasible solution is found within the first100 seconds of branch & cut. In such as case, solution polishing will not be executed, sinceit needs a feasible solution to start. That situation does not arise with the new API for solutionpolishing.

    In contrast, with the new API for solution polishing available in ILOG CPLEX 11.2, a userapplies the following commands:

    1. Set the general optimizer time limit to 300.0 seconds. In ILOG CPLEX 11.2, this parameternow controls the total time spent in branch & cut plus solution polishing.

    ♦ In Concert Technology, set the parameter TiLim.

    ♦ In the Callable Library, set the parameter CPX_PARAM_TILIM.

    ♦ In the Interactive Optimizer, use the command set timelimit 300.0.

    2. Establish a starting condition for solution polishing by setting to 100.0 seconds the timebefore starting to polish a feasible solution. This parameter controls the time spent inbranch & cut before CPLEX switches to polishing.

    ♦ In Concert Technology, set the parameter PolishAfterTime.

    ♦ In the Callable Library, set the parameter CPX_PARAM_POLISHAFTERTIME.

    ♦ In the Interactive Optimizer, use the command set mip polishafter time100.0.

    3. Call the optimizer.

    If CPLEX finds a solution in the first 100 seconds of branch & cut, this improved procedureproduces the same results as the deprecated procedure of previous versions. However, ifCPLEX does not find a solution in the first 100 seconds, then this procedure continues branch

    I L O G C P L E X 1 1 . 2 25

  • & cut until it finds a solution, and afterwards switches to polishing. This new procedureguarantees that CPLEX spends at most 300 seconds on the model and that CPLEX appliespolishing if a solution is found during that time.

    I L O G C P L E X 1 1 . 226

  • Example: switch to polishing after first feasible solution

    Previous interfaceIn previous versions of CPLEX, in order to find a first solution with branch & cut and improveit with solution polishing, a user had to follow these steps:

    ♦ The user set the MIP integer solution limit parameter to 1 (one).

    ● In Concert Technology, a user set the parameter IntSolLim.

    ● In the Callable Library, a user set the parameter CPX_PARAM_INTSOLLIM.

    ● In the Interactive Optimizer, a user invoked the command set mip limitssolutions 1.

    ♦ The user set the (deprecated) polishing time limit parameter to a positive value for thenumber of seconds, such as 100.0 seconds.

    ● In Concert Technology, a user set the parameter PolishTime.

    ● In the Callable Library, a user set the parameter CPX_PARAM_POLISHTIME.

    ● In the Interactive Optimizer, a user invoked the command set mip limitpolishtime 100.0.

    ♦ The user called the optimizer.

    New interfaceWith the new solution polishing interface of ILOG CPLEX 11.2, a user follows these stepsin order to find a first feasible solution with branch & cut and to invoke solution polishing toimprove that first feasible solution:

    1. Set to the value 1 (one) the number of MIP integer solutions to find before starting topolish a feasible solution.

    ♦ In Concert Technology, set the parameter PolishAfterIntSol.

    ♦ In the Callable Library, set the parameter CPX_PARAM_POLISHAFTERINTSOL.

    ♦ In the Interactive Optimizer, use the command set mip polishaftersolutions 1.

    2. Set the optimizer time limit to a positive value (for example, 200 seconds) to specify thetotal time spent in branch & cut plus polishing.

    ♦ In Concert Technology, set the parameter TiLim.

    ♦ In the Callable Library, set the parameter CPX_PARAM_TILIM.

    ♦ In the Interactive Optimizer, use the command set timelimit 200.0.

    I L O G C P L E X 1 1 . 2 27

  • 3. Call the optimizer.

    That sequence of steps produces slightly different results compared to the procedure in previousversions of CPLEX. Indeed, the user now controls the total time spent in branch & cut andin polishing, instead of controlling only the time spent in polishing.

    Reproducing previous behaviorIf a user wants to reproduce precisely the results of the old API, the user must call the optimizertwice with different parameters each time, in the new API, like this:

    1. Set the general MIP integer solution limit to 1 (one).

    ♦ In Concert Technology, set the parameter IntSolLim.

    ♦ In the Callable Library, set the parameter CPX_PARAM_INTSOLLIM.

    ♦ In the Interactive Optimizer, use the command set mip limits solutions1.

    2. Call the optimizer. This call finds the first feasible solution with branch & cut.

    3. Reset the general limit on MIP integer solutions to its default value (2 100 000 000).

    4. Set the amount of time before starting to polish a feasible solution to 0.0 (zero) seconds,so that CPLEX switches immediately to polishing.

    ♦ In Concert Technology, set the parameter PolishAfterTime.

    ♦ In the Callable Library, set the parameter CPX_PARAM_POLISHAFTERTIME.

    ♦ In the Interactive Optimizer, use the command set mip polishafter time0.0.

    5. Set the general optimizer time limit to 100.0 seconds to control how much time CPLEXspends polishing.

    ♦ In Concert Technology, set the parameter TiLim.

    ♦ In the Callable Library, set the parameter CPX_PARAM_TILIM.

    ♦ In the Interactive Optimizer, use the command set timelimit 100.0.

    6. Call the optimizer again.

    I L O G C P L E X 1 1 . 228

  • Example: control solution polishing with gap

    The new API for solution polishing available in ILOG CPLEX 11.2 allows a user to specifywhen solution polishing starts and ends with respect to a MIP gap. (This degree of controlwas not possible in the previous API for solution polishing.)

    For example, the following procedure applies branch & cut until it reaches a 10% gap; thenit starts solution polishing until it narrows the gap to 2%.

    1. Set to 10% the tolerance of the relative MIP gap before starting to polish a feasiblesolution. This parameter controls when CPLEX switches from branch & cut to solutionpolishing.

    ♦ In Concert Technology, set the parameter PolishAfterEpGap.

    ♦ In the Callable Library, set the parameter CPX_PARAM_POLISHAFTEREPGAP.

    ♦ In the Interactive Optimizer, use the command set mip polishafter mipgap0.1.

    2. Set to 2% the relative MIP gap tolerance. This parameter controls when branch & cutoptimization stops.

    ♦ In Concert Technology, set the parameter EpGap.

    ♦ In the Callable Library, set the parameter CPX_PARAM_EPGAP.

    ♦ In the Interactive Optimizer, use the command set mip tolerances mipgap0.02.

    3. Set the optimizer time limit to a positive value (for example, 200 seconds) to specify thetotal time spent in branch & cut plus polishing. For difficult problems, this step is aprecaution to guarantee that CPLEX terminates even if the targeted gap cannot be achieved.

    ♦ TiLim in Concert Technology

    ♦ CPX_PARAM_TILIM in the Callable Library

    ♦ timelimit 200.0 in the Interactive Optimizer4. Call the optimizer.

    I L O G C P L E X 1 1 . 2 29

  • I L O G C P L E X 1 1 . 230

  • Impact of multiple MIP starts

    Outlines changes in behavior due to support for multiple MIP starts.

    In this section

    Querying a MIP start or multiple MIP startsLists deprecated methods, routines and recommends new methods, routines.

    Continuous variables now in MIP startsAnnounces feature to support continuous variables in MIP starts.

    I L O G C P L E X 1 1 . 2 31

  • Querying a MIP start or multiple MIP starts

    ILOG CPLEX 11.2 supports multiple MIP starts independent of the solution pool. This notehighlights conversion issues resulting from this new feature. For more information about thenew feature itself, see also Multiple MIP starts in these release notes.

    As a result of changes to support multiple MIP starts and consequent changes in the solutionpool, the query methods and routines for MIP starts have also changed. Their new functionalityis similar to their previous behavior, but their names have changed to clarify that MIP startsexist as objects separate from the solution pool and that a user can manage more than oneMIP start at the same time. The new methods and routines make it possible for a user to add,modify, and query multiple MIP starts.

    Concert Technology deprecated methods for MIP start

    New recommended methodDeprecated method

    C++ API

    IloCplex::readMIPStartsIloCplex::readMIPStart

    IloCplex::writeMIPStartsIloCplex::writeMIPStart

    Java API

    IloCplex.readMIPStartsIloCplex.readMIPStart

    IloCplex.writeMIPStartsIloCplex.writeMIPStart

    .NET API

    Cplex.ReadMIPStartsCplex.ReadMIPStart

    Cplex.WriteMIPStartsCplex.WriteMIPStart

    Callable Library deprecated routines for MIP start

    New recommended routineDeprecated routine

    CPXgetmipstartsCPXgetsolnpoolmipstart

    CPXgetmipstartsCPXgetmipstart

    CPXwritemipstartsCPXmstwrite

    CPXwritemipstartsCPXmstwritesolnpool

    CPXwritemipstartsCPXmstwritesolnpoolall

    CPXgetnummipstartsCPXgetsolnpoolnummipstarts

    CPXchgmipstartsCPXchgmipstart

    CPXdelmipstarts followed byCPXaddmipstarts

    CPXcopymipstart

    I L O G C P L E X 1 1 . 232

  • New recommended routineDeprecated routine

    CPXreadcopymipstartsCPXreadcopymipstart

    I L O G C P L E X 1 1 . 2 33

  • Continuous variables now in MIP starts

    Methods and routines to access MIP starts now return values for continuous variables aswell as discrete variables.

    ♦ In Concert Technology

    ● In the C++ API, IloCplex::getMIPStart

    ● In the Java API, IloCplex.getMIPStart

    ● In the .NET API, Cplex.GetMIPStart

    ♦ In the Callable Library, CPXgetmipstarts

    The values for continuous variables may be useful when CPLEX solves a problem withidentical constraints but a different objective.

    If the user is interested in only the values of discrete variables (that is, the previous behavior),then the user should query the variable types, isolate the discrete variables (for example, in auser-defined array), and query values of only those discrete variables.

    I L O G C P L E X 1 1 . 234

  • MIP starts independent of the solution pool

    Outlines changes due to multiple MIP starts being independent of the solution pool.

    In this section

    Solution pool: existing solutions eligible for replacementAnnounces change in solution pool with respect to existing solutions.

    Solution pool: changed indicesWarns about a change in indices of solutions in the solution pool.

    Solution pool, multiple MIP starts, and the incumbentExplains impact of multiple MIP starts on the incumbent and the solution pool.

    Solution pool: examining solutionsExplains how to enumerate all solutions in the solution pool, in view of changed indices.

    I L O G C P L E X 1 1 . 2 35

  • Solution pool: existing solutions eligible for replacement

    As noted in Impact of multiple MIP starts, ILOG CPLEX 11.2 supports multiple MIP startsindependent of the solution pool. Consequently, this note highlights conversion issuesresulting from this new feature, with respect to the solution pool. For more information aboutthe new feature itself, see also Multiple MIP starts in these release notes.

    Previously, when MIP optimization or populate (the procedure for accumulating solutions inthe solution pool) were invoked repeatedly, CPLEX left untouched any solutions already inthe solution pool.

    This behavior has been changed: Now, CPLEX may replace solutions in the solution pool ifthe pool is at its capacity and CPLEX finds new solutions satisfying the replacement criteria.

    If a user wants to keep all solutions produced through all calls to MIP optimization or populate,then the user must query the solution pool before calling MIP optimization or populate againand store the solutions in user-defined arrays.

    I L O G C P L E X 1 1 . 236

  • Solution pool: changed indices

    Because of changes in the solution pool to handle MIP starts as explicit, separate objects andbecause of changes to support multiple MIP starts, the indexing of solutions in the solutionpool has changed. An application relying on indexing of solutions in the solution pool maycontinue to compile correctly but give unexpected results when running.

    I L O G C P L E X 1 1 . 2 37

  • Solution pool, multiple MIP starts, and the incumbent

    As long as the capacity of the solution pool is one or more, the incumbent now always appearsas the solution with index 0 (zero) after MIP optimization or populate, even if the incumbenthad been deleted from the pool prior to the invocation of MIP optimization or populate.

    A copy of the incumbent solution is always added to the pool, as long as the pool capacity isat least one, regardless of its evaluation with respect to any filters and regardless of thereplacement criterion governing the solution pool. (Previously, the incumbent might havebeen missing from the pool due to filtering or due to the replacement strategy.) This copy ofthe incumbent solution will be the first member of the solution pool, that is, the solution withindex 0 (zero).

    Previously, the incumbent was available in two ways from the solution pool: as the memberwith index –1 (minus one) or possibly as an arbitrarily numbered member of the solution pool.

    Tip: If your application accesses the incumbent by the index –1 (minus one), it will continueto work, but best practice suggests changing an application to use the symbolic valuereferring to the incumbent.

    In ILOG CPLEX 11.2, the incumbent is available through query methods or routines using aspecial symbolic value.

    ♦ In Concert Technology, use the symbolic value IncumbentId as an argument to a method.

    ● In the C++ API, use IloCplex::IncumbentId as the argument to specify thesolution index in methods such as IloCplex::getValues. For a complete list ofmethods that should use IloCplex::IncumbentId to access the incumbent, seeAccessing the incumbent in the C++ API.

    ● In the Java API, use IloCplex.IncumbentId as the argument to specify the solutionindex in methods such as IloCplex.getValues. For a complete list of methodsthat should use IloCplex::IncumbentId to access the incumbent, see Accessingthe incumbent in the Java API.

    ● In the .NET API, use Cplex.IncumbentId as the argument to specify the solutionindex in methods such as Cplex.GetValues. For a complete list of methods thatshould use IloCplex::IncumbentId to access the incumbent, see Accessing theincumbent in the .NET API.

    ♦ In the Callable Library, use the symbolic value CPX_INCUMBENT_ID as an argument tospecify the solution index in routines such as CPXgetsolnpoolx. For a complete listof routines that should use CPX_INCUMBENT_ID, see Accessing the incumbent in theCallable Library.

    I L O G C P L E X 1 1 . 238

  • ♦ In the Interactive Optimizer, for a solution in SOL file format, use one of these commands,where filename is the name you supply of the file to write to:

    ● write filename.sol

    ● write filename.sol 0

    ● write filename.sol incumbent

    Also in the Interactive Optimizer, if MIP start 1 (one) has been deleted or changed, it nolonger corresponds to the incumbent. As long as there has been no change to the MIP startssince the previous populate or optimization call, you can write the incumbent as a MIPstart to a file in MST format like this:

    ● write filename.mst 1

    The incumbent remains a member of the solution pool as member 0 (zero) on return from aMIP optimization or populate as long as the capacity of the solution pool is positive.

    The incumbent remains available by means of other query methods, such as getValues orroutines such as CPXgetx, without an index specified from the solution pool. That is, theincumbent remains accessible apart from the solution pool.

    I L O G C P L E X 1 1 . 2 39

  • Solution pool: examining solutions

    If a user wants to examine all the solutions available in the solution pool, the applicationshould now loop from 0 (zero) to N-1 (that is, one less than the number of solutions in thepool).

    Tip: If your application loops through the solutions of the solution pool from –1 (minus one),then you need to change your application so that the loop starts at 0 (zero).

    To learn the number of solutions in the pool for use in such a loop, ILOG CPLEX 11.2 offersthe following methods or routines.

    ♦ In Concert Technology,

    ● In the C++ API, use the method IloCplex::getSolnPoolNsolns.

    ● In the Java API, use the method IloCplex.getSolnPoolNsolns.

    ● In the .NET API, use the method Cplex.GetSolnPoolNsolns.

    ♦ In the Callable Library, CPXgetsolnpoolnumsolns.

    Previously, an application had to loop from -1 (minus one) to one less than the number ofsolutions in the pool. However, in some circumstances, the incumbent might possibly beprocessed twice in such a loop. Improvements in ILOG CPLEX 11.2 now prevent the possibilityof duplicates.

    I L O G C P L E X 1 1 . 240

  • Change in XML schema

    The XML element formerly known as has changed. The elementis now , a more generic name supporting solutions, multiple MIPstarts, and members of the solution pool. This XML element appears in the files solution.xsl and solution.xsd for XML serialization of CPLEX solutions.

    If your XML parser recognized the former element, you need to change your parser to recognizethe new name, .

    I L O G C P L E X 1 1 . 2 41

  • Lower and upper cutoff tolerances

    The documentation of the lower and upper cutoff tolerances has been revised to reflect theirbehavior more accurately. For more detail, see lower cutoff and upper cutoff in the ILOGCPLEX Parameter Reference Manual.

    ♦ For Concert Technology, see CutLo and CutUp.

    ♦ For the Callable Library, see CPX_PARAM_CUTLO and CPX_PARAM_CUTUP.

    ♦ For the Interactive Optimizer, see mip tolerances lowercutoff and miptolerances uppercutoff.

    I L O G C P L E X 1 1 . 242

  • User cuts may be purged

    ILOG CPLEX 11.2 makes it possible for you to specify to CPLEX to purge global cuts thatyou add to the model by means of a cut callback; that is, you can authorize CPLEX to removeglobal user cuts added to the model using cut callbacks. If you have specified that a cut youadded is purgeable, then CPLEX may determine at any time that the cut is no longer usefuland then purge it. By purging cuts, CPLEX eliminates those which are redundant with otheraspects of the model, saves computation of the unnecessary cuts, and thus may improveperformance in some situations.

    ♦ In Concert Technology, new methods with an additional argument allow you to specify toCPLEX whether a cut you added to the model is can be purged when CPLEX decides todo so.

    ● In the C++ API, see the method IloCplex::UserCutCallbackI::add.

    ● In the Java API, see the method IloCplex.UserCutCallback.add.

    ● In the .NET API, see the method Cplex.UserCutCallback.Add.

    ♦ In the Callable Library, the routine CPXcutcallbackadd now has an additional argumentwith which you can tell CPLEX whether a cut you added to the model can be purged whenCPLEX decides to do so.

    In order to take advantage of this new feature, you must edit your application to use the newargument of the relevant method or routine, recompile, and relink.

    I L O G C P L E X 1 1 . 2 43

  • Conversion notes for users of MS Windows

    In previous releases, only wall clock time was available for measuring computation time inILOG CPLEX applications on Microsoft Windows. Now, however, the parameter to selectclock type for computation time has been extended on Microsoft platforms to support bothCPU time and wall clock time (as before).

    At the default setting of this parameter, ILOG CPLEX 11.2 decides automatically whether touse CPU time or wall clock time to measure computation both to report performance and toterminate optimization when the user has set a time limit. Conventionally, ILOG CPLEXchooses wall clock time when other parameters invoke parallel optimization and chooses CPUtime when other parameters enforce sequential (not parallel) optimization.

    For documentation of this parameter, see clock type for computation time in the ILOG CPLEXParameters Reference Manual.

    ♦ ClockType in Concert Technology

    ♦ CPX_PARAM_CLOCKTYPE in the Callable Library

    ♦ clocktype in the Interactive Optimizer

    I L O G C P L E X 1 1 . 244

  • Conversion notes for users of ConcertTechnology

    Describes changes of interest to those who use Concert Technology. A new version of ConcertTechnology (Concert Technology 2.7) accompanies this release of ILOG CPLEX 11.2. Thisnew version requires you to recompile and link your Concert Technology applications.

    In this section

    Conversion notes for users of C++ APIDescribes changes of interest to those who use the C++ API of CPLEX.

    Conversion notes for users of Java APIDescribes changes of interest to those who use the Java API of CPLEX.

    Conversion notes for users of .NET APIDescribes changes of interest to those who use the .NET API of CPLEX.

    I L O G C P L E X 1 1 . 2 45

  • Conversion notes for users of C++ API

    These conversion notes apply to C++ applications using ILOG CPLEX 11.2.

    ♦ Accessing the incumbent in the C++ API

    ♦ IloCplex::getRay returns sparse array

    Accessing the incumbent in the C++ API

    As explained in Solution pool, multiple MIP starts, and the incumbent, changes to supportmultiple MIP starts and changes in the numbering or indexing of solutions in the solutionpool imply that Concert Technology methods accessing the incumbent should use the symbolicvalue IloCplex::IncumbentId.

    Tip: If your application uses any of the following methods, you need to change it.

    The following methods of the C++ API of Concert Technology may be affected by this changein ILOG CPLEX 11.2 and must use IloCplex::IncumbentId to access the incumbent:

    ♦ getSlack

    ♦ getSlacks

    ♦ getQuality

    ♦ getObjValue

    ♦ writeMIPStart

    ♦ solveFixed

    IloCplex::getRay returns sparse array

    The method IloCplex::getRay now re