CPLEX Changelog

20240828

  • Options primalopt, dualopt, baropt, siftopt, netopt, bendersopt are now flags (e.g. they have to be set without a value)

20240823

  • CPLEX MP driver is now the default. To use the previous ASL-based driver set: option solver cplexasl;

  • Added many options available in the ASL driver

  • Notable changes with ASL driver:

    • Keyword ‘basis_cond’ is now ‘kappa’ and follows the standard MP implementation

    • Multiobjective optimization follows the MP standard implementation

    • Choosing solution algorithm for the LP problems or the initial MIP subproblem (formerly mipstartalg) now follows the same standard as other MP drivers: see alg:method in the -= output

    • Former option timing is now implemented through the corresponding MP feature. To print the number of available cores use tech:numcores.

    • Use MP feature tech:writemodelonly instead of writeprob + nosolve. Note that nosolve still applies when specifying writemipstart

  • Conversion of basis status for constraints depending on sense

20240801

  • Fix a problem that occured when reporting IIS

  • Removed some noise from console output

20240724

  • Option acc:_all

    • Useful to disable all reformulations (acc:_all=2), or force linearization (acc:_all=0).

  • Option cvt:prod

    • Controls reformulation of binary products into logical constraints.

  • Faster input of quadratic expressions.

20240617

  • Multi-objective emulator

    • obj:multi=2 forces emulation, even if MO natively supported.

    • Fixed a bug in the objective degradation suffixes .objasbtol, .objreltol.

20240604

  • Presolve division by constant, resulting in fewer constraints

  • Fix no-solution case in multi-objective emulator

20240529

  • Multi-objective emulator

    • All flat MP solvers support multi-objective mode (obj:multi=1), either natively, or via emulation.

    • Suffixes .objpriority, .objweight, .objabstol, .objreltol.

    • [BREAKING] Default intuitive handling of .objweight, see option obj:multi:weight, even when natively supported.

20240429

  • [BREAKING] Merged report_times and timing; they are now aliases, set the value to 1 to have basic info, to 2 to have more detailed info.

20240320

  • SOS constraints.

    • Fixed handling of SOS2 constraints created by AMPL as reformulations of PL expressions (option pl_linearize 1, default; set to 0 to use the solver’s native PL functions or MP linearization.)

    • Disallow repeated weights for SOS constraints (suffixes .sosno/.ref.)

  • Option report_times

  • Unused acc: options.

    • The constraint acceptance options acc:... for non-handled constraints are ignored (previously triggered error.)

20240115

  • Solve result codes.

    • List codes by running (solver) -!

    • [BREAKING] Standardized codes. Major changes:

      • 100-199 (solved?) means solution candidate provided, but can be suboptimal/infeasible

      • 300-349 means unbounded problem but feasible solution returned

      • 400-449 means limit/interrupt but feasible

    • [BREAKING] sol:chk:fail returns code 150 (solved?)

  • Improved translation of SOCP constraints.

    • Options cvt:socp, cvt:socp2qc.

  • Compact solution check warnings

  • Fixed presolve of the power function #226.

  • Added fixed model for mip:basis

  • Added options:

    • alg:method and flags to choose the solution algorithm

    • mip:nodemethod to choose the algorithm used for MIP node problems

    • lp:solutiontype to choose if to use crossover to get a basis basis solution after barrier

20231122

  • Public beta; implemented most features in MP: model export, warm start, input and output basis, feasibility relaxation, multiple solutions, kappa, unbounded rays, IIS, return MIP gap, return dual bound

  • Native Model support:

    • continuous and integer variables

    • multiple objectives, quadratic objectives

    • linear and quadratic constraints, indicator constraints and PL functions

    • special ordered sets (type 1 and 2)

20231117

  • MP update: fixed graceful exit on Ctrl-C from AMPL in Linux and fixed issue with reading text-format NL files

20230815

  • Fixed a bug causing repeated names for auxiliary variables and constraints.

  • Option values can be assigned without ‘=’.

  • Changed default tolerance for strict comparisons to 0 (option cmp:eps, #102.)

  • Fixed a bug where equivalent conditional comparisons were not unified.