C# API 参考手册
为了方便用户对复杂应用场景进行建模并调用求解器进行求解,杉数求解器设计并提供了 C# 接口, 本章节将对 C# 接口的常量和功能进行阐述。
C#常量类
常量类定义了使用 C# 接口建模时必要的常数,包括一般常数、解状态、属性、信息和参数五大类常量。 本节将依次阐述上述五类常量的内容与使用方法。
一般常数
一般常数定义在 Consts
类里. 用户可以通过 Copt
命名空间的
前缀访问一般常数,如 Copt.Consts.XXXX
。
一般常数类中的内容,详见 一般常数章节。
解状态
关于解状态的常数定义在 Status
类里. 用户可以通过 Copt
命名空间的
前缀访问解状态常数,如 Copt.Status.XXXX
。
解状态常数中的内容,详见 一般常数章节:求解状态。
属性
C# 属性常数中的内容,详见 属性章节。
在C# API中, COPT 属性定义在 DblAttr
和 IntAttr
类里。
用户可以通过 Copt.DblAttr
访问 COPT 浮点型属性;通过 Copt.IntAttr
访问 COPT 整型属性。
在C# API中,通过指定属性名称获取属性取值,提供的函数如下,具体请参考 C# Model类 。
Model.GetIntAttr()
:获取整数型属性取值Model.GetDblAttr()
:获取浮点型属性取值
信息
C# API信息常数中的内容,详见 信息章节。
在C# API中,信息常数定义在 DblInfo
类里,用户可以通过命名空间中的前缀 Copt
(通常可以省略) Copt.DblInfo.
访问信息常数。
例如, Copt.DblInfo.Obj
表示变量在目标函数中系数。
Callback信息
C# API Callback信息常数中的内容,详见 信息章节:Callback相关信息。
在C# API中,Callback相关的信息常数定义在 CbInfo
类里,
用户可以通过命名空间中的前缀 Copt
(通常可以省略) Copt.CbInfo.
访问Callback信息常数。
例如, Copt.CbInfo.BestObj
表示当前最优目标函数值。
参数
优化参数控制COPT求解器优化算法的行为。
C# 参数常数中的内容,详见 参数章节。
在C# API中,COPT优化参数定义在 DblParam
和 IntParam
类里。
用户可以通过 Copt.DblParam
访问 COPT 浮点型参数;通过 Copt.IntParam
访问 COPT 整型参数。
在C# API中,通过指定参数名称获取和设置参数取值。提供的函数如下,具体请参考 C# Model类 。
获取指定参数的详细信息(当前值/最大值/最小值):
Model.GetParamInfo()
获取指定整数型/浮点型参数当前取值:
Model.GetIntParam()
/Model.GetDblParam()
设置指定整数型/浮点型参数值:
Model.SetIntParam()
/Model.SetDblParam()
C#优化建模类
本章节详细描述杉数优化求解器的 C# 接口的优化建模类,方便用户在快速构建复杂 场景下的优化模型时对其功能和使用的查询。
Envr类
创建求解环境对象是每个求解过程中必不可少的第一步。而每个求解模型都和一个环境类 Envr 关联。用户 必须首先创建一个求解环境,才能在此基础上创建一个或者多个求解模型。
EnvrConfig类
如果用户通过连接远程服务的方式启动杉数优化求解器,可以创建环境配置类来设置COPT作为客户端的配置。
Model类
Model类是杉数优化求解器模型相关操作的封装,提供了以下成员方法:
- Model.Model()
- Model.AddAffineCone()
- Model.AddAffineCone()
- Model.AddAffineCone()
- Model.AddAffineCone()
- Model.AddAffineCone()
- Model.AddAffineCone()
- Model.AddAffineCone()
- Model.AddAffineCones()
- Model.AddAffineCones()
- Model.AddAffineCones()
- Model.AddCone()
- Model.AddCone()
- Model.AddCone()
- Model.AddCone()
- Model.AddConstr()
- Model.AddConstr()
- Model.AddConstr()
- Model.AddConstr()
- Model.AddConstr()
- 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.AddEyeMat()
- Model.AddGenConstrIndicator()
- Model.AddGenConstrIndicator()
- Model.AddGenConstrIndicator()
- 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.AddQConstr()
- Model.AddQConstr()
- Model.AddQConstr()
- Model.AddSos()
- 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.Clear()
- Model.Clone()
- Model.ComputeIIS()
- Model.DelPsdObj()
- Model.DelQuadObj()
- Model.FeasRelax()
- Model.FeasRelax()
- Model.Get()
- Model.Get()
- Model.Get()
- Model.Get()
- Model.Get()
- Model.Get()
- Model.Get()
- Model.Get()
- Model.GetAffineCone()
- Model.GetAffineConeBuilder()
- Model.GetAffineConeBuilders()
- Model.GetAffineConeBuilders()
- Model.GetAffineConeBuilders()
- Model.GetAffineConeByName()
- Model.GetAffineCones()
- Model.GetCoeff()
- Model.GetCol()
- Model.GetColBasis()
- Model.GetCone()
- Model.GetConeBuilders()
- Model.GetConeBuilders()
- Model.GetConeBuilders()
- Model.GetCones()
- Model.GetConstr()
- Model.GetConstrBuilder()
- Model.GetConstrBuilders()
- Model.GetConstrByName()
- Model.GetConstrLowerIIS()
- Model.GetConstrLowerIIS()
- Model.GetConstrs()
- Model.GetConstrUpperIIS()
- Model.GetConstrUpperIIS()
- Model.GetDblAttr()
- Model.GetDblParam()
- Model.GetExpCone()
- Model.GetExpConeBuilders()
- Model.GetExpConeBuilders()
- Model.GetExpConeBuilders()
- Model.GetExpCones()
- Model.GetGenConstr()
- Model.GetGenConstrByName()
- Model.GetGenConstrIndicator()
- Model.GetGenConstrIndicators()
- Model.GetGenConstrs()
- Model.GetIndicatorIIS()
- Model.GetIndicatorIIS()
- Model.GetIntAttr()
- Model.GetIntParam()
- Model.GetLmiCoeff()
- Model.GetLmiConstr()
- Model.GetLmiConstrByName()
- Model.GetLmiConstrs()
- Model.GetLmiRhs()
- Model.GetLmiRow()
- Model.GetLpSolution()
- Model.GetObjective()
- Model.GetParamInfo()
- Model.GetParamInfo()
- Model.GetPoolObjVal()
- Model.GetPoolSolution()
- Model.GetPoolSolution()
- Model.GetPsdCoeff()
- Model.GetPsdConstr()
- Model.GetPsdConstrBuilder()
- Model.GetPsdConstrBuilders()
- Model.GetPsdConstrByName()
- Model.GetPsdConstrs()
- Model.GetPsdObjective()
- Model.GetPsdRow()
- Model.GetPsdSolution()
- Model.GetPsdVar()
- Model.GetPsdVarByName()
- Model.GetPsdVars()
- Model.GetQConstr()
- Model.GetQConstrBuilder()
- Model.GetQConstrBuilders()
- Model.GetQConstrByName()
- Model.GetQConstrs()
- Model.GetQuadObjective()
- Model.GetQuadRow()
- Model.GetRow()
- Model.GetRowBasis()
- Model.GetSolution()
- Model.GetSos()
- Model.GetSosBuilders()
- Model.GetSosBuilders()
- Model.GetSosBuilders()
- Model.GetSOSIIS()
- Model.GetSOSIIS()
- Model.GetSoss()
- Model.GetSymMat()
- Model.GetVar()
- Model.GetVarByName()
- Model.GetVarLowerIIS()
- Model.GetVarLowerIIS()
- Model.GetVars()
- Model.GetVarUpperIIS()
- 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.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.Set()
- Model.Set()
- Model.Set()
- Model.SetBasis()
- Model.SetCallback()
- Model.SetCoeff()
- Model.SetCoeffs()
- Model.SetCoeffs()
- Model.SetDblParam()
- Model.SetIntParam()
- Model.SetLmiCoeff()
- Model.SetLmiRhs()
- Model.SetLpSolution()
- Model.SetMipStart()
- Model.SetMipStart()
- Model.SetMipStart()
- Model.SetMipStart()
- Model.SetNames()
- Model.SetNames()
- Model.SetNames()
- Model.SetNames()
- Model.SetNames()
- Model.SetNames()
- Model.SetNames()
- 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.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类
为方便用户对一组 C# Var类 对象进行操作,杉数优化求解器的 C# 接口设计了VarArray类, 提供了以下成员方法:
Expr类
Expr类是杉数求解器中用于构建线性表达式时变量的相关组合操作,提供了以下成员方法:
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约束的介绍请参考 特殊约束: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.AddLinExpr()
- QuadExpr.AddQuadExpr()
- QuadExpr.AddQuadExpr()
- QuadExpr.AddTerm()
- QuadExpr.AddTerm()
- QuadExpr.AddTerms()
- QuadExpr.AddTerms()
- QuadExpr.AddTerms()
- QuadExpr.AddTerms()
- QuadExpr.AddTerms()
- QuadExpr.AddTerms()
- QuadExpr.Clone()
- QuadExpr.Evaluate()
- QuadExpr.GetCoeff()
- QuadExpr.GetConstant()
- QuadExpr.GetLinExpr()
- QuadExpr.GetVar1()
- QuadExpr.GetVar2()
- QuadExpr.Remove()
- QuadExpr.Remove()
- 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.AddConstant()
- PsdExpr.AddLinExpr()
- PsdExpr.AddLinExpr()
- PsdExpr.AddPsdExpr()
- PsdExpr.AddPsdExpr()
- PsdExpr.AddTerm()
- PsdExpr.AddTerm()
- PsdExpr.AddTerm()
- PsdExpr.AddTerms()
- PsdExpr.AddTerms()
- PsdExpr.AddTerms()
- PsdExpr.AddTerms()
- PsdExpr.AddTerms()
- PsdExpr.AddTerms()
- PsdExpr.Clone()
- PsdExpr.Evaluate()
- PsdExpr.GetCoeff()
- PsdExpr.GetConstant()
- PsdExpr.GetLinExpr()
- PsdExpr.GetPsdVar()
- PsdExpr.Multiply()
- PsdExpr.Remove()
- PsdExpr.Remove()
- PsdExpr.Remove()
- 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.AddTerms()
- LmiExpr.Clone()
- LmiExpr.GetCoeff()
- LmiExpr.GetConstant()
- LmiExpr.GetVar()
- LmiExpr.Multiply()
- LmiExpr.Remove()
- LmiExpr.Remove()
- 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.AddTerms()
- SymMatExpr.AddTerms()
- SymMatExpr.Clone()
- SymMatExpr.GetCoeff()
- SymMatExpr.GetDim()
- SymMatExpr.GetSymMat()
- SymMatExpr.Multiply()
- SymMatExpr.Remove()
- SymMatExpr.Remove()
- SymMatExpr.Reserve()
- SymMatExpr.SetCoeff()
- SymMatExpr.Size()
MVar类
MVar类是COPT中用于构建多维变量的类,它支持和COPT中内置的多维数组 NdArray类 进行运算。
可以通过 Model类 的方法 addMVar
来创建。提供了以下成员方法:
- MVar.Clone()
- MVar.Diagonal()
- MVar.Expand()
- MVar.Flatten()
- MVar.Get()
- MVar.GetBasis()
- MVar.GetDim()
- MVar.GetIdx()
- MVar.GetItem()
- MVar.GetItem()
- MVar.GetLowerIIS()
- MVar.GetND()
- MVar.GetShape()
- MVar.GetSize()
- MVar.GetType()
- MVar.GetUpperIIS()
- MVar.HStack()
- 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()
- MVar.VStack()
MConstr类
MConstr类是COPT中多维线性约束的类,可以通过 Model类 的方法
addMConstr
来创建。提供了以下成员方法:
- MConstr.Clone()
- MConstr.Diagonal()
- MConstr.Expand()
- MConstr.Flatten()
- MConstr.Get()
- MConstr.GetDim()
- MConstr.GetIdx()
- MConstr.GetItem()
- MConstr.GetItem()
- MConstr.GetLowerIIS()
- MConstr.GetND()
- MConstr.GetShape()
- MConstr.GetSize()
- MConstr.GetUpperIIS()
- MConstr.HStack()
- MConstr.Pick()
- MConstr.Represent()
- MConstr.Reshape()
- MConstr.Set()
- MConstr.Set()
- MConstr.SetItem()
- MConstr.Squeeze()
- MConstr.Stack()
- MConstr.Transpose()
- MConstr.VStack()
MConstrBuilder类
MConstrBuilder类是COPT中多维线性约束的构建器,它用于生成多维线性约束并支持和内置多维数组 NdArray类 进行运算。MConstrBuilder类对象可以通过两个对象之间的比较 运算来生成,其中一个对象可以是 MVar类 对象 或 MLinExpr类 对象。提供了以下成员方法:
MExpression类
MExpression类是COPT中 Expr类 的通用版本,可以用于表示线性表达式并 支持 Expr类 中的大多数方法。另外,它支持多维数组对象, 例如 MVar类 对象和 NdArray类 对象的线性组合。 提供了以下成员方法:
MLinExpr类
MLinExpr类是COPT中多维线性表达式的类。它用于构造多维线性表达式并与COPT中内置的多维数组 NdArray类 进行运算。其中的元素为 MExpression类 类对象,可以通过对 MVar类 对象的线性组合来生成。 提供了以下成员方法:
- 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.GetItem()
- MLinExpr.GetItem()
- MLinExpr.GetND()
- MLinExpr.GetShape()
- MLinExpr.GetSize()
- MLinExpr.HStack<T>()
- MLinExpr.HStack()
- MLinExpr.HStack()
- MLinExpr.Pick()
- MLinExpr.Repeat()
- MLinExpr.RepeatBlock()
- MLinExpr.Represent()
- MLinExpr.Reshape()
- MLinExpr.SetItem()
- MLinExpr.Squeeze()
- MLinExpr.Stack<T>()
- MLinExpr.Stack()
- MLinExpr.Stack()
- MLinExpr.SubConstant()
- MLinExpr.Sum()
- MLinExpr.Sum()
- MLinExpr.Transpose()
- MLinExpr.VStack<T>()
- MLinExpr.VStack()
- MLinExpr.VStack()
MPsdConstr类
MPsdConstr类是COPT中多维半定约束的类。
需要通过 Model类 的方法 addConstrs
或者 addConstr
来生成。提供了以下成员方法:
- MPsdConstr.Clone()
- MPsdConstr.Diagonal()
- MPsdConstr.Expand()
- MPsdConstr.Flatten()
- MPsdConstr.Get()
- MPsdConstr.GetDim()
- MPsdConstr.GetIdx()
- MPsdConstr.GetItem()
- MPsdConstr.GetItem()
- MPsdConstr.GetND()
- MPsdConstr.GetShape()
- MPsdConstr.GetSize()
- MPsdConstr.HStack()
- MPsdConstr.Pick()
- MPsdConstr.Represent()
- MPsdConstr.Reshape()
- MPsdConstr.Set()
- MPsdConstr.Set()
- MPsdConstr.SetItem()
- MPsdConstr.Squeeze()
- MPsdConstr.Stack()
- MPsdConstr.Transpose()
- MPsdConstr.VStack()
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()
MPsdExpr类
MPsdExpr类是COPT中多维半定表达式的类。 它用于构造多维半定表达式并与COPT中内置的多维数组 NdArray类 进行运算。 其中的元素为 PsdExpr类 类对象或其多维线性组合。 提供了以下成员方法:
- 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.GetItem()
- MPsdExpr.GetItem()
- MPsdExpr.GetND()
- MPsdExpr.GetShape()
- MPsdExpr.GetSize()
- MPsdExpr.HStack<T>()
- MPsdExpr.HStack()
- MPsdExpr.HStack()
- MPsdExpr.HStack()
- MPsdExpr.Pick()
- MPsdExpr.Repeat()
- MPsdExpr.RepeatBlock()
- MPsdExpr.Represent()
- MPsdExpr.Reshape()
- MPsdExpr.SetItem()
- MPsdExpr.SetItem()
- MPsdExpr.Squeeze()
- MPsdExpr.Stack<T>()
- MPsdExpr.Stack()
- MPsdExpr.Stack()
- MPsdExpr.Stack()
- MPsdExpr.SubConstant()
- MPsdExpr.Sum()
- MPsdExpr.Sum()
- MPsdExpr.Transpose()
- MPsdExpr.VStack<T>()
- MPsdExpr.VStack()
- MPsdExpr.VStack()
- MPsdExpr.VStack()
MQConstr类
MQConstr类是COPT中多维二次约束的类,
需要通过 Model类 的方法 addMQConstr
来生成。
提供了以下成员方法:
- MQConstr.Clone()
- MQConstr.Diagonal()
- MQConstr.Expand()
- MQConstr.Flatten()
- MQConstr.Get()
- MQConstr.GetDim()
- MQConstr.GetIdx()
- MQConstr.GetItem()
- MQConstr.GetItem()
- MQConstr.GetND()
- MQConstr.GetRhs()
- MQConstr.GetSense()
- MQConstr.GetShape()
- MQConstr.GetSize()
- MQConstr.HStack()
- MQConstr.Pick()
- MQConstr.Represent()
- MQConstr.Reshape()
- MQConstr.Set()
- MQConstr.Set()
- MQConstr.SetItem()
- MQConstr.Squeeze()
- MQConstr.Stack()
- MQConstr.Transpose()
- MQConstr.VStack()
MQConstrBuilder类
MConstrBuilder类是COPT中多维二次约束的构建器, 它用于生成多维二次约束并支持和内置多维数组 NdArray类 进行运算。 MConstrBuilder类对象可以通过两个对象之间的比较运算来生成, 其中一个对象可以是 MQuadExpr类 对象。提供了以下成员方法:
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.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.GetItem()
- MQuadExpr.GetItem()
- MQuadExpr.GetND()
- MQuadExpr.GetShape()
- MQuadExpr.GetSize()
- MQuadExpr.HStack<T>()
- MQuadExpr.HStack()
- MQuadExpr.HStack()
- MQuadExpr.HStack()
- MQuadExpr.Pick()
- MQuadExpr.Repeat()
- MQuadExpr.RepeatBlock()
- MQuadExpr.Represent()
- MQuadExpr.Reshape()
- MQuadExpr.SetItem()
- MQuadExpr.Squeeze()
- MQuadExpr.Stack<T>()
- MQuadExpr.Stack()
- MQuadExpr.Stack()
- MQuadExpr.Stack()
- MQuadExpr.SubConstant()
- MQuadExpr.Sum()
- MQuadExpr.Sum()
- MQuadExpr.Transpose()
- MQuadExpr.VStack<T>()
- MQuadExpr.VStack()
- MQuadExpr.VStack()
- MQuadExpr.VStack()
NdArray类
NdArray类是COPT中内置的多维数组类,由相同类型的元素构成并且通过整数元组索引。提供了以下成员方法:
- NdArray<T>.Diagonal()
- NdArray<T>.Expand()
- NdArray<T>.Fill()
- NdArray<T>.Flatten()
- NdArray<T>.GetDim()
- NdArray<T>.GetItem()
- NdArray<T>.GetItem()
- NdArray<T>.GetND()
- NdArray<T>.GetShape()
- NdArray<T>.GetSize()
- NdArray<T>.NdArray()
- NdArray<T>.Pick()
- NdArray<T>.Repeat()
- NdArray<T>.RepeatBlock()
- NdArray<T>.Represent()
- NdArray<T>.Reshape()
- NdArray<T>.SetItem()
- NdArray<T>.Squeeze()
- NdArray<T>.Sum()
- NdArray<T>.Sum()
- NdArray<T>.Transpose()
Shape类
Shape类封装了一个整数元组,用于表示数组对象沿着每个维度的大小, 即COPT内置多维数组 NdArray类 对象的大小。提供了以下成员方法:
View类
View类是COPT中对多维数组进行切片操作的类。提供了以下成员方法:
CallbackBase类
CallbackBase类给用户提供了在求解过程中介入的接口。这个是抽象类,用户需要自己实现虚函数
virtual void CallbackBase::callback()
才能创建实例,用来作为
Model::SetCallback(CallbackBase cb, int cbctx)
方法的第一个参数传入。
CallbackBase类也提供了以下可以继承的成员方法:
- CallbackBase.CallbackBase()
- CallbackBase.AddLazyConstr()
- CallbackBase.AddLazyConstr()
- CallbackBase.AddLazyConstr()
- CallbackBase.AddLazyConstrs()
- CallbackBase.AddUserCut()
- CallbackBase.AddUserCut()
- CallbackBase.AddUserCut()
- CallbackBase.AddUserCuts()
- CallbackBase.callback()
- CallbackBase.GetDblInfo()
- CallbackBase.GetIncumbent()
- CallbackBase.GetIncumbent()
- CallbackBase.GetIncumbent()
- CallbackBase.GetIncumbent()
- CallbackBase.GetIntInfo()
- CallbackBase.GetRelaxSol()
- CallbackBase.GetRelaxSol()
- CallbackBase.GetRelaxSol()
- CallbackBase.GetRelaxSol()
- CallbackBase.GetSolution()
- CallbackBase.GetSolution()
- CallbackBase.GetSolution()
- CallbackBase.GetSolution()
- CallbackBase.Interrupt()
- CallbackBase.LoadSolution()
- CallbackBase.SetSolution()
- CallbackBase.SetSolution()
- CallbackBase.SetSolution()
- CallbackBase.Where()
ProbBuffer类
ProbBuffer类是字符流缓冲区的封装,提供了以下成员方法:
CoptException类
CoptException类是杉数优化求解器的错误处理相关操作的封装。当方法调用对应的杉数求解器底层接口发生错误时, 则抛出CoptException类的异常,提供了以下属性值访问相应的错误信息: