Skip to content

About

COPT (Cardinal Optimizer) release notes and links

Resources

Stars

48 stars

Watchers

8 watching

Forks

Latest commit

 

History

68 Commits

Folders and files

Repository files navigation

COPT 8.0

COPT (Cardinal Optimizer) is a mathematical optimization solver for large-scale optimization problems. It includes high-performance solvers for LP, MIP, SDP, (MI)SOCP, convex/nonconvex (MI)QP, convex/nonconvex (MI)QCP and exponential cone programming.

The optimizer supports all major operating systems (64-bit), including Windows, Linux, and MacOS. It provides interfaces to Julia, Python, PuLP, Pyomo, Fortran, C, C++, C#, Java, AIMMS, AMPL, GAMS and CVXPY.

If you don't have a valid COPT 8.0 license yet, please apply for free personal license from COPT application page.

Full COPT documentation is available here.

Reference

If you used COPT in your research work, please mention us in your publication. For example:

  • We used COPT [1] in our project.
  • To solve the integer problem, we used Cardinal Optimizer [1].

with the following entry in the Reference section:
[1] D. Ge, Q. Huangfu, Z. Wang, J. Wu. and Y. Ye. Cardinal Optimizer (COPT) user guide. https://guide.coap.online/copt/en-doc, 2022.

The corresponding BiBTeX citation is:

