COPT Changelog#
20260610#
Fixed a bug causing NLP initial guess to be submitted only when a dual initial guess was available.
Fixed input of LP basis (which helps accelerate resolve).
Option tech:writesolution to export .bas, .iis, .sol files.
20260609#
Fixed a bug in the interface for the local solver where parts of expressions and objective function could be lost.
Use initial guess in NLP.
Added various solution statuses, in particular locally optimal and locally infeasible for NLP.
Added option alg:qmatrixtol.
Updated to COPT 8.0.5, with performance improvements and bug fixes.
20260414#
Option alg:nonconvex, mip:startmode.
Fixed objective value output.
Fixed objective suffixes (.objpriority etc, see option obj:multi).
Changes in MP, in particular:
Option cvt:pre:boundsbest defaults to making auxiliary subexpression result variables free, unless the result is constant. This allows stronger nonlinear presolve.
20260322#
Updated to COPT 8.0.3, with performance improvements and bug fixes
Added option lp:concurrentmode
Added support for conic constraints
Added support for many non-linear expressions
Added native multi-objective optimization
20260108#
Updated to COPT 8.0.2, that introduces a global nonconvex (MI)QCQP solver and performance improvements.
Added options tech:loglevel, mip:prerootheurlevel, mip:repair
20251210#
Option obj:multi:options: fix integer-valued objective-specific options.
20251121#
New option obj:multi:options to control whether multi-objective option suffixes are used.
20251021#
Changes in MP: option cvt:expr:nlassign.
Upgrade to COPT 7.2.11.
Enable NLP (set options acc:_expr=2 alg:relax=1).
20251015#
Changes in MP
20250814#
Changes in MP
Improved preprocessing of logical and combinatorial expressions (options cvt:pre:unnest, cvt:pre:sort).
Option cvt:pre:boundlogarg (default 0) to bound arguments of logarithm nonnegative. Previously always done, sometimes deteriorating performance of nonlinear solvers.
20250801#
Changes in MP
Tolerances set by options pre:feastol, pre:feastolrel both need to be violated to produce a warning on contradicting variable/constraint bounds. Previously the preprocessor failed on any violation, without letting the solver try.
Options cvt:compl, cvt:compl:eps control complementarity reformulations.
20250617#
Changes in MP
Multi-objective emulator: added support for objective-specific options via objective suffixes beginning with option_
Option cvt:unnest: bits 2 and 4 switch on inlining of linear and quadratic subexpressions produced during reformulations (by default on).
Options cvt:pre:ctx2ineq, cvt:pre:ctx2count to control context propagation into conditional comparisons #267.
Enable native indicator constraints by default (options acc:ind..)
20250429#
Fix a bug in parsing of quadratic expressions, which could wrongly parse products of unequal linear expressions, such as (x-3)*(x-z-5).
20250424#
Changes in MP
Option cvt:qp2pass (default even faster parsing of quadratics)
20250408#
Fixed a bug in parsing of quadratic expressions
20250407#
Updated to COPT version 7.2.6
GPU is now supported for PDLP on Windows and Linux; CUDA library version >= 11.7 is required. See options lp:method and lp:pdlpgpumode.
20250329#
Changes in MP:
Option cvt:multoutcard to limit the size of out-multiplied QP expressions. Can improve speed on large models.
Improved parsing of quadratic expressions.
20250308#
Option mip:gapabs
20241228#
Updated to COPT 7.2.4, which includes performance improvements to the MIP, SOCP and QCQP solvers
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
20240531#
Updated to Copt 7.1.3, which provides many bugfixes.
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_timesandtiming; they are now aliases, set the value to 1 to have basic info, to 2 to have more detailed info.
20240410#
Updated to Copt 7.1.1, with support for first-order method (PDLP). On Windows this can be used with GPU supporting CUDA. It can be controlled setting
lp:methodto the new value6(PDLP) and with optionslp:pdlpgpumode,lp:pdlpgpudeviceandlp:pdlptol
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 MP linearization.)Disallow repeated weights for SOS constraints (suffixes
.sosno/.ref.)
Option
report_timesUnused
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.
20231117#
Updated to Copt 7.0.3, which includes many performance improvements
New keyword
lim:soltimeto specify a time limit after a solution has been foundMP update: fixed graceful exit on Ctrl-C from AMPL in Linux and fixed issue with reading text-format NL files
20231103#
Improved translation of logical constraints: inlining of nested disjunctions and conjunctions; fewer auxiliary binary variables.
20231017#
Fixed a bug in NL reader on Windows.
20230919#
mp_options. Receive mp_options from AMPL (for all MP solvers). They are parsed before (solvername)_options.
Solution checking: relative tolerance sol:chk:feastolrel; options sol:chk:round, sol:chk:prec.
20230831#
Solution checking, options sol:chk:* (experimental).
Preprocess And/Or constraints.
20230817#
Alternative solutions: solve status equal to that of the final solution.
Fixed a bug causing repeated names for auxiliary variables and constraints.
Option values can be assigned without ‘=’.
Fixed a bug where equivalent conditional comparisons were not unified.
20230726#
Fixed inequalities of integer expressions with non-integer constants, see test_int_non_int.mod.
20230724#
Option [solver_]auxfiles rc; transfers names of variables and linear constraints into the model; (solver)_options ‘cvt:names=0-3’ controls names.
20230621#
Fix quadratic objective with repeated subexpressions.
20230616#
Changes in MP.
20230428#
Updated to Copt 6.5.2, which includes performance improvements and fixes for issues with MIP problems
20230424#
Changes in the MP library: added variable names support and removed spurious starting solution
20230330#
Recognition of second-order conic constraints from algebraic representations and conversion into quadratic constraints; COPT appears to recognize second-order cones from quadratics.
20230207#
Changes in the MP library
Updated to Copt 6.0.4, which includes bugfixes
Added support for unbounded/Farkas rays calculation
20221228#
Changes in MP
20221222#
Bug fixes in MP
20221211#
Changes in MP: added the ==> else operator Implemented implication with ‘else’: constr1 ==> constr2 [else constr3]
Changes in MP: PLApproxRelTol, PLApproxDomain Parameters to control piecewise-linear approximation. cvt:plapprox:reltol default value changed from 1e-5 to 0.01.
20230207#
Updated to Copt 6.0.1, which includes: many performance improvements native support for quadratic constraints
20221012#
Piecewise-linear approximation of quadratics For non-convex quadratics, set the following options: cvt:quadobj=0 and/or cvt:quadcon=0.
20220928#
Changes in MP: piecewise-linear approximations of nonlinear functions, default value of big-M
20220715#
Updated to Copt 5.0.1, which includes many performance improvements
Added feasibility relaxation (see alg:feasrelax)
New parameters: alg:iismethod
20220615#
New parameter: crossover
Minor changes to parmeter names
20220526#
SOS constraints are now detected also if the .ref suffix is integer
Minor changes to parmeter names
20220511#
Complementarity constraints: also quadratics Complementarity constraints now handle quadratics.
Branch develop is used for new code The active development branch is now develop.
Convert quadratic range constraints to QuadCon(LE/EQ/GE) COPT does not support quadratic range constraints. Conversion of linear range constraints into one-side rhs constraints has been generalized for any algebraic ones.
20220411#
First mp-based release, linked with COPT libraries 4.0.5