属性

属性类常数包括优化模型相关和求解结果相关两类属性。本章节将介绍杉数求解器COPT提供的属性常数及其含义。章节内容构成如下:

优化模型相关属性

优化模型相关属性提供模型构成和描述的相关信息。

表 14 优化模型相关属性总览

属性名

类型

属性含义

Cols

整数属性

变量(系数矩阵列)的个数

Bins

整数属性

二进制变量(列)的个数

Ints

整数属性

整数变量(列)的个数

PSDCols

整数属性

半定变量的个数

Rows

整数属性

约束(系数矩阵行)的个数

Indicators

整数属性

Indicator约束的个数

Soss

整数属性

SOS约束的个数

Cones

整数属性

二阶锥约束的个数

ExpCones

整数属性

指数锥约束的个数

AffineCones

整数属性

仿射锥约束的个数

QConstrs

整数属性

二次约束的个数

PSDConstrs

整数属性

半定约束的个数

LMIConstrs

整数属性

LMI (Linear Matrix Inequalities,线性矩阵不等式)约束的个数

NLConstrs

整数属性

模型中非线性表达式约束的数目

Elems

整数属性

系数矩阵中非零元素个数

QElems

整数属性

二次目标函数中非零二次项个数

PSDElems

整数属性

目标函数中半定项个数

NLElems

整数属性

模型中非线性表达式目标项的数目

SymMats

整数属性

模型中对称矩阵的个数

MultiObjs

整数属性

多目标模型中目标函数的数目

ObjSense

整数属性

优化方向

ObjConst

浮点数属性

目标函数的常数部分

HasQObj

整数属性

模型的目标函数是否包含二次项

HasPSDObj

整数属性

模型的目标函数是否包含半定项

HasNLObj

整数属性

模型的目标函数是否包含非线性项

IsMIP

整数属性

模型是否为整数规划模型

MinElem

浮点数属性

线性约束系数矩阵中非零元素绝对值的最小值

MaxElem

浮点数属性

线性约束系数矩阵中非零元素绝对值的最大值

MinBound

浮点数属性

变量非零边界绝对值的最小值

MaxBound

浮点数属性

变量非零边界绝对值的最大值

MinRHS

浮点数属性

线性约束非零边界(右端项)绝对值的最小值

MaxRHS

浮点数属性

线性约束非零边界(右端项)绝对值的最大值

MinCost

浮点数属性

线性目标函数中非零系数绝对值的最小值

MaxCost

浮点数属性

线性目标函数中非零系数绝对值的最大值

MinQElem

浮点数属性

二次约束中非零二次项系数绝对值的最小值

MaxQElem

浮点数属性

二次约束中非零二次项系数绝对值的最大值

MinQLElem

浮点数属性

二次约束中非零线性项系数绝对值的最小值

MaxQLElem

浮点数属性

二次约束中非零线性项系数绝对值的最大值

MinQRHS

浮点数属性

二次约束非零右端项绝对值的最小值

MaxQRHS

浮点数属性

二次约束非零右端项绝对值的最大值

MinQCost

浮点数属性

二次目标函数中非零系数绝对值的最小值

MaxQCost

浮点数属性

二次目标函数中非零系数绝对值的最大值

