C++ API 参考手册
杉数优化求解器提供了 C++ API 库函数,适用于基于 COPT 的 C++ 应用程序。 本章节描述了 C++ 方面的常量、类、参数、属性。
常量
所有的 C++ 常量都和 C API 里描述的一样。请参考 C API参考手册:常量章节 。
属性
所有的 C++ 属性都和 C API 里描述的一样。请参考 C API参考手册:属性章节 。
在C++ API中,通过指定属性名称获取属性取值。提供获取属性取值的2个函数如下,具体请参考 C++ Model类 。
Model::GetIntAttr()
:获取整数属性取值Model::GetDblAttr()
:获取浮点型属性取值
信息
所有的 C++ 信息都和 C API 里描述的一样。请参考 C API参考手册:信息章节 。
在C++ API中,通过指定信息名称获取或设置信息取值。提供函数如下,具体请参考
C++ Model类 。变量或约束的信息也可以通过各自类提供 Get()/Set()
函数获取或修改。
Model::Get()
:获取与变量或约束相关的信息取值。Model::Set()
:设置与变量或约束相关的信息取值。
参数
所有的 C++ 参数都和 C API 里描述的一样。请参考 C API参考手册:参数章节 。
在C++ API中,通过指定参数名称获取和设置参数取值。提供的函数如下,具体请参考 C++ Model类 。
获取指定参数的详细信息(当前值/最大值/最小值):
Model::GetParamInfo()
获取指定整数型/浮点型参数当前取值:
Model::GetIntParam()
/Model::GetDblParam()
设置指定整数型/浮点型参数值:
Model::SetIntParam()
/Model::SetDblParam()
C++优化建模类
本章节详细描述杉数优化求解器 C++ 接口的优化建模类,方便用户在快速构建复杂 场景下的优化模型时对其功能和使用的查询。
Envr类
创建求解环境对象是每个求解过程中必不可少的第一步。而每个求解模型都和一个 Envr 类关联。用户 必须首先创建一个求解环境,才能在此基础上创建一个或者多个求解模型。
EnvrConfig类
如果用户通过连接远程服务的方式启动杉数优化求解器,可以创建环境配置类来设置COPT作为客户端的配置。
Model类
Model类是杉数优化求解器模型相关操作的封装,提供了以下成员方法:
- Model::AddAffineCone()
- Model::AddAffineCone()
- Model::AddAffineCone()
- Model::AddAffineCones()
- Model::AddAffineCones()
- Model::AddCone()
- Model::AddCone()
- Model::AddCone()
- Model::AddCone()
- Model::AddCones()
- Model::AddConstr()
- Model::AddConstr()
- Model::AddConstr()
- Model::AddConstr()
- Model::AddConstrs()
- Model::AddConstrs()
- Model::AddConstrs()
- Model::AddConstrs()
- Model::AddConstrs()
- Model::AddDenseMat()
- Model::AddDenseMat()
- Model::AddDiagMat()
- Model::AddDiagMat()
- Model::AddDiagMat()
- Model::AddDiagMat()
- Model::AddExpCone()
- Model::AddExpCone()
- Model::AddExpCone()
- Model::AddExpCone()
- Model::AddExpCones()
- Model::AddEyeMat()
- Model::AddGenConstrIndicator()
- Model::AddGenConstrIndicator()
- Model::AddGenConstrIndicator()
- Model::AddGenConstrIndicators()
- Model::AddGenConstrIndicators()
- Model::AddGenConstrIndicators()
- Model::AddLazyConstr()
- Model::AddLazyConstr()
- Model::AddLazyConstr()
- Model::AddLazyConstrs()
- Model::AddLmiConstr()
- Model::AddMConstr()
- Model::AddMConstr()
- Model::AddMPsdConstr()
- Model::AddMPsdConstr()
- Model::AddMQConstr()
- Model::AddMQConstr()
- Model::AddMVar()
- Model::AddMVar()
- Model::AddMVar()
- Model::AddOnesMat()
- Model::AddPsdConstr()
- Model::AddPsdConstr()
- Model::AddPsdConstr()
- Model::AddPsdConstr()
- Model::AddPsdVar()
- Model::AddPsdVars()
- Model::AddPsdVars()
- Model::AddQConstr()
- Model::AddQConstr()
- Model::AddQConstr()
- Model::AddSos()
- Model::AddSos()
- Model::AddSparseMat()
- Model::AddSymMat()
- Model::AddUserCut()
- Model::AddUserCut()
- Model::AddUserCut()
- Model::AddUserCuts()
- Model::AddVar()
- Model::AddVar()
- Model::AddVars()
- Model::AddVars()
- Model::AddVars()
- Model::AddVars()
- Model::AddVars()
- Model::AddVars()
- Model::AddVars()
- Model::Clear()
- Model::Clone()
- Model::ComputeIIS()
- Model::DelPsdObj()
- Model::DelQuadObj()
- Model::FeasRelax()
- Model::FeasRelax()
- Model::Get()
- Model::Get()
- Model::Get()
- Model::Get()
- Model::GetAffineCone()
- Model::GetAffineConeBuilder()
- Model::GetAffineConeBuilders()
- Model::GetAffineConeBuilders()
- Model::GetAffineConeByName()
- Model::GetAffineCones()
- Model::GetCoeff()
- Model::GetCol()
- Model::GetColBasis()
- Model::GetCone()
- Model::GetConeBuilders()
- Model::GetConeBuilders()
- Model::GetCones()
- Model::GetConstr()
- Model::GetConstrBuilder()
- Model::GetConstrBuilders()
- Model::GetConstrByName()
- Model::GetConstrLowerIIS()
- Model::GetConstrs()
- Model::GetConstrUpperIIS()
- Model::GetDblAttr()
- Model::GetDblParam()
- Model::GetExpCone()
- Model::GetExpConeBuilders()
- Model::GetExpConeBuilders()
- Model::GetExpCones()
- Model::GetGenConstr()
- Model::GetGenConstrByName()
- Model::GetGenConstrIndicator()
- Model::GetGenConstrIndicators()
- Model::GetGenConstrs()
- Model::GetIndicatorIIS()
- Model::GetIntAttr()
- Model::GetIntParam()
- Model::GetLmiCoeff()
- Model::GetLmiConstr()
- Model::GetLmiConstrByName()
- Model::GetLmiConstrs()
- Model::GetLmiRhs()
- Model::GetLmiRow()
- Model::GetLpSolution()
- Model::GetObjective()
- Model::GetParamAttrType()
- Model::GetParamInfo()
- Model::GetParamInfo()
- Model::GetPoolObjVal()
- Model::GetPoolSolution()
- Model::GetPsdCoeff()
- Model::GetPsdConstr()
- Model::GetPsdConstrBuilder()
- Model::GetPsdConstrBuilders()
- Model::GetPsdConstrByName()
- Model::GetPsdConstrs()
- Model::GetPsdObjective()
- Model::GetPsdRow()
- Model::GetPsdRow()
- Model::GetPsdVar()
- Model::GetPsdVarByName()
- Model::GetPsdVars()
- Model::GetQConstr()
- Model::GetQConstrBuilder()
- Model::GetQConstrBuilders()
- Model::GetQConstrByName()
- Model::GetQConstrs()
- Model::GetQuadObjective()
- Model::GetQuadRow()
- Model::GetQuadRow()
- Model::GetRow()
- Model::GetRowBasis()
- Model::GetSolution()
- Model::GetSos()
- Model::GetSosBuilders()
- Model::GetSosBuilders()
- Model::GetSOSIIS()
- Model::GetSoss()
- Model::GetSymMat()
- Model::GetVar()
- Model::GetVarByName()
- Model::GetVarLowerIIS()
- Model::GetVars()
- Model::GetVarUpperIIS()
- Model::Interrupt()
- Model::LoadMipStart()
- Model::LoadTuneParam()
- Model::Read()
- Model::ReadBasis()
- Model::ReadBin()
- Model::ReadCbf()
- Model::ReadLp()
- Model::ReadMps()
- Model::ReadMst()
- Model::ReadParam()
- Model::ReadSdpa()
- Model::ReadSol()
- Model::ReadTune()
- Model::Remove()
- Model::Remove()
- Model::Remove()
- Model::Remove()
- Model::Remove()
- Model::Remove()
- Model::Remove()
- Model::Remove()
- Model::Remove()
- Model::Remove()
- Model::Remove()
- Model::Reset()
- Model::ResetAll()
- Model::ResetParam()
- Model::Set()
- Model::Set()
- Model::Set()
- Model::SetBasis()
- Model::SetCallback()
- Model::SetCoeff()
- Model::SetCoeffs()
- Model::SetDblParam()
- Model::SetIntParam()
- Model::SetLmiCoeff()
- Model::SetLmiRhs()
- Model::SetLpSolution()
- Model::SetMipStart()
- Model::SetMipStart()
- Model::SetMipStart()
- Model::SetNames()
- Model::SetNames()
- Model::SetNames()
- Model::SetNames()
- Model::SetNames()
- Model::SetNames()
- Model::SetNames()
- Model::SetNames()
- Model::SetObjConst()
- Model::SetObjective()
- Model::SetObjSense()
- Model::SetPsdCoeff()
- Model::SetPsdObjective()
- Model::SetQuadObjective()
- Model::SetSlackBasis()
- Model::SetSolverLogCallback()
- Model::SetSolverLogFile()
- Model::Solve()
- Model::SolveLp()
- Model::Tune()
- Model::Write()
- Model::WriteBasis()
- Model::WriteBin()
- Model::WriteIIS()
- Model::WriteLp()
- Model::WriteMps()
- Model::WriteMpsStr()
- Model::WriteMst()
- Model::WriteParam()
- Model::WritePoolSol()
- Model::WriteRelax()
- Model::WriteSol()
- Model::WriteTuneParam()
Var类
Var类是杉数优化求解器变量的相关操作的封装,提供了以下成员方法:
VarArray类
为方便用户对一组 Var类 对象进行操作,杉数优化求解器的 C++ 接口设计了VarArray类, 提供了以下成员方法:
Expr类
Expr类是杉数求解器中用于构建线性表达式时变量的相关组合操作,提供了以下成员方法:
- Expr::Expr()
- Expr::Expr()
- Expr::AddConstant()
- Expr::AddExpr()
- Expr::AddTerm()
- Expr::AddTerms()
- Expr::Clone()
- Expr::Evaluate()
- Expr::GetCoeff()
- Expr::GetConstant()
- Expr::GetVar()
- Expr::operator*=()
- Expr::operator*()
- Expr::operator*()
- Expr::operator*()
- Expr::operator+=()
- Expr::operator+()
- Expr::operator-=()
- Expr::operator-()
- Expr::Remove()
- Expr::Remove()
- Expr::Reserve()
- Expr::SetCoeff()
- Expr::SetConstant()
- Expr::Size()
Constraint类
Constraint类是杉数求解器线性约束的相关操作的封装,提供了以下成员方法:
ConstrArray类
为方便用户对一组 C++ Constraint类 对象进行操作, 杉数求解器的 C++ 接口设计了ConstrArray类,提供了以下成员方法:
ConstrBuilder类
ConstrBuilder类是杉数优化求解器中构建线性约束时的构建器的封装,提供了以下成员方法:
ConstrBuilderArray类
为方便用户对一组 C++ ConstrBuilder类 对象进行操作,杉数优化求解器的 C++ 接口设计了ConstrBuilderArray类, 提供了以下成员方法:
Column类
为了方便用户采用按列建模的方式,杉数优化求解器的 C++ 接口设计了Column类,提供了以下成员方法:
ColumnArray类
为方便用户对一组 C++ Column类 对象进行操作,杉数优化求解器的 C++ 接口设计了ColumnArray类, 提供了以下成员方法:
Sos类
SOS类是杉数求解器的SOS约束的相关操作的封装,目前提供了以下成员方法:
关于SOS约束的介绍请参考 特殊约束:SOS约束 章节 。
SosArray类
为方便用户对一组 C++ Sos类 对象进行操作,杉数求解器的 C++ 接口设计了 SosArray
类,
提供了以下成员方法:
SosBuilder类
SOSBuilder类是杉数优化求解器中构建SOS约束的构建器的封装,提供了以下成员方法:
关于SOS约束的介绍请参考 特殊约束:SOS约束 章节 。
SosBuilderArray类
为方便用户对一组 C++ SosBuilder类 对象进行操作,杉数优化求解器的 C++ 接口设计了SosBuilderArray类,提供了以下成员方法:
GenConstr类
GenConstr类是杉数优化求解器的Indicator约束的相关操作的封装,提供了以下成员方法:
关于Indicator约束的介绍请参考 特殊约束:Indicator约束 章节 。
GenConstrArray类
为方便用户对一组 C++ GenConstr类 对象进行操作,杉数优化求解器的 C++ 接口设计了 GenConstrArray类,提供了以下成员方法:
GenConstrBuilder类
GenConstrBuilder类是杉数优化求解器中构建Indicator约束时的构建器的封装,提供了以下成员方法:
关于Indicator约束的介绍请参考 特殊约束:Indicator约束 章节 。
GenConstrBuilderArray类
为方便用户对一组 C++ GenConstrBuilder类 对象进行操作,杉数优化求解器的 C++ 接口 设计了GenConstrBuilderArray类,提供了以下成员方法:
Cone类
Cone类是杉数求解器的二阶锥约束的相关操作的封装,目前提供了以下成员方法:
ConeArray类
为方便用户对一组 C++ Cone类 对象进行操作,杉数求解器的 C++ 接口设计了ConeArray类, 提供了以下成员方法:
ConeBuilder类
ConeBuilder类是杉数优化求解器中构建二阶锥约束的构建器的封装,提供了以下成员方法:
ConeBuilderArray类
为方便用户对一组 C++ ConeBuilder类 对象进行操作,杉数优化求解器的 C++ 接口设计了ConeBuilderArray类,提供了以下成员方法:
ExpCone类
ExpCone类是杉数求解器的指数锥约束的相关操作的封装,目前提供了以下成员方法:
ExpConeArray类
为方便用户对一组 C++ ExpCone类 对象进行操作,杉数求解器的 C++ 接口设计了ExpConeArray类, 提供了以下成员方法:
ExpConeBuilder类
ExpConeBuilder类是杉数优化求解器中构建指数锥约束的构建器的封装,提供了以下成员方法:
ExpConeBuilderArray类
为方便用户对一组 C++ ExpConeBuilder类 对象进行操作,杉数优化求解器的 C++ 接口设计了ExpConeBuilderArray类,提供了以下成员方法:
AffineCone类
AffineCone类是杉数求解器的仿射锥约束的相关操作的封装,目前提供了以下成员方法:
AffineConeArray类
为方便用户对一组 C++ AffineCone类 对象进行操作,杉数求解器的 C++ 接口设计了AffineConeArray类, 提供了以下成员方法:
AffineConeBuilder类
AffineConeBuilder类是杉数优化求解器中构建仿射锥约束的构建器的封装,提供了以下成员方法:
AffineConeBuilderArray类
为方便用户对一组 C++ AffineConeBuilder类 对象进行操作,杉数优化求解器的 C++ 接口设计了AffineConeBuilderArray类,提供了以下成员方法:
QuadExpr类
COPT二次表达式包括一个线性表达式,一些二次项相关的变量和对应系数。QuadExpr类是杉数求解器中用于构建 二次表达式时对变量的相关组合操作,提供了以下成员方法:
- QuadExpr::QuadExpr()
- QuadExpr::QuadExpr()
- QuadExpr::QuadExpr()
- QuadExpr::QuadExpr()
- QuadExpr::QuadExpr()
- QuadExpr::AddConstant()
- QuadExpr::AddLinExpr()
- QuadExpr::AddQuadExpr()
- QuadExpr::AddTerm()
- QuadExpr::AddTerm()
- QuadExpr::AddTerms()
- QuadExpr::AddTerms()
- QuadExpr::Clone()
- QuadExpr::Evaluate()
- QuadExpr::GetCoeff()
- QuadExpr::GetConstant()
- QuadExpr::GetLinExpr()
- QuadExpr::GetVar1()
- QuadExpr::GetVar2()
- QuadExpr::operator*=()
- QuadExpr::operator*()
- QuadExpr::operator+=()
- QuadExpr::operator+()
- QuadExpr::operator-=()
- QuadExpr::operator-()
- QuadExpr::Remove()
- QuadExpr::Remove()
- QuadExpr::Reserve()
- QuadExpr::SetCoeff()
- QuadExpr::SetConstant()
- QuadExpr::Size()
QConstraint类
QConstraint类是杉数求解器对二次约束的相关操作的封装,提供了以下成员方法:
QConstrArray类
为方便用户对一组 C++ QConstraint类 对象进行操作,杉数求解器的 C++ 接口设计了QConstrArray类, 提供了以下成员方法:
QConstrBuilder类
QConstrBuilder类是杉数优化求解器中对构建二次约束的构建器的封装,提供了以下成员方法:
QConstrBuilderArray类
为方便用户对一组 C++ QConstrBuilder类 对象进行操作,杉数优化求解器的 C++ 接口设计了QConstrBuilderArray类,提供了以下成员方法:
PsdVar类
PsdVar类是杉数优化求解器对半定变量的相关操作的封装,提供了以下成员方法:
PsdVarArray类
为方便用户对一组 PsdVar类 对象进行操作,杉数优化求解器的 C++ 接口设计了PsdVarArray类, 提供了以下成员方法:
PsdExpr类
COPT半定表达式包括一个线性表达式,一些半定变量和对应的系数矩阵。PsdExpr类是杉数求解器中用于构建 半定表达式时对半定变量的相关组合操作,提供了以下成员方法:
- PsdExpr::PsdExpr()
- PsdExpr::PsdExpr()
- PsdExpr::PsdExpr()
- PsdExpr::PsdExpr()
- PsdExpr::PsdExpr()
- PsdExpr::PsdExpr()
- PsdExpr::AddConstant()
- PsdExpr::AddLinExpr()
- PsdExpr::AddMExpr()
- PsdExpr::AddPsdExpr()
- PsdExpr::AddTerm()
- PsdExpr::AddTerm()
- PsdExpr::AddTerm()
- PsdExpr::AddTerms()
- PsdExpr::AddTerms()
- PsdExpr::Clone()
- PsdExpr::Evaluate()
- PsdExpr::GetCoeff()
- PsdExpr::GetConstant()
- PsdExpr::GetLinExpr()
- PsdExpr::GetPsdVar()
- PsdExpr::operator*=()
- PsdExpr::operator*()
- PsdExpr::operator+=()
- PsdExpr::operator+()
- PsdExpr::operator-=()
- PsdExpr::operator-()
- PsdExpr::Remove()
- PsdExpr::Remove()
- PsdExpr::Remove()
- PsdExpr::Reserve()
- PsdExpr::SetCoeff()
- PsdExpr::SetConstant()
- PsdExpr::Size()
PsdConstraint类
PsdConstraint类是杉数求解器对半定约束的相关操作的封装,提供了以下成员方法:
PsdConstrArray类
为方便用户对一组 C++ PsdConstraint类 对象进行操作, 杉数求解器的 C++ 接口设计了PsdConstrArray类, 提供了以下成员方法:
PsdConstrBuilder类
PsdConstrBuilder类是杉数优化求解器中对构建半定约束的构建器的封装,提供了以下成员方法:
PsdConstrBuilderArray类
为方便用户对一组 C++ PsdConstrBuilder类 对象进行操作,杉数优化求解器的 C++ 接口设计了PsdConstrBuilderArray类,提供了以下成员方法:
LmiConstraint类
LmiConstraint类是杉数求解器对LMI约束的相关操作的封装,提供了以下成员方法:
LmiConstrArray类
为方便用户对一组 C++ LmiConstraint类 对象进行操作,杉数求解器的 C++ 接口设计了LmiConstrArray类,提供了以下成员方法:
LmiExpr类
COPT的LMI表达式包括对称矩阵和标量变量相乘。LmiExpr类是杉数求解器中用于构建 LMI表达式时对变量和对称矩阵相关组合操作,提供了以下成员方法:
- LmiExpr::LmiExpr()
- LmiExpr::LmiExpr()
- LmiExpr::LmiExpr()
- LmiExpr::LmiExpr()
- LmiExpr::LmiExpr()
- LmiExpr::AddConstant()
- LmiExpr::AddLmiExpr()
- LmiExpr::AddTerm()
- LmiExpr::AddTerm()
- LmiExpr::AddTerms()
- LmiExpr::Clone()
- LmiExpr::GetCoeff()
- LmiExpr::GetConstant()
- LmiExpr::GetVar()
- LmiExpr::operator*=()
- LmiExpr::operator*()
- LmiExpr::operator+=()
- LmiExpr::operator+()
- LmiExpr::operator-=()
- LmiExpr::operator-()
- LmiExpr::Remove()
- LmiExpr::Remove()
- LmiExpr::Reserve()
- LmiExpr::SetCoeff()
- LmiExpr::SetConstant()
- LmiExpr::Size()
SymMatrix类
对称矩阵作为半定项中的系数矩阵,常用在半定表达式,半定约束和半定目标函数中。 SymMatrix类是杉数优化求解器中对称矩阵的封装,提供了以下成员方法:
SymMatrixArray类
为方便用户对一组 C++ SymMatrix类 对象进行操作, 杉数求解器的 C++ 接口设计了SymMatrixArray类, 提供了以下成员方法:
SymMatExpr类
对称矩阵表达式对于对称矩阵的线性组合,其计算结果实际还是一个对称矩阵。 表达式的好处是可以延迟计算结果矩阵,直到设置半定约束或者半定目标函数时。 SymMatExpr类是杉数优化求解器中对称矩阵表达式的封装,提供了以下成员方法:
- SymMatExpr::SymMatExpr()
- SymMatExpr::SymMatExpr()
- SymMatExpr::AddSymMatExpr()
- SymMatExpr::AddTerm()
- SymMatExpr::AddTerms()
- SymMatExpr::Clone()
- SymMatExpr::GetCoeff()
- SymMatExpr::GetDim()
- SymMatExpr::GetSymMat()
- SymMatExpr::operator*=()
- SymMatExpr::operator*()
- SymMatExpr::operator+=()
- SymMatExpr::operator+()
- SymMatExpr::operator-=()
- SymMatExpr::operator-()
- SymMatExpr::Remove()
- SymMatExpr::Remove()
- SymMatExpr::Reserve()
- SymMatExpr::SetCoeff()
- SymMatExpr::Size()
MVar类
MVar类是COPT中用于构建多维变量的类,它支持和COPT中内置的多维数组 NdArray类 进行运算。
可以通过 Model类 的方法 addMVar
来创建。提供了以下成员方法:
- MVar::MVar()
- MVar::MVar()
- MVar::Clone()
- MVar::Diagonal()
- MVar::Expand()
- MVar::Flatten()
- MVar::Get()
- MVar::GetBasis()
- MVar::GetDim()
- MVar::GetIdx()
- MVar::GetLowerIIS()
- MVar::GetND()
- MVar::GetShape()
- MVar::GetSize()
- MVar::GetType()
- MVar::GetUpperIIS()
- MVar::Item()
- MVar::operator[]()
- MVar::operator[]()
- MVar::Pick()
- MVar::Pick()
- MVar::Repeat()
- MVar::RepeatBlock()
- MVar::Represent()
- MVar::Reshape()
- MVar::Set()
- MVar::Set()
- MVar::SetItem()
- MVar::Squeeze()
- MVar::Stack()
- MVar::Sum()
- MVar::Sum()
- MVar::Transpose()
MConstr类
MConstr类是COPT中多维线性约束的类,可以通过 Model类 的方法 addMConstr
来创建。提供了以下成员方法:
- MConstr::MConstr()
- MConstr::MConstr()
- MConstr::Clone()
- MConstr::Diagonal()
- MConstr::Expand()
- MConstr::Flatten()
- MConstr::Get()
- MConstr::GetBasis()
- MConstr::GetDim()
- MConstr::GetIdx()
- MConstr::GetLowerIIS()
- MConstr::GetND()
- MConstr::GetShape()
- MConstr::GetSize()
- MConstr::GetUpperIIS()
- MConstr::Item()
- MConstr::operator[]()
- MConstr::operator[]()
- MConstr::Pick()
- MConstr::Pick()
- MConstr::Represent()
- MConstr::Reshape()
- MConstr::Set()
- MConstr::Set()
- MConstr::SetItem()
- MConstr::Squeeze()
- MConstr::Stack()
- MConstr::Transpose()
MConstrBuilder类
MConstrBuilder类是COPT中多维线性约束的构建器,它用于生成多维线性约束并支持和内置多维数组 NdArray类 进行运算。 MConstrBuilder类对象可以通过两个对象之间的比较运算来生成,其中一个对象可以是 MVar类 对象或 MLinExpr类 对象。 提供了以下成员方法:
MExpression类
MExpression类是COPT中 Expr类 的通用版本,可以用于表示线性表达式并支持 Expr类 中的大多数方法。 另外,它支持多维数组对象,例如 MVar类 对象和 NdArray类 对象的线性组合。 提供了以下成员方法:
MLinExpr类
MLinExpr类是COPT中多维线性表达式的类。它用于构造多维线性表达式并与COPT中内置的多维数组 NdArray类 进行运算。 其中的元素为 MExpression类 类对象,可以通过对 MVar类 对象的线性组合来生成。 提供了以下成员方法:
- MLinExpr::MLinExpr()
- MLinExpr::MLinExpr()
- MLinExpr::MLinExpr()
- MLinExpr::AddConstant()
- MLinExpr::AddConstant()
- MLinExpr::AddExpr()
- MLinExpr::AddMExpr()
- MLinExpr::AddMLinExpr()
- MLinExpr::AddTerm()
- MLinExpr::AddTerms()
- MLinExpr::AddTerms()
- MLinExpr::Clear()
- MLinExpr::Clone()
- MLinExpr::Diagonal()
- MLinExpr::Expand()
- MLinExpr::Flatten()
- MLinExpr::GetDim()
- MLinExpr::GetND()
- MLinExpr::GetShape()
- MLinExpr::GetSize()
- MLinExpr::Item()
- MLinExpr::Item()
- MLinExpr::operator[]()
- MLinExpr::operator[]()
- MLinExpr::Pick()
- MLinExpr::Pick()
- MLinExpr::Repeat()
- MLinExpr::RepeatBlock()
- MLinExpr::Represent()
- MLinExpr::Reshape()
- MLinExpr::SetItem()
- MLinExpr::Squeeze()
- MLinExpr::Stack()
- MLinExpr::Stack()
- MLinExpr::Stack()
- MLinExpr::SubConstant()
- MLinExpr::Sum()
- MLinExpr::Sum()
- MLinExpr::Transpose()
MPsdExpr类
MPsdExpr类是COPT中多维半定表达式的类。它用于构造多维半定表达式并与COPT中内置的多维数组 NdArray类 进行运算。 其中的元素为 PsdExpr类 类对象或其多维线性组合。 提供了以下成员方法:
- MPsdExpr::MPsdExpr()
- MPsdExpr::MPsdExpr()
- MPsdExpr::AddConstant()
- MPsdExpr::AddConstant()
- MPsdExpr::AddLinExpr()
- MPsdExpr::AddMExpr()
- MPsdExpr::AddMLinExpr()
- MPsdExpr::AddMPsdExpr()
- MPsdExpr::AddPsdExpr()
- MPsdExpr::AddTerm()
- MPsdExpr::AddTerm()
- MPsdExpr::AddTerm()
- MPsdExpr::AddTerms()
- MPsdExpr::AddTerms()
- MPsdExpr::Clear()
- MPsdExpr::Clone()
- MPsdExpr::Diagonal()
- MPsdExpr::Expand()
- MPsdExpr::Flatten()
- MPsdExpr::GetDim()
- MPsdExpr::GetND()
- MPsdExpr::GetShape()
- MPsdExpr::GetSize()
- MPsdExpr::Item()
- MPsdExpr::Item()
- MPsdExpr::operator[]()
- MPsdExpr::operator[]()
- MPsdExpr::Pick()
- MPsdExpr::Pick()
- MPsdExpr::Repeat()
- MPsdExpr::RepeatBlock()
- MPsdExpr::Represent()
- MPsdExpr::Reshape()
- MPsdExpr::SetItem()
- MPsdExpr::Squeeze()
- MPsdExpr::Stack()
- MPsdExpr::Stack()
- MPsdExpr::Stack()
- MPsdExpr::Stack()
- MPsdExpr::SubConstant()
- MPsdExpr::Sum()
- MPsdExpr::Sum()
- MPsdExpr::Transpose()
MPsdConstr类
MPsdConstr类是COPT中多维半定约束的类。需要通过 Model类 的方法 addConstrs
或者 addConstr
来生成。提供了以下成员方法:
- MPsdConstr::MPsdConstr()
- MPsdConstr::MPsdConstr()
- MPsdConstr::Clone()
- MPsdConstr::Diagonal()
- MPsdConstr::Expand()
- MPsdConstr::Flatten()
- MPsdConstr::Get()
- MPsdConstr::GetDim()
- MPsdConstr::GetIdx()
- MPsdConstr::GetND()
- MPsdConstr::GetShape()
- MPsdConstr::GetSize()
- MPsdConstr::Item()
- MPsdConstr::operator[]()
- MPsdConstr::operator[]()
- MPsdConstr::Pick()
- MPsdConstr::Pick()
- MPsdConstr::Represent()
- MPsdConstr::Reshape()
- MPsdConstr::Set()
- MPsdConstr::Set()
- MPsdConstr::SetItem()
- MPsdConstr::Squeeze()
- MPsdConstr::Stack()
- MPsdConstr::Transpose()
MPsdConstrBuilder类
MPsdConstrBuilder类是COPT中多维半定约束的构建器,它用于生成多维半定约束并支持和内置多维数组 NdArray类 进行运算。 MPsdConstrBuilder类对象可以通过两个对象之间的比较运算来生成,其中一个对象可以是 MPsdExpr类 对象。 提供了以下成员方法:
- MPsdConstrBuilder::MPsdConstrBuilder()
- MPsdConstrBuilder::Flatten()
- MPsdConstrBuilder::GetND()
- MPsdConstrBuilder::GetPsdExpr()
- MPsdConstrBuilder::GetRange()
- MPsdConstrBuilder::GetSense()
- MPsdConstrBuilder::Set()
- MPsdConstrBuilder::Set()
- MPsdConstrBuilder::Set()
- MPsdConstrBuilder::Set()
- MPsdConstrBuilder::Set()
- MPsdConstrBuilder::SetRange()
MQExpression类
MExpression类是COPT中 QuadExpr类 的通用版本,可以用于表示二次表达式并支持 QuadExpr类 中的大多数方法。 另外,它支持多维对象,例如 MVar类 对象和 MLinExpr类 对象的二次组合。 提供了以下成员方法:
- MQExpression::MQExpression()
- MQExpression::MQExpression()
- MQExpression::AddConstant()
- MQExpression::AddExpr()
- MQExpression::AddMExpr()
- MQExpression::AddMQExpr()
- MQExpression::AddQuadExpr()
- MQExpression::AddQuadExpr()
- MQExpression::AddQuadExpr()
- MQExpression::AddQuadExpr()
- MQExpression::AddTerm()
- MQExpression::AddTerm()
- MQExpression::Clone()
- MQExpression::GetConstant()
- MQExpression::Represent()
MQuadExpr类
MQuadExpr类是COPT中多维二次表达式的类。它用于构造多维二次表达式并支持与COPT中内置的多维数组 NdArray类 进行运算。 其中的元素为 MQExpression类 类对象,可以通过对 MVar类 对象的二次组合来生成。 提供了以下成员方法:
- MQuadExpr::MQuadExpr()
- MQuadExpr::MQuadExpr()
- MQuadExpr::MQuadExpr()
- MQuadExpr::AddConstant()
- MQuadExpr::AddConstant()
- MQuadExpr::AddExpr()
- MQuadExpr::AddMExpr()
- MQuadExpr::AddMLinExpr()
- MQuadExpr::AddMQExpr()
- MQuadExpr::AddMQuadExpr()
- MQuadExpr::AddQuadExpr()
- MQuadExpr::AddTerm()
- MQuadExpr::AddTerm()
- MQuadExpr::AddTerms()
- MQuadExpr::AddTerms()
- MQuadExpr::Clear()
- MQuadExpr::Clone()
- MQuadExpr::Diagonal()
- MQuadExpr::Expand()
- MQuadExpr::Flatten()
- MQuadExpr::GetDim()
- MQuadExpr::GetND()
- MQuadExpr::GetShape()
- MQuadExpr::GetSize()
- MQuadExpr::Item()
- MQuadExpr::Item()
- MQuadExpr::operator[]()
- MQuadExpr::operator[]()
- MQuadExpr::Pick()
- MQuadExpr::Pick()
- MQuadExpr::Repeat()
- MQuadExpr::RepeatBlock()
- MQuadExpr::Represent()
- MQuadExpr::Reshape()
- MQuadExpr::SetItem()
- MQuadExpr::Squeeze()
- MQuadExpr::Stack()
- MQuadExpr::Stack()
- MQuadExpr::Stack()
- MQuadExpr::Stack()
- MQuadExpr::SubConstant()
- MQuadExpr::Sum()
- MQuadExpr::Sum()
- MQuadExpr::Transpose()
MQConstr类
MQConstr类是COPT中多维二次约束的类,需要通过 Model类 的方法 addMQConstr
来生成。
提供了以下成员方法:
- MQConstr::MQConstr()
- MQConstr::MQConstr()
- MQConstr::Clone()
- MQConstr::Diagonal()
- MQConstr::Expand()
- MQConstr::Flatten()
- MQConstr::Get()
- MQConstr::GetDim()
- MQConstr::GetIdx()
- MQConstr::GetND()
- MQConstr::GetRhs()
- MQConstr::GetSense()
- MQConstr::GetShape()
- MQConstr::GetSize()
- MQConstr::Item()
- MQConstr::operator[]()
- MQConstr::operator[]()
- MQConstr::Pick()
- MQConstr::Pick()
- MQConstr::Represent()
- MQConstr::Reshape()
- MQConstr::Set()
- MQConstr::Set()
- MQConstr::SetItem()
- MQConstr::Squeeze()
- MQConstr::Stack()
- MQConstr::Transpose()
MQConstrBuilder类
MConstrBuilder类是COPT中多维二次约束的构建器,它用于生成多维二次约束并支持和内置多维数组 NdArray类 进行运算。 MConstrBuilder类对象可以通过两个对象之间的比较运算来生成,其中一个对象可以是 MQuadExpr类 对象。 提供了以下成员方法:
NdArray类
NdArray类是COPT中内置的多维数组类,由相同类型的元素构成并且通过整数元组索引。提供了以下成员方法:
- NdArray::NdArray()
- NdArray::NdArray()
- NdArray::NdArray()
- NdArray::Clone()
- NdArray::Diagonal()
- NdArray::Expand()
- NdArray::Fill()
- NdArray::Flatten()
- NdArray::GetDim()
- NdArray::GetND()
- NdArray::GetShape()
- NdArray::GetSize()
- NdArray::Item()
- NdArray::Item()
- NdArray::operator[]()
- NdArray::operator[]()
- NdArray::Pick()
- NdArray::Pick()
- NdArray::Repeat()
- NdArray::RepeatBlock()
- NdArray::Represent()
- NdArray::Reshape()
- NdArray::SetItem()
- NdArray::Squeeze()
- NdArray::Sum()
- NdArray::Sum()
- NdArray::Transpose()
Shape类
Shape类封装了一个整数元组,用于表示数组对象沿着每个维度的大小, 即COPT内置多维数组 NdArray类 对象的大小。提供了以下成员方法:
View类
View类是COPT中对多维数组进行切片操作的类。提供了以下成员方法:
CallbackBase类
CallbackBase类给用户提供了在求解过程中介入的接口。这个是抽象类,用户需要自己实现虚函数
virtual void CallbackBase::callback()
才能创建实例,用来作为
Model::SetCallback(ICallback* ptr, int cbctx)
方法的第一个参数传入。
CallbackBase类也提供了以下可以继承的成员方法:
- CallbackBase::AddLazyConstr()
- CallbackBase::AddLazyConstr()
- CallbackBase::AddLazyConstr()
- CallbackBase::AddLazyConstrs()
- CallbackBase::AddUserCut()
- CallbackBase::AddUserCut()
- CallbackBase::AddUserCut()
- CallbackBase::AddUserCuts()
- CallbackBase::GetDblInfo()
- CallbackBase::GetIncumbent()
- CallbackBase::GetIncumbent()
- CallbackBase::GetIncumbent()
- CallbackBase::GetIntInfo()
- CallbackBase::GetRelaxSol()
- CallbackBase::GetRelaxSol()
- CallbackBase::GetRelaxSol()
- CallbackBase::GetSolution()
- CallbackBase::GetSolution()
- CallbackBase::GetSolution()
- CallbackBase::Interrupt()
- CallbackBase::LoadSolution()
- CallbackBase::SetSolution()
- CallbackBase::SetSolution()
- CallbackBase::Where()
ProbBuffer类
ProbBuffer类是字符流缓冲区的封装,提供了以下成员方法: