Introduction to Cardinal Optimizer
Cardinal Optimizer is a high-performance mathematical programming solver for efficiently solving large-scale optimization problem. This documentation provides basic introduction to the Cardinal Optimizer, including:
We suggest that all users to read the first two sections carefully before using the Cardinal Optimizer.
Once the installation and license setup are done, we recommend users who
want to do a quick experiment on the Cardinal Optimizer to read the
COPT Interactive Shell chapter for details.
Users who already have preferred programming language can select from available
Application Programming Interfaces (APIs)
, including:
Overview
Cardinal Optimizer supports solving Linear Programming (LP) problems, Second-Order-Cone Programming (SOCP) problems, Convex Quadratic Programming (QP) problems, Convex Quadratically Constrained Programming (QCP) problems, Semidefinite Programming problems (SDP) and Mixed Integer Programming (MIP) problems, which include Mixed Integer Linear Programming (MILP), Mixed Integer Second-Order-Cone Programming (MISOCP), Mixed Integer Convex Quadratic Programming (MIQP), Mixed Integer Convex Quadratically Constrained Programming (MIQCP).
We will support more problem types in the future. The supported problem types and available algorithms are summarized in Table 22
Problem type |
Available algorithms |
Linear Programming (LP) |
Dual simplex; Barrier; First-Order Method |
Second-Order-Cone Programming (SOCP) |
Barrier |
Exponential Cone Programming (ExpCone) |
Barrier |
Convex Quadratic Programming (QP) |
Barrier |
Convex Quadratically Constrained Programming (QCP) |
Barrier |
Semidefinite Programming (SDP) |
Barrier; ADMM |
Mixed Integer Linear Programming (MILP) |
Branch-and-Cut |
Mixed Integer Second-Order-Cone Programming (MISOCP) |
Branch-and-Cut |
Mixed Integer Convex Quadratic Programming (MIQP) |
Branch-and-Cut |
Mixed Integer Convex Quadratically Constrained Programming (MIQCP) |
Branch-and-Cut |
Cardinal Optimizer supports all major 64-bit operating systems including Windows, Linux (including ARM64 platform) and MacOS (including ARM64 platform), and currently provides programming interfaces shown below:
C interface
C++ interface
C# interface
Java interface
Python interface
AMPL interface
AIMMS interface
Pyomo interface
PuLP interface
CVXPY interface
GAMS interface
Julia interface
We are going to develop more programming interfaces to suit various needs of users and situations.
Licenses
Now, we provides 4 types of license, which are Personal License, Server License, Floating License, and Cluster License. They are listed in table below (Table 2) :
License Type |
Detail |
---|---|
Personal License |
It is tied to personal computers by username. Only approved user can run COPT on his devices. No limitations on CPU cores and threads. |
Server License |
It is tied to a single server computer by its hardware info (MAC and CPUID). An arbitrary number of users and programs can run COPT simultaneously. No limitations on CPU cores as well. |
Floating License |
It is tied to a server machine running COPT floating token service, by its hardware info (MAC and CPUID). Any COPT floating client connected to server can borrow and use the floating license, thus run one process for optimization jobs simultaneously. The token number is max number of clients who can use floating licenses simultaneously. |
Cluster License |
It is tied to a server machine running COPT compute cluster service, by its hardware info (MAC and CPUID). Any COPT compute cluster client connected to server can offload optimization computations. That is, clients are allowed to do modelling locally, execute optimization jobs remotely, and then obtain results interactively. Although server can have multiple clients connected, each connection must run optimization jobs sequentially. No limitations on CPU cores. |
How to Cite
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, 2023.
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=2023
}
Contact Information
Cardinal Optimizer is developed by Cardinal Operations, users who want any further help can contact us using information provided in Table 4
Type |
Information |
Description |
Website |
||
Phone |
400-680-5680 |
|
business support |
||
technical support |