COPT

Initial setup

from pyoptinterface import copt

model = copt.Model()

You need to follow the instructions in Getting Started to set up the optimizer correctly.

If you want to manage the license of COPT manually, you can create a copt.Env object and pass it to the constructor of the copt.Model object, otherwise we will initialize an implicit global copt.Env object automatically and use it.

env = copt.Env()

model = copt.Model(env)

The capability of copt.Model

Supported constraints

Supported model attribute

Attribute

Get

Set

Name

ObjectiveSense

DualStatus

PrimalStatus

RawStatusString

TerminationStatus

BarrierIterations

DualObjectiveValue

NodeCount

NumberOfThreads

ObjectiveBound

ObjectiveValue

RelativeGap

Silent

SimplexIterations

SolverName

SolverVersion

SolveTimeSec

TimeLimitSec

Supported variable attribute

Attribute

Get

Set

Value

LowerBound

UpperBound

Domain

PrimalStart

Name

Supported constraint attribute

Attribute

Get

Set

Name

Primal

Dual

Solver-specific operations

Parameter

For solver-specific parameters, we provide get_raw_parameter and set_raw_parameter methods to get and set the parameters.

model = copt.Model()

# get the value of the parameter
value = model.get_raw_parameter("TimeLimit")

# set the value of the parameter
model.set_raw_parameter("TimeLimit", 10.0)

Attribute

COPT supports attribute for the model. We provide model.get_raw_attribute(name:str) to get the value of attribute.

Information

COPT provides information for the model components. We provide methods to access the value of information.

  • Information of variable: model.get_variable_info(variable, name: str)

  • Information of constraint: model.get_constraint_info(constraint, name: str)

We also provide copt.COPT to contain all the constants in coptpy.COPT.

For number of variables (columns) in the problem:

cols = model.get_raw_attribute(copt.COPT.Attr.Cols)

For reduced cost of a variable:

rc = model.get_variable_info(variable, copt.COPT.Info.RedCost)

For upper bound of a constraint:

ub = model.get_constraint_info(constraint, copt.COPT.Info.UB)