注意: Double这个词的准确翻译应是双精度浮点数。表格中和下文为了简便,称之为浮点数。

  • Cols

    整数属性。

    变量(系数矩阵列)的个数。

  • Bins

    整数属性。

    二进制变量(列)的个数。

  • Ints

    整数属性。

    整数变量(列)的个数。

  • PSDCols

    整数属性。

    半定变量的个数。

  • Rows

    整数属性。

    约束(系数矩阵行)的个数。

  • Indicators

    整数属性。

    Indicator约束的个数。

  • Soss

    整数属性。

    SOS约束的个数。

  • Cones

    整数属性。

    二阶锥约束的个数。

  • ExpCones

    整数属性。

    指数锥约束的个数。

  • AffineCones

    整数属性。

    仿射锥约束的个数。

  • QConstrs

    整数属性。

    二次约束的个数。

  • PSDConstrs

    整数属性。

    半定约束的个数。

  • LMIConstrs

    整数属性。

    LMI (Linear Matrix Inequalities,线性矩阵不等式)约束的个数。

  • NLConstrs

    整数属性。

    模型中非线性表达式约束的数目。

  • Elems

    整数属性。

    系数矩阵中非零元素个数。

  • QElems

    整数属性。

    二次目标函数中非零二次项个数。

  • PSDElems

    整数属性。

    目标函数中半定项个数。

  • NLElems

    整数属性。

    模型中非线性表达式目标项的数目。

  • SymMats

    整数属性。

    模型中对称矩阵的个数。

  • MultiObjs

    整数属性。

    多目标模型中目标函数的数目。

  • ObjSense

    整数属性。

    优化方向。

  • ObjConst

    浮点数属性。

    目标函数的常数部分。

  • HasQObj

    整数属性。

    模型的目标函数是否包含二次项。

  • HasPSDObj

    整数属性。

    模型的目标函数是否包含半定项。

  • HasNLObj

    整数属性。

    模型的目标函数是否包含非线性项。

  • IsMIP

    整数属性。

    模型是否为整数规划模型。

  • MinElem

    浮点数属性。

    线性约束系数矩阵中非零元素绝对值的最小值。

  • MaxElem

    浮点数属性。

    线性约束系数矩阵中非零元素绝对值的最大值。

  • MinBound

    浮点数属性。

    变量非零边界绝对值的最小值。

    取值为零的边界和无穷边界不参与统计。当边界绝对值达到求解器采用的 无穷边界值时,该边界将被视为无穷边界;该值默认为 1e30

  • MaxBound

    浮点数属性。

    变量非零边界绝对值的最大值。

    详细说明请参见 MinBound

  • MinRHS

    浮点数属性。

    线性约束非零边界(右端项)绝对值的最小值。

    在 COPT 中,线性约束通过下界和上界定义,而不是通过单一右端项定义, 因此统计时会同时考虑两个边界,范围约束会贡献两个数值;而具有单一 约束方向的约束仅计入其有限边界。取值为零的边界和无穷边界不参与统计。

  • MaxRHS

    浮点数属性。

    线性约束非零边界(右端项)绝对值的最大值。

    详细说明请参见 MinRHS

  • MinCost

    浮点数属性。

    线性目标函数中非零系数绝对值的最小值。

  • MaxCost

    浮点数属性。

    线性目标函数中非零系数绝对值的最大值。

  • MinQElem

    浮点数属性。

    二次约束中非零二次项系数绝对值的最小值。

    该属性用于描述二次约束。对于二次目标函数,其非零二次项个数由 QElems 统计,相关系数范围请参见 MinQCostMaxQCost

  • MaxQElem

    浮点数属性。

    二次约束中非零二次项系数绝对值的最大值。

    详细说明请参见 MinQElem

  • MinQLElem

    浮点数属性。

    二次约束中非零线性项系数绝对值的最小值。

  • MaxQLElem

    浮点数属性。

    二次约束中非零线性项系数绝对值的最大值。

  • MinQRHS

    浮点数属性。

    二次约束非零右端项绝对值的最小值。

    与线性约束不同,二次约束由单一右端项和约束方向共同定义。 取值为零的右端项和无穷右端项不参与统计。

  • MaxQRHS

    浮点数属性。

    二次约束非零右端项绝对值的最大值。

    详细说明请参见 MinQRHS

  • MinQCost

    浮点数属性。

    二次目标函数中非零系数绝对值的最小值。

    相关系数按照传入模型时的数值报告,不额外乘以任何因子。

  • MaxQCost

    浮点数属性。

    二次目标函数中非零系数绝对值的最大值。

    详细说明请参见 MinQCost

注意

MinElemMaxQCost 的属性描述模型最近一次载入求解器时的状态。 由于模型修改操作采用缓冲机制,在模型首次载入求解器之前,这些属性均返回 0.0;此后如对模型进行修改但尚未重新载入,则返回修改前的属性值。 因此,查询这些属性前应先将模型载入求解器,例如对模型进行求解或更新。

当模型中不存在相应类型的元素时,相关属性同样返回 0.0。例如,对于既不含 二次约束、也不含二次目标函数的模型,所有上述二次相关属性均返回 0.0。 可通过 QConstrsHasQObj 判断模型是否包含相应的二次结构。

这些属性基于原始模型计算。因此,其取值通常不同于求解日志中输出的系数范围; 日志中的系数范围对应经过预处理、缩放和重构后实际传递给求解器的模型。

求解结果相关属性

求解结果相关属性提供模型求解结果构成和描述的相关信息。

表 15 求解结果相关属性总览

属性名

类型

属性含义

Status

整数属性

优化问题的求解状态

LpStatus

整数属性

(不推荐使用)连续凸优化问题的求解状态

MipStatus

整数属性

(不推荐使用)整数规划或非凸优化问题的求解状态

HasSol

整数属性

是否可以提供优化问题的解值

HasLpSol

整数属性

(不推荐使用)是否可以提供线性规划的解值

HasMipSol

整数属性

(不推荐使用)是否存在整数解

HasBasis

整数属性

是否可以提供线性规划的基

HasSensitivity

整数属性

是否存在线性规划的灵敏度分析结果

HasDualFarkas

整数属性

当线性规划问题无可行解时,是否返回对偶Farkas(也叫做对偶极射线)

HasPrimalRay

整数属性

当线性规划问题无界时,是否返回主元射线(也叫做极射线)

HasFeasRelaxSol

整数属性

是否存在可行化松弛结果

HasIIS