@misc{copt,
  author={Dongdong Ge and Qi Huangfu and Zizhuo Wang and Jian Wu and Yinyu Ye},
  title={Cardinal {O}ptimizer {(COPT)} user guide},
  howpublished={https://guide.coap.online/copt/en-doc},
  year=2022
}

Download links

The latest COPT 8.0 patch release is COPT 8.0.7.

Download links for supported platforms are:

Windows
We recommend the Installer, but you can use the zip package too.

macOS (Universal)
We recommend the Installer, but you can use the tar.gz package too.

Linux
Please use the tar.gz package

Linux (ARM64)
Please use the tar.gz package

Release notes

COPT 8.0.7
==========

Added a MipStartMode setting to accept all MIP start values, intended for hierarchical multi-objective optimization.

Improved no_proxy handling in the remote services.
Improved stability and thread safety for concurrent remote solving.
Improved load balancing in the compute cluster server, including resource monitoring inside containers.

Fixed a race condition during hardware detection that could cause license validation to fail.
Fixed a memory issue with single-element NdArray objects.
Fixed a crash in the Java API when GC reclaimed a previously solved model while another solve was in progress.
Fixed an issue when NumPy arrays are used with the coptpy matrix API.
Fixed issues in the C# and Java APIs when setting a custom callback.

Fixed multiple issues in MIP presolver.
Fixed handling of MIP starting values when the model is modified before the solve.
Fixed a crash when a callback interrupted the solve after presolve had fully solved the problem.
Fixed an issue where the MIP solver could fail with a 'cannot change instruction set' error.
Fixed an issue when a callback interrupted the solve during MIP start processing.
Fixed an issue where getting IIS data could fail silently.
Fixed an issue in QP solver.

Fixed other bugs and issues.
Updated documentation.

COPT 8.0.6
==========

Introduced memory management policies for the COPT compute cluster server.
Added support for NVIDIA CUDA 13.
Added support for Python 3.14 and free-threaded Python on PyPI.
Added support for writing multi-objective problems to NL files.
Added public double attributes for the numerical ranges of the problem.
Added public double attribute MemPeak for peak memory usage during solving.
Added public double parameter MemLimit for setting a soft memory limit during solving.
Added public integer parameter WriteDualProb for writing the dual problem (LP only for now).
Relaxed the restrictions on accessing solution information after model modifications.
Removed the NumPy dependency from the Python matrix API.

Improved performance of the GPU barrier solver.
Improved performance of advanced simplex routines.
Improved load balancing for concurrent jobs on the compute cluster server.
Improved keep-alive mechanism for connections to the compute cluster server during modeling.
Improved robustness when sending the problem to the compute cluster server, with automatic retry of missing data chunks.

Fixed an issue where data references could be lost in the Python matrix API.
Fixed an issue related to indicator constraints in the LP writer.
Fixed an issue with BLAS on arm64 platforms.

Fixed other bugs and issues.
Updated documentation.

Deprecated:
Support for Python 3.8 on PyPI will be discontinued in the next release.
Note that PyPI is a non-commercial, community-maintained package repository.

COPT 8.0.5
==========

Improved numerical stability for LP problems.
Improved logging and enhanced thread safety for solving on compute cluster servers.
Added error handling for range constraint expressions in Python.

Fixed an issue when solving infeasible QP models.
Fixed an issue with empty names when writing feasibility and IIS files.
Fixed issues related to solving status in remote connections and multi-objective problems.

Updated public examples with new solving status.
Updated documentation.

Important Notice:
Several issues were identified in version 8.0.4 and have been addressed in version 8.0.5.
Users running version 8.0.4 are strongly encouraged to upgrade to version 8.0.5.

COPT 8.0.4
==========

Introduced new solving status for LP and MIP problems.
Added error messages to the COPT logs when loading GPU drivers.
Added new attributes for the numerical ranges of LP and QP problems.
Added double parameter QMatrixTol for Q matrix coefficient tolerance.
Improved logs for the COPT-Pyomo interface.
Improved numerical stability for QP problems.
Improved performance for computing dual farkas and rays.

Fixed a numerical issue in an LP presolve routine.
Fixed a threading issue related to callbacks in the compute cluster service.
Fixed an issue when reading fixed binaries in an MPS file.
Fixed an issue in sensitivity analysis for LP problems with no explicit constraints.
Fixed issues in MIP presolve routines.
Fixed public C and Python examples.
Fixed some issues when solving on the compute cluster service.

Updated documentation.

Support for Python 3.7 on PyPI is officially discontinued.

COPT 8.0.3
==========

Introduced an NLP callback interface in both C++ and Python to solve NL problems.
Added integer parameter ConcurrentLpMode to enable concurrent LP methods on GPU.
Added support for assignment via slicing or views of Python NdArray.
Added dot product and prod() support to C++, C# and Python NdArray.
Added OS and CPU information to COPT logs.

Fixed an issue in the dual method of SDP solver.
Fixed an issue where the PDLP method may stop at 0 iterations.
Fixed an issue about solving maxmization problem in SDP solver.
Fixed issues about the starting point and linear system in GPU barrier solver.
Fixed a bug where Python addConstr methods may fail to run if a previous call resulted in an error.
Fixed a bug introduced in version 8.0.2, where license error messages are overwritten.

Fixed other bugs and issues.
Updated documentation.

Breaking Changes:
Using GPUMode (>0) on a machine without a GPU will now report an error, instead of silently falling back to CPU mode.
When the integer parameter BarOrder is specified, COPT runs the corresponding algorithm regardless of performance.
Indexing operator of Python NdArray now return scalar instead of a 0-d array, if resulting array contains only one element.
Sum() with no arguments in C++, C# and Python NdArray now return scalar, instead of 0-d array. 

Deprecated:
PuLP is removed from the COPT package, as official support is already available.
Support for Python 3.7 on PyPI will be discontinued in the next release.
Note that PyPI is a non-commercial, community-maintained package repository.

COPT 8.0.2
==========
Added CPU affinity and support for binding memory to NUMA nodes on Linux systems.
Improved barrier solver with GPU-acceleration.
Improved performance for MIP IIS.
Improved MIP heuristics and presolve.
Revised logs when computing farkas or ray.

Added integer parameter MipRepair to set level for repairing MIP solution in case of numerical issues.
Added integer parameter MipNlpIterLimit to set iteration limit for solving NLP problems within MIP solver.
Added integer parameter ReqSensitivity to specify whether to compute sensitivity analysis information.

Fixed an issue with SDP solver.
Fixed an issue related to the username in licensing.
Fixed an issue with matrix multiplication in the COPT Python API.
Fixed a remote connection issue affecting certain Linux versions.
Fixed other bugs and issues.

Updated documentation.

COPT 8.0.1
==========
Added integer parameter PreRootHeurLevel for setting level of pre-root heuristics.
Improved performance of first-order solver.
Improved performance of SOCP solver.
Fixed bugs and issues.
Updated documentation.

COPT 8.0.0
==========
Introduced global nonconvex (MI)QCQP solver.
Added integer parameter LogLevel for configuring solver logs.
Changed the Python matrix modeling API to own implementation.

Improved performance and fixed numerous bugs.
Updated documentation and added public C++ example of facility problem.

Support for Python 2.7 and 3.6 is officially discontinued.


Major components introduced in previous releases:
Parallelized optimization solvers:
COPT MIP solver
COPT LP barrier solver
COPT LP simplex solver
COPT ExpCone solver
COPT SDP solver
COPT (MI)SOCP solver
COPT convex (MI)QP solver
COPT convex (MI)QCP solver
COPT LP/ExpCone/SDP/SOCP/QP/QCP solver with GPU-acceleration

Utilities:
COPT callback functionality
COPT multi-objective functionality
COPT IIS for infeasible problems
COPT Feas-Relax utility
COPT Sensitivity analysis
COPT Tuner

Modeling interfaces:
Object-oriented: Python, C++, C#, Java
Third-party    : Julia, AIMMS, AMPL, GAMS, PuLP, Pyomo, CVXPY
C interfaces which work with matrices and vectors

Licensing and remote services:
COPT personal license
COPT server license
COPT floating token server
COPT cluster server
COPT web license service

Supported platforms and OS:
Windows: x86
Linux  : x86 and arm64
MacOSX : x86 and arm64

About

COPT (Cardinal Optimizer) release notes and links

Resources

Stars

48 stars

Watchers

8 watching

Forks

Releases

Packages

Contributors