整数属性

是否存在IIS

IsMinIIS

整数属性

计算出的IIS是否为极小

IISCols

整数属性

组成IIS的变量边界的数目

IISRows

整数属性

组成IIS的约束的数目

IISSOSs

整数属性

组成IIS的SOS约束的数目

IISIndicators

整数属性

组成IIS的Indicator约束的数目

SimplexIter

整数属性

单纯形法迭代循环数

BarrierIter

整数属性

内点法迭代循环数

PDLPIter

整数属性

一阶算法(PDLP)迭代循环数

NodeCnt

整数属性

分支定界搜索的节点数

PoolSols

整数属性

解池中的解的数目

TuneResults

整数属性

参数调优结果的数目

ObjVal

浮点数属性

当前最优目标函数值

ObjBound

浮点数属性

当前最优下界(最小化问题)或上界(最大化问题)

LpObjVal

浮点数属性

(不推荐使用)凸连续优化问题的最优目标函数值

BestObj

浮点数属性

(不推荐使用)整数规划求解结束时当前最优目标函数值

BestBnd

浮点数属性

(不推荐使用)整数规划求解结束时当前最优下界(最小化问题)或上界(最大化问题)

BestGap

浮点数属性

整数规划当前最优相对间隙

FeasRelaxObj

浮点数属性

可行化松弛值

SolvingTime

浮点数属性

求解所使用的时间(秒)

MemPeak

浮点数属性

优化求解的内存使用峰值(MB)

  • LpStatus

    整数属性。

    连续凸优化问题的求解状态。

    不推荐使用,建议改用 Status

  • MipStatus

    整数属性。

    整数规划或非凸优化问题的求解状态。

    不推荐使用,建议改用 Status

  • HasSol

    整数属性。

    是否可以提供优化问题的解值。

  • HasLpSol

    整数属性。

    是否可以提供线性规划的解值。

    不推荐使用,建议改用 HasSol

  • HasMipSol

    整数属性。

    是否存在整数解。

    不推荐使用,建议改用 HasSol

  • HasBasis

    整数属性。

    是否可以提供线性规划的基。

  • HasSensitivity

    整数属性。

    是否存在线性规划的灵敏度分析结果。

  • HasDualFarkas

    整数属性。

    当线性规划问题无可行解时,是否返回对偶Farkas(也叫做对偶极射线)。

  • HasPrimalRay

    整数属性。

    当线性规划问题无界时,是否返回主元射线(也叫做极射线)。

  • HasFeasRelaxSol

    整数属性。

    是否存在可行化松弛结果。

  • HasIIS

    整数属性。

    是否存在IIS。

  • IsMinIIS

    整数属性。

    计算出的IIS是否为极小。

  • IISCols

    整数属性。

    组成IIS的变量边界的数目。

  • IISRows

    整数属性。

    组成IIS的约束的数目。

  • IISSOSs

    整数属性。

    组成IIS的SOS约束的数目。

  • IISIndicators

    整数属性。

    组成IIS的Indicator约束的数目。

  • SimplexIter

    整数属性。

    单纯形法迭代循环数。

  • BarrierIter

    整数属性。

    内点法迭代循环数。

  • PDLPIter

    整数属性。

    一阶算法(PDLP)迭代循环数。

  • NodeCnt

    整数属性。

    分支定界搜索的节点数。

  • PoolSols

    整数属性。

    解池中的解的数目。

  • TuneResults

    整数属性。

    参数调优结果的数目。

  • ObjVal

    浮点数属性。

    当前最优目标函数值。当 StatusOPTIMAL 时,该值即为最优目标函数值。

  • ObjBound

    浮点数属性。

    当前最优下界(最小化问题)或上界(最大化问题)。

  • LpObjVal

    浮点数属性。

    凸连续优化问题的最优目标函数值。

    不推荐使用,建议改用 ObjVal

  • BestObj

    浮点数属性。

    整数规划求解结束时当前最优目标函数值。

    不推荐使用,建议改用 ObjVal

  • BestBnd

    浮点数属性。

    整数规划求解结束时当前最优下界(最小化问题)或上界(最大化问题)。

    不推荐使用,建议改用 ObjBound

  • BestGap

    浮点数属性。

    整数规划当前最优相对间隙。

  • FeasRelaxObj

    浮点数属性。

    可行化松弛值。

  • SolvingTime

    浮点数属性。

    求解所使用的时间(秒)。

  • MemPeak

    浮点数属性。

    优化求解的内存使用峰值(MB)。

注意

对于上文标注 (不推荐使用) 的属性,建议统一使用 StatusHasSolObjValObjBound 获取所有优化模型(包括线性规划、整数规划以及凸/非凸优化问题)的求解状态、判断是否存在解以及获取最优目标函数值。

属性获取方式

在不同的编程接口中,获取属性的方式略有差别,具体请参考: