8.8.12. MDOModel

MDOModel

在MindOpt应用程序中表示模型

方法

AddConstr

向该模型添加新的线性约束

AddConstr

通过一个 MDOTempConstr 向该模型添加新的约束

AddConstrs

向该模型添加一定数量的约束

AddConstrs

向该模型添加一定数量的约束

AddConstrs

向该模型的指定处添加一定数量的约束

AddGenConstrIndicator

向该模型添加新的指示约束(Indicator constraint)

AddGenConstrIndicator

MDOTempConstr 向该模型添加新的指示约束(Indicator constraint)

AddPsdConstr

向该模型添加新的PSD约束

AddPsdVar

通过指示其维度和名称添加新的PSD变量

AddPsdVar

通过指示其目标系数和名称来添加新的PSD变量

AddRange

向该模型添加新的范围约束

AddRangePsdConstr

向该模型添加新的范围PSD约束

AddRanges

向该模型添加一定数量的范围约束

AddSOS

向该模型添加一个SOS约束

AddVar

通过指示其下界,上界,目标系数,类型和名称,向该模型添加变量

AddVar

将变量添加到该模型并将其关联到现有约束

AddVar

向该模型添加一个变量,并通过指示约束(Indicator Constraint)矩阵列将其关联到现有约束

AddVars

将count个同类型的变量添加到该模型

AddVars

添加多个属性不同的变量

AddVars

添加多个属性不同的变量

AddVars

添加多个不同属性且有约束的变量

ChgCoeff

更改约束矩阵中的约束系数

ChgCoeffs

更改约束矩阵中的约束系数

ComputeIIS

计算IIS(不可约不一致子系统)

Dispose

释放与该模型相关联的所有资源

Get

检索int属性的值

Get

检索double属性的值

Get

检索与约束关联的特定属性的值

Get

检索与特定变量关联的特定int属性的值

Get

检索与特定变量关联的特定double属性的值

Get

检索与特定变量关联的特定char属性的值

Get

检索与特定变量关联的特定string属性的值

Get

检索与特定约束关联的特定int属性的值

Get

检索与特定约束关联的特定double属性的值

Get

检索与特定约束关联的特定char属性的值

Get

检索与特定约束关联的特定string属性的值

Get

检索与特定变量矩阵关联的int属性的值

Get

检索string属性的值

Get

检索与特定变量矩阵关联的double属性的值

Get

检索与特定变量矩阵关联的char属性的值

Get

检索与特定变量矩阵关联的string属性的值

Get

检索与特定约束矩阵关联的int属性的值

Get

检索与特定约束矩阵关联的double属性的值

Get

检索与特定约束矩阵关联的char属性的值

Get

检索与特定约束矩阵关联的string属性的值

Get

检索与特定变量三维数组关联的int属性的值

Get

检索与特定变量三维数组关联的double属性的值

Get

检索与特定变量三维数组关联的char属性的值

Get

检索与变量关联的特定属性的值

Get

检索与特定变量三维数组关联的string属性的值

Get

检索与特定约束三维数组关联的int属性的值

Get

检索与特定约束三维数组关联的double属性的值

Get

检索与特定约束三维数组关联的char属性的值

Get

检索与特定约束三维数组关联的string属性的值

Get

按名称检索int参数的值

Get

按其名称检索double参数的值

Get

检索与变量关联的特定属性的值

Get

检索与变量关联的特定属性的值

Get

检索与变量关联的特定属性的值

Get

检索与约束关联的特定属性的值

Get

检索与约束关联的特定属性的值

Get

检索与约束关联的特定属性的值

GetCol

从约束矩阵中检索单列的值

GetConstrByName

按约束的名称检索约束

GetConstrs

检索该模型中的所有约束

GetGenConstrIndicator

按其对象检索一般约束(General Constraint)

GetGenConstrs

检索该模型中的所有一般约束(General Constraint)

GetObjective

检索该模型的目标函数

GetPsdConstrs

检索该模型中的所有PSD约束

GetPsdVars

检索该模型中的所有PSD变量

GetRow

从约束矩阵中通过约束检索行

GetSOS

检索该SOS约束包含的变量以及系数

GetSOSs

检索当前model里所有的SOS约束

GetVarByName

按名称检索变量

GetVars

检索该模型中的所有变量

MDOModel

构建和输入环境关联的模型

MDOModel

从文件中读取已有的信息,并构建和输入的环境相关联的模型

MDOModel

从另一个现有的模型拷贝创建一个新模型

Optimize

开始优化模型

Read

将数据从文件加载到现有模型

Remove

从该模型中删除变量

Remove

从该模型中删除约束

Remove

从该模型中删除SOS约束

Remove

从该模型中删除一般约束(General Constraint)

Reset

将模型重置为未求解状态,丢弃先前计算的任何解

Set

设置int参数的值

Set

设置double参数的值

Set

设置和指定变量关联的特定string属性的值

Set

设置和指定约束关联的特定int属性的值

Set

设置和指定约束关联的特定double属性的值

Set

设置和指定约束关联的特定char属性的值

Set

设置和指定约束关联的特定string属性的值

Set

设置和指定变量关联的特定int属性的值

Set

设置和指定变量关联的特定double属性的值

Set

设置和指定变量关联的特定char属性的值

Set

设置和指定变量关联的特定string属性的值

Set

设置和指定约束关联的特定int属性的值

Set

设置字符串参数的值

Set

设置和指定约束关联的特定double属性的值

Set

设置和指定约束关联的特定char属性的值

Set

设置和指定约束关联的特定string属性的值

Set

设置与特定变量矩阵关联的int属性的值

Set

设置与特定变量矩阵关联的double属性的值

Set

设置与特定变量矩阵关联的char属性的值

Set

设置与特定变量矩阵关联的string属性的值

Set

设置与特定约束矩阵关联的int属性的值

Set

设置与特定约束矩阵关联的double属性的值

Set

设置与特定约束矩阵关联的char属性的值

Set

设置与特定约束矩阵关联的string属性的值

Set

设置与特定约束矩阵关联的int属性的值

Set

设置与特定约束矩阵关联的double属性的值

Set

设置与特定约束矩阵关联的char属性的值

Set

设置与特定约束矩阵关联的string属性的值

Set

设置与特定约束三维数组关联的int属性的值

Set

设置与特定约束三维数组关联的double属性的值

Set

设置与特定约束三维数组关联的char属性的值

Set

设置与特定约束三维数组关联的string属性的值

Set

设置int属性的值

Set

设置double属性的值

Set

设置字符串属性的值

Set

设置和指定变量关联的特定属性的值

Set

设置和指定变量关联的特定属性的值

Set

设置和指定变量关联的特定属性的值

SetCallback

设置用户定义的回调类对象

SetObjective

设置目标函数

SetObjective

设置目标函数

Write

将模型数据写入文件

MDOConstr AddConstr(MDOLinExpr lhsExpr, char sense, MDOLinExpr rhsExpr, string? name)

向该模型添加新的线性约束

Parameters:
  • MDOLinExpr lhsExpr – 左侧的线性表达式

  • char sense

    不等式标志。支持的标志包括:

    • MDO.EQUAL

    • MDO.LESS_EQUAL

    • MDO.GREATER_EQUAL

  • MDOLinExpr rhsExpr – 右侧的线性表达式

  • string? name – 新约束的名称,允许空字符串,在这种情况下,将给出系统生成的名称。

Returns:

新添加的约束

MDOConstr AddConstr(MDOTempConstr tempConstr, string? name)

通过一个 MDOTempConstr 向该模型添加新的约束

Parameters:
  • MDOTempConstr tempConstr – MDOTempConstr

  • string? name – 新约束的名称,允许空字符串,在这种情况下,将给出系统生成的名称。

Returns:

新添加的约束

MDOConstr[] AddConstrs(int count)

向该模型添加一定数量的约束

Parameters:

int count – 要添加的约束的数量

Returns:

新添加的约束数组

MDOConstr[] AddConstrs(MDOLinExpr[] lhsExprs, char[] senses, double[] rhss, string[]? names)

向该模型添加一定数量的约束

Parameters:
  • MDOLinExpr[] lhsExprs – 新约束的线性表达式。如果为NULL,则使用0。

  • char[] senses

    新约束的不等式符号。如果为NULL则使用 ‘MDO.LESS_EQUAL’。支持的符号包括:

    • MDO.EQUAL

    • MDO.LESS_EQUAL

    • MDO.GREATER_EQUAL

  • double[] rhss – 新约束的右侧值。如果存在NULL,将使用 ‘MDO.INFINITY’。

  • string[]? names – 新约束的名称,如果是NULL则系统自动生成名称。

Returns:

新添加的约束

MDOConstr[] AddConstrs(MDOLinExpr[] lhsExprs, char[] senses, double[] rhss, int start, int len, string[]? names)

向该模型的指定处添加一定数量的约束

Parameters:
  • MDOLinExpr[] lhsExprs – 新约束的线性表达式。如果为NULL,则使用0。

  • char[] senses

    新约束的不等式符号。如果为NULL则使用 ‘MDO.LESS_EQUAL’。支持的符号包括:

    • MDO.EQUAL

    • MDO.LESS_EQUAL

    • MDO.GREATER_EQUAL

  • double[] rhss – 新约束的右侧值。如果存在NULL,将使用 ‘MDO.INFINITY’。

  • int start – 指定的添加起始位置

  • int len – 指定要添加的约束数目

  • string[]? names – 新约束的名称,如果是NULL则系统自动生成名称。

Returns:

新添加的约束

MDOGenConstr AddGenConstrIndicator(MDOVar binvar, int binval, MDOLinExpr expr, char sense, double rhs, string? name)

向该模型添加新的指示约束(Indicator constraint)。

Parameters:
  • MDOVar binvar – 该Indicator约束的二进制变量。

  • int binval – Indicator约束生效时的二进制值。

  • MDOLinExpr expr – 新Indicator约束的线性表达式

  • char sense – 新Indicator约束的约束比较符

  • double rhs – 新Indicator约束的右侧值。

  • string? name – 新Indicator约束的名称。

Returns:

新添加的一般约束。

MDOGenConstr AddGenConstrIndicator(MDOVar binvar, int binval, MDOTempConstr tempConstr, string? name)

MDOTempConstr 向该模型添加新的指示约束(Indicator constraint)。

Parameters:
  • MDOVar binvar – 该Indicator约束的二进制变量。

  • int binval – Indicator约束生效时的二进制值。

  • MDOTempConstr tempConstr – 新Indicator的线性约束部分

  • string? name – 新Indicator约束的名称。

Returns:

新添加的一般约束。

MDOPsdConstr AddPsdConstr(MDOPsdExpr expr, char sense, double rhs, string? name)

向该模型添加新的PSD约束

Parameters:
  • MDOPsdExpr expr – 新PSD约束的左侧表达式

  • char sense

    不等式符号。支持的符号包括:

    • MDO.EQUAL

    • MDO.LESS_EQUAL

    • MDO.GREATER_EQUAL

  • double rhs – 新PSD变量的右值

  • string? name – 新的PSD约束的名称,空字符串的情况下将使用系统生成的名称。

Returns:

新添加的约束

MDOPsdVar AddPsdVar(int dim, string? name)

通过指示其维度和名称添加新的PSD变量

Parameters:
  • int dim – 新PSD变量的维数,即与该新PSD变量相关联的矩阵行 (或矩阵列,矩阵是正方形) 的数量

  • string? name – 新的PSD变量的名称,空字符串的情况下将使用系统生成的名称。

Returns:

新添加的PSD变量

MDOPsdVar AddPsdVar(MDOMatrix obj, string? name)

通过指示其目标系数和名称来添加新的PSD变量

Parameters:
  • MDOMatrix obj – 新PSD变量的目标系数,应当为一个方阵

  • string? name – 新的PSD变量的名称,空字符串的情况下将使用系统生成的名称。

Returns:

新添加的PSD变量

MDOConstr AddRange(MDOLinExpr expr, double lower, double upper, string? name)

向该模型添加新的范围约束

Parameters:
  • MDOLinExpr expr – 线性表达式

  • double lower – 线性表达式的下界

  • double upper – 线性表达式的上界

  • string? name – 新约束的名称,空字符串的情况下将使用系统生成的名称。

Returns:

新添加的约束

MDOPsdConstr AddRangePsdConstr(MDOPsdExpr expr, double lower, double upper, string? name)

向该模型添加新的范围PSD约束

Parameters:
  • MDOPsdExpr expr – 新PSD约束的表达式

  • double lower – PSD表达式的下界

  • double upper – PSD表达式的上界

  • string? name – 新的PSD约束的名称,空字符串的情况下将使用系统生成的名称。

Returns:

新添加的约束

MDOConstr[] AddRanges(MDOLinExpr[] exprs, double[] lower, double[] upper, string[]? names)

向该模型添加一定数量的范围约束

Parameters:
  • MDOLinExpr[] exprs – 新约束的线性表达式数组。如果是NULL,则将使用0作为左值。

  • double[] lower – 线性表达式的下界数组。如果是NULL,则将使用0作为下界。

  • double[] upper – 线性表达式的上界数组。如果是NULL则使用 MDO.INFINITY

  • string[]? names – 新约束的名称数组,如果是NULL则使用系统生成的名称。

Returns:

新添加的约束数组

MDOSOS AddSOS(MDOVar[] vars, double[] weights, int type)

向该模型添加一个SOS约束

Parameters:
  • MDOVar[] vars – 新SOS约束里包含的变量

  • double[] weights – 新SOS约束里变量的权重

  • int type

    新SOS约束的类型。支持的类型包括:

    • MDO_SOS_TYPE1(1)

    一个set里最多允许一个变量不等于0

    • MDO_SOS_TYPE2(2)

    一个set里最多允许两个连续的变量不等于0

Returns:

新添加的SOS约束

MDOVar AddVar(double lb, double ub, double obj, char type, string? name)

通过指示其下界,上界,目标系数,类型和名称,向该模型添加变量

Parameters:
  • double lb – 新变量的下界

  • double ub – 新变量的上界

  • double obj – 新变量的目标系数

  • char type

    新变量的类型。支持的类型包括:

    • MDO.CONTINUOUS(‘C’) 连续变量,

    • MDO.BINARY(‘B’) 二进制变量,

    • MDO.INTEGER(‘I’) 整型变量,

    • MDO.SEMICONT(‘S’) 半连续变量,

    • MDO.SEMIINT(‘N’) 半整型变量。

  • string? name – 新变量的名称,如果为空字符串,则使用系统生成的名称。

Returns:

新添加的变量

MDOVar AddVar(double lb, double ub, double obj, char type, MDOConstr[] constrs, double[] coeffs, string? name)

将变量添加到该模型并将其关联到现有约束

Parameters:
  • double lb – 新变量的下界

  • double ub – 新变量的上界

  • double obj – 新变量的目标系数

  • char type

    新变量的类型。支持的类型包括:

    • MDO.CONTINUOUS(‘C’) 连续变量,

    • MDO.BINARY(‘B’) 二进制变量,

    • MDO.INTEGER(‘I’) 整型变量,

    • MDO.SEMICONT(‘S’) 半连续变量,

    • MDO.SEMIINT(‘N’) 半整型变量。

  • MDOConstr[] constrs – 要关联的约束

  • double[] coeffs – 每个关联约束的约束系数。如果为NULL,则所有系数将被设置为零。

  • string? name – 新变量的名称,如果为空字符串,则将使用系统生成的名称。

Returns:

新添加的变量

MDOVar AddVar(double lb, double ub, double obj, char type, MDOColumn col, string? name)

向该模型添加一个变量,并通过指示约束(Indicator Constraint)矩阵列将其关联到现有约束

Parameters:
  • double lb – 新变量的下界

  • double ub – 新变量的上界

  • double obj – 新变量的目标系数

  • char type

    新变量的类型。支持的类型包括:

    • MDO.CONTINUOUS(‘C’) 连续变量,

    • MDO.BINARY(‘B’) 二进制变量,

    • MDO.INTEGER(‘I’) 整型变量,

    • MDO.SEMICONT(‘S’) 半连续变量,

    • MDO.SEMIINT(‘N’) 半整型变量。

  • MDOColumn col – 关联到新变量的约束矩阵列

  • string? name – 新变量的名称,如果是空字符串,则使用系统生成的名称。

Returns:

新添加的变量

MDOVar[] AddVars(int count, char type)

将count个同类型的变量添加到该模型

Parameters:
  • int count – 要添加的变量数

  • char type

    新变量的类型。支持的类型包括:

    • MDO.CONTINUOUS(‘C’) 连续变量,

    • MDO.BINARY(‘B’) 二进制变量,

    • MDO.INTEGER(‘I’) 整型变量,

    • MDO.SEMICONT(‘S’) 半连续变量,

    • MDO.SEMIINT(‘N’) 半整型变量。

Returns:

新添加的变量数组

MDOVar[] AddVars(double[] lb, double[] ub, double[] obj, char[]? type, string[]? names)

添加多个属性不同的变量

Parameters:
  • double[] lb – 新变量的下界。如果为NULL,则将下界设为0。

  • double[] ub – 新变量的上界。如果为NULL,则将上界设为 MDO.INFINITY

  • double[] obj – 新变量的目标系数。如果为NULL,则将设置为0。

  • char[]? type

    新变量的类型。支持的类型包括:

    • MDO.CONTINUOUS(‘C’) 连续变量,

    • MDO.BINARY(‘B’) 二进制变量,

    • MDO.INTEGER(‘I’) 整型变量,

    • MDO.SEMICONT(‘S’) 半连续变量,

    • MDO.SEMIINT(‘N’) 半整型变量。

  • string[]? names – 新变量的名称。如果为NULL,则将使用系统生成的名称。

Returns:

新添加的变量数组

MDOVar[] AddVars(double[] lb, double[] ub, double[] obj, char[]? type, string[]? names, int start, int len)

添加多个属性不同的变量

Parameters:
  • double[] lb – 新变量的下界。如果为NULL,则将设置下界为0。

  • double[] ub – 新变量的上界。如果为NULL,则将设置上界为 MDO.INFINITY

  • double[] obj – 新变量的目标系数。如果为NULL,则将设置新变量的目标系数为0。

  • char[]? type

    新变量的类型。支持的类型包括:

    • MDO.CONTINUOUS(‘C’) 连续变量,

    • MDO.BINARY(‘B’) 二进制变量,

    • MDO.INTEGER(‘I’) 整型变量,

    • MDO.SEMICONT(‘S’) 半连续变量,

    • MDO.SEMIINT(‘N’) 半整型变量。

  • string[]? names – 新变量的名称。如果为NULL,则将使用系统生成的名称。

  • int start – 在输入数组里起始的添加索引

  • int len – 要添加的变量的数量

Returns:

新添加的变量数组

MDOVar[] AddVars(double[] lb, double[] ub, double[] obj, char[] type, string[]? names, MDOColumn[] col)

添加多个不同属性且有约束的变量

Parameters:
  • double[] lb – 新变量的下界。如果为NULL,则将设置下界为0。

  • double[] ub – 新变量的上界。如果为NULL,则将设置上界为 MDO.INFINITY

  • double[] obj – 新变量的目标系数。如果为NULL,则将设置新变量的目标系数为0。

  • char[] type

    新变量的类型。支持的类型包括:

    • MDO.CONTINUOUS(‘C’) 连续变量,

    • MDO.BINARY(‘B’) 二进制变量,

    • MDO.INTEGER(‘I’) 整型变量,

    • MDO.SEMICONT(‘S’) 半连续变量,

    • MDO.SEMIINT(‘N’) 半整型变量。

  • string[]? names – 新变量的名称。如果为NULL,则将使用系统生成的名称。

  • MDOColumn[] col – 要关联到新变量的约束矩阵列

Returns:

新添加的变量数组

void ChgCoeff(MDOConstr constr, MDOVar var, double value)

更改约束矩阵中的约束系数

Parameters:
  • MDOConstr constr – 系数的约束条件

  • MDOVar var – 系数的变量

  • double value – 新的系数值

void ChgCoeffs(MDOConstr[] constrs, MDOVar[] vars, double[] values)

更改约束矩阵中的约束系数

Parameters:
  • MDOConstr[] constrs – 系数的约束条件

  • MDOVar[] vars – 系数的变量

  • double[] values – 新的系数值

void ComputeIIS()

计算IIS(不可约不一致子系统)。 IIS是变量边界和约束边界的子集,该子集满足:

  1. 子集对应的子问题仍然不可行

  2. 删除该子集中的任何边界后,子问题变得可行。

有关更多详细信息,请检查IIS相关属性的变量和约束。

Note

子系统的基数应该很小。请注意,这个问题应该是不可解的。

void Dispose()

释放与该模型相关联的所有资源。请注意,调用该方法后无法再使用该模型。

int Get(MDO.IntAttr attr)

检索int属性的值

Parameters:

MDO.IntAttr attr – 属性

Returns:

要检索的属性的当前值

double Get(MDO.DoubleAttr attr)

检索double属性的值

Parameters:

MDO.DoubleAttr attr – 属性

Returns:

要检索的属性的当前值

string[] Get(MDO.StringAttr attr, MDOConstr[] constrs)

检索与约束关联的特定属性的值

Parameters:
  • MDO.StringAttr attr – 属性

  • MDOConstr[] constrs – 关联约束

Returns:

要检索的属性值

int[] Get(MDO.IntAttr attr, MDOVar[] vars, int start, int len)

检索与特定变量关联的特定int属性的值

Parameters:
  • MDO.IntAttr attr – 属性

  • MDOVar[] vars – 变量数组,部分为关联变量

  • int start – 数组的起始索引

  • int len – 关联变量的数量

Returns:

要检索的属性值

double[] Get(MDO.DoubleAttr attr, MDOVar[] vars, int start, int len)

检索与特定变量关联的特定double属性的值

Parameters:
  • MDO.DoubleAttr attr – 属性

  • MDOVar[] vars – 变量数组,部分为关联变量

  • int start – 数组的起始索引

  • int len – 关联变量的数量

Returns:

要检索的属性值

char[] Get(MDO.CharAttr attr, MDOVar[] vars, int start, int len)

检索与特定变量关联的特定char属性的值

Parameters:
  • MDO.CharAttr attr – 属性

  • MDOVar[] vars – 变量数组,部分为关联变量

  • int start – 数组的起始索引

  • int len – 关联变量的数量

Returns:

要检索的属性值

string[] Get(MDO.StringAttr attr, MDOVar[] vars, int start, int len)

检索与特定变量关联的特定string属性的值

Parameters:
  • MDO.StringAttr attr – 属性

  • MDOVar[] vars – 变量数组,部分为关联变量

  • int start – 数组的起始索引

  • int len – 关联变量的数量

Returns:

要检索的属性值

int[] Get(MDO.IntAttr attr, MDOConstr[] constrs, int start, int len)

检索与特定约束关联的特定int属性的值

Parameters:
  • MDO.IntAttr attr – 属性

  • MDOConstr[] constrs – 约束数组,部分为关联约束

  • int start – 数组的起始索引

  • int len – 关联约束的数量

Returns:

要检索的属性值

double[] Get(MDO.DoubleAttr attr, MDOConstr[] constrs, int start, int len)

检索与特定约束关联的特定double属性的值

Parameters:
  • MDO.DoubleAttr attr – 属性

  • MDOConstr[] constrs – 约束数组,部分为关联约束

  • int start – 数组的起始索引

  • int len – 关联约束的数量

Returns:

要检索的属性值

char[] Get(MDO.CharAttr attr, MDOConstr[] constrs, int start, int len)

检索与特定约束关联的特定char属性的值

Parameters:
  • MDO.CharAttr attr – 属性

  • MDOConstr[] constrs – 约束数组,部分为关联约束

  • int start – 数组的起始索引

  • int len – 关联约束的数量

Returns:

要检索的属性值

string[] Get(MDO.StringAttr attr, MDOConstr[] constrs, int start, int len)

检索与特定约束关联的特定string属性的值

Parameters:
  • MDO.StringAttr attr – 属性

  • MDOConstr[] constrs – 约束数组,部分为关联约束

  • int start – 数组的起始索引

  • int len – 关联约束的数量

Returns:

要检索的属性值

int[,] Get(MDO.IntAttr attr, MDOVar[,] vars)

检索与特定变量矩阵关联的int属性的值

Parameters:
  • MDO.IntAttr attr – 属性

  • MDOVar[,] vars – 关联变量矩阵

Returns:

要检索的属性值

string Get(MDO.StringAttr attr)

检索string属性的值

Parameters:

MDO.StringAttr attr – 属性

Returns:

要检索的属性的当前值

double[,] Get(MDO.DoubleAttr attr, MDOVar[,] vars)

检索与特定变量矩阵关联的double属性的值

Parameters:
  • MDO.DoubleAttr attr – 属性

  • MDOVar[,] vars – 变量矩阵

Returns:

要检索的属性值

char[,] Get(MDO.CharAttr attr, MDOVar[,] vars)

检索与特定变量矩阵关联的char属性的值

Parameters:
  • MDO.CharAttr attr – 属性

  • MDOVar[,] vars – 变量矩阵

Returns:

要检索的属性值

string[,] Get(MDO.StringAttr attr, MDOVar[,] vars)

检索与特定变量矩阵关联的string属性的值

Parameters:
  • MDO.StringAttr attr – 属性

  • MDOVar[,] vars – 变量矩阵

Returns:

要检索的属性值

int[,] Get(MDO.IntAttr attr, MDOConstr[,] constrs)

检索与特定约束矩阵关联的int属性的值

Parameters:
  • MDO.IntAttr attr – 属性

  • MDOConstr[,] constrs – 约束矩阵

Returns:

要检索的属性值

double[,] Get(MDO.DoubleAttr attr, MDOConstr[,] constrs)

检索与特定约束矩阵关联的double属性的值

Parameters:
  • MDO.DoubleAttr attr – 属性

  • MDOConstr[,] constrs – 约束矩阵

Returns:

要检索的属性值

char[,] Get(MDO.CharAttr attr, MDOConstr[,] constrs)

检索与特定约束矩阵关联的char属性的值

Parameters:
  • MDO.CharAttr attr – 属性

  • MDOConstr[,] constrs – 约束矩阵

Returns:

要检索的属性值

string[,] Get(MDO.StringAttr attr, MDOConstr[,] constrs)

检索与特定约束矩阵关联的string属性的值

Parameters:
  • MDO.StringAttr attr – 属性

  • MDOConstr[,] constrs – 约束矩阵

Returns:

要检索的属性值

int[,,] Get(MDO.IntAttr attr, MDOVar[,,] vars)

检索与特定变量三维数组关联的int属性的值

Parameters:
  • MDO.IntAttr attr – 属性

  • MDOVar[,,] vars – 变量三维数组

Returns:

要检索的属性值

double[,,] Get(MDO.DoubleAttr attr, MDOVar[,,] vars)

检索与特定变量三维数组关联的double属性的值

Parameters:
  • MDO.DoubleAttr attr – 属性

  • MDOVar[,,] vars – 变量三维数组

Returns:

要检索的属性值

char[,,] Get(MDO.CharAttr attr, MDOVar[,,] vars)

检索与特定变量三维数组关联的char属性的值

Parameters:
  • MDO.CharAttr attr – 属性

  • MDOVar[,,] vars – 变量三维数组

Returns:

要检索的属性值

int[] Get(MDO.IntAttr attr, MDOVar[] vars)

检索与变量关联的特定属性的值

Parameters:
  • MDO.IntAttr attr – 属性

  • MDOVar[] vars – 关联变量

Returns:

要检索的属性值

string[,,] Get(MDO.StringAttr attr, MDOVar[,,] vars)

检索与特定变量三维数组关联的string属性的值

Parameters:
  • MDO.StringAttr attr – 属性

  • MDOVar[,,] vars – 变量三维数组

Returns:

要检索的属性值

int[,,] Get(MDO.IntAttr attr, MDOConstr[,,] constrs)

检索与特定约束三维数组关联的int属性的值

Parameters:
  • MDO.IntAttr attr – 属性

  • MDOConstr[,,] constrs – 约束三维数组

Returns:

要检索的属性值

double[,,] Get(MDO.DoubleAttr attr, MDOConstr[,,] constrs)

检索与特定约束三维数组关联的double属性的值

Parameters:
  • MDO.DoubleAttr attr – 属性

  • MDOConstr[,,] constrs – 约束三维数组

Returns:

要检索的属性值

char[,,] Get(MDO.CharAttr attr, MDOConstr[,,] constrs)

检索与特定约束三维数组关联的char属性的值

Parameters:
  • MDO.CharAttr attr – 属性

  • MDOConstr[,,] constrs – 约束三维数组

Returns:

要检索的属性值

string[,,] Get(MDO.StringAttr attr, MDOConstr[,,] constrs)

检索与特定约束三维数组关联的string属性的值

Parameters:
  • MDO.StringAttr attr – 属性

  • MDOConstr[,,] constrs – 约束三维数组

Returns:

要检索的属性值

int Get(MDO.IntParam param)

按名称检索int参数的值

Parameters:

MDO.IntParam param – 参数名称

Returns:

要检索的参数的当前值

double Get(MDO.DoubleParam param)

按其名称检索double参数的值

Parameters:

MDO.DoubleParam param – 参数名称

Returns:

要检索的参数的当前值

double[] Get(MDO.DoubleAttr attr, MDOVar[] vars)

检索与变量关联的特定属性的值

Parameters:
  • MDO.DoubleAttr attr – 属性

  • MDOVar[] vars – 关联变量

Returns:

要检索的属性值

char[] Get(MDO.CharAttr attr, MDOVar[] vars)

检索与变量关联的特定属性的值

Parameters:
  • MDO.CharAttr attr – 属性

  • MDOVar[] vars – 关联变量

Returns:

要检索的属性值

string[] Get(MDO.StringAttr attr, MDOVar[] vars)

检索与变量关联的特定属性的值

Parameters:
  • MDO.StringAttr attr – 属性

  • MDOVar[] vars – 关联变量

Returns:

要检索的属性值

int[] Get(MDO.IntAttr attr, MDOConstr[] constrs)

检索与约束关联的特定属性的值

Parameters:
  • MDO.IntAttr attr – 属性

  • MDOConstr[] constrs – 关联约束

Returns:

要检索的属性值

double[] Get(MDO.DoubleAttr attr, MDOConstr[] constrs)

检索与约束关联的特定属性的值。

Parameters:
  • MDO.DoubleAttr attr – 属性

  • MDOConstr[] constrs – 关联约束

Returns:

要检索的属性值

char[] Get(MDO.CharAttr attr, MDOConstr[] constrs)

检索与约束关联的特定属性的值

Parameters:
  • MDO.CharAttr attr – 属性

  • MDOConstr[] constrs – 关联约束

Returns:

要检索的属性值

MDOColumn GetCol(MDOVar var)

从约束矩阵中检索单列的值

Parameters:

MDOVar var – 表示列的变量

Returns:

要检索的约束矩阵列

MDOConstr GetConstrByName(string name)

按约束的名称检索约束

Parameters:

string name – 要检索的约束的名称

Returns:

要检索的约束

MDOConstr[] GetConstrs()

检索该模型中的所有约束

Returns:

该模型中的所有约束

MDOGenConstr.Indicator GetGenConstrIndicator(MDOGenConstr genconstr)

按其对象检索一般约束(General Constraint)。

Parameters:

MDOGenConstr genconstr – 一般约束对象。

Returns:

一般约束详细数据结构,有5个字段:

  1. binVar: Indicator约束的二进制变量。

  2. binVal: Indicator约束生效时的二进制值。

  3. expr: Indicator约束的线性表达式。

  4. sense: Indicator约束的约束比较符。

  5. rhs: Indicator约束的右侧值。

MDOGenConstr[] GetGenConstrs()

检索该模型中的所有一般约束(General Constraint)

Returns:

该模型中的所有一般约束

MDOExpr GetObjective()

检索该模型的目标函数

Returns:

目标函数

MDOPsdConstr[] GetPsdConstrs()

检索该模型中的所有PSD约束

Returns:

该模型中的所有PSD约束

MDOPsdVar[] GetPsdVars()

检索该模型中的所有PSD变量

Returns:

该模型中的所有PSD变量

MDOLinExpr GetRow(MDOConstr constr)

从约束矩阵中通过约束检索行

Parameters:

MDOConstr constr – 要检索的约束

Returns:

要检索的约束矩阵行

MDOSOS.Value GetSOS(MDOSOS sos)

检索该SOS约束包含的变量以及系数。

Parameters:

MDOSOS sos – [in] 被查询的SOS约束

Returns:

查询的SOS约束的值。它包含3个字段:

  • SOS的类型 (MDO.SOS_TYPE1 或 MDO.SOS_TYPE2).

    • MDO_SOS_TYPE1(1)

      最多只能有一个变量取非0值。

    • MDO_SOS_TYPE2(2)

      最多可以有两个连续的变量取非0值。

  • SOS包含的变量

  • 变量对应的权重

MDOSOS[] GetSOSs()

检索当前model里所有的SOS约束

Returns:

返回模型内所有的SOS约束列表

MDOVar GetVarByName(string name)

按名称检索变量

Parameters:

string name – 要检索的变量的名称

Returns:

变量

MDOVar[] GetVars()

检索该模型中的所有变量

Returns:

该模型中的所有变量

MDOModel(MDOEnv env)

构建和输入环境关联的模型

Parameters:

MDOEnv env – 关联环境

MDOModel(MDOEnv env, string filename)

从文件中读取已有的信息,并构建和输入的环境相关联的模型

Parameters:
  • MDOEnv env – 关联环境

  • string filename – 要从中读取模型的文件名。文件格式和压缩类型应在filename以后缀显示。有效的文件格式包括.lp,.mps,.qps,.dat-s,支持的压缩类型包括.gz和.bz2。

MDOModel(MDOModel model)

从另一个现有的模型拷贝创建一个新模型

Parameters:

MDOModel model – 需要被复制的现有模型

void Optimize()

开始优化模型

void Read(string filename)

将数据从文件加载到现有模型

Parameters:

string filename – 存储模型的文件的路径。请注意,文件格式及其压缩类型 (可选) 在文件名后缀中编码。有效的后缀为:.prm,.mst,可选的压缩类型为.gz或.bz2。

void Remove(MDOVar v)

从该模型中删除变量

Parameters:

MDOVar v – 要删除的变量

void Remove(MDOConstr c)

从该模型中删除约束

Parameters:

MDOConstr c – 要移除的约束

void Remove(MDOSOS sos)

从该模型中删除SOS约束

Parameters:

MDOSOS sos – 要移除的SOS约束

void Remove(MDOGenConstr genconstr)

从该模型中删除一般约束(General Constraint)

Parameters:

MDOGenConstr genconstr – 要移除的一般约束

void Reset(int clearall)

将模型重置为未求解状态,丢弃先前计算的任何解

Parameters:

int clearall – 是否清除所有信息而不是只清除解决方案。1表示是,0表示仅清除解决方案。

void Set(MDO.IntParam param, int value)

设置int参数的值。

Parameters:
  • MDO.IntParam param – 参数名称

  • int value – 参数的新值

void Set(MDO.DoubleParam param, double value)

设置double参数的值

Parameters:
  • MDO.DoubleParam param – 参数名称

  • double value – 参数的新值

void Set(MDO.StringAttr attr, MDOVar[] vars, string[] values)

设置和指定变量关联的特定string属性的值

Parameters:
  • MDO.StringAttr attr – 属性

  • MDOVar[] vars – 变量数组

  • string[] values – 新值数组

void Set(MDO.IntAttr attr, MDOConstr[] constrs, int[] values)

设置和指定约束关联的特定int属性的值

Parameters:
  • MDO.IntAttr attr – 属性

  • MDOConstr[] constrs – 关联约束

  • int[] values – 属性的新值

void Set(MDO.DoubleAttr attr, MDOConstr[] constrs, double[] val)

设置和指定约束关联的特定double属性的值

Parameters:
  • MDO.DoubleAttr attr – 属性

  • MDOConstr[] constrs – 关联约束

  • double[] val – 属性的新值

void Set(MDO.CharAttr attr, MDOConstr[] constrs, char[] values)

设置和指定约束关联的特定char属性的值

Parameters:
  • MDO.CharAttr attr – 属性

  • MDOConstr[] constrs – 关联约束

  • char[] values – 属性的新值

void Set(MDO.StringAttr attr, MDOConstr[] xconstrs, string[] values)

设置和指定约束关联的特定string属性的值

Parameters:
  • MDO.StringAttr attr – 属性

  • MDOConstr[] xconstrs – 关联约束

  • string[] values – 属性的新值

void Set(MDO.IntAttr attr, MDOVar[] vars, int[] values, int start, int len)

设置和指定变量关联的特定int属性的值

Parameters:
  • MDO.IntAttr attr – 属性

  • MDOVar[] vars – 变量数组,部分为关联变量

  • int[] values – 值数组,部分为属性新值

  • int start – 数组的起始索引

  • int len – 要设置的属性的数量

void Set(MDO.DoubleAttr attr, MDOVar[] vars, double[] values, int start, int len)

设置和指定变量关联的特定double属性的值

Parameters:
  • MDO.DoubleAttr attr – 属性

  • MDOVar[] vars – 变量数组,部分为关联变量

  • double[] values – 值数组,部分为属性新值

  • int start – 数组的起始索引

  • int len – 要设置的属性的数量

void Set(MDO.CharAttr attr, MDOVar[] vars, char[] values, int start, int len)

设置和指定变量关联的特定char属性的值

Parameters:
  • MDO.CharAttr attr – 属性

  • MDOVar[] vars – 变量数组,部分为关联变量

  • char[] values – 值数组,部分为属性新值

  • int start – 数组的起始索引

  • int len – 要设置的属性的数量

void Set(MDO.StringAttr attr, MDOVar[] vars, string[] values, int start, int len)

设置和指定变量关联的特定string属性的值

Parameters:
  • MDO.StringAttr attr – 属性

  • MDOVar[] vars – 变量数组,部分为关联变量

  • string[] values – 值数组,部分为属性新值

  • int start – 数组的起始索引

  • int len – 要设置的属性的数量

void Set(MDO.IntAttr attr, MDOConstr[] constrs, int[] values, int start, int len)

设置和指定约束关联的特定int属性的值

Parameters:
  • MDO.IntAttr attr – 属性

  • MDOConstr[] constrs – 约束数组,部分为关联约束

  • int[] values – 值数组,部分为属性新值

  • int start – 数组的起始索引

  • int len – 要设置的属性的数量

void Set(MDO.StringParam param, string value)

设置字符串参数的值

Parameters:
  • MDO.StringParam param – 参数名称

  • string value – 参数的新值

void Set(MDO.DoubleAttr attr, MDOConstr[] constrs, double[] values, int start, int len)

设置和指定约束关联的特定double属性的值

Parameters:
  • MDO.DoubleAttr attr – 属性

  • MDOConstr[] constrs – 约束数组,部分为关联约束

  • double[] values – 值数组,部分为属性新值

  • int start – 数组的起始索引

  • int len – 要设置的属性的数量

void Set(MDO.CharAttr attr, MDOConstr[] constrs, char[] values, int start, int len)

设置和指定约束关联的特定char属性的值

Parameters:
  • MDO.CharAttr attr – 属性

  • MDOConstr[] constrs – 约束数组,部分为关联约束

  • char[] values – 值数组,部分为属性新值

  • int start – 数组的起始索引

  • int len – 要设置的属性的数量

void Set(MDO.StringAttr attr, MDOConstr[] constrs, string[] values, int start, int len)

设置和指定约束关联的特定string属性的值

Parameters:
  • MDO.StringAttr attr – 属性

  • MDOConstr[] constrs – 约束数组,部分为关联约束

  • string[] values – 值数组,部分为属性新值

  • int start – 数组的起始索引

  • int len – 要设置的属性的数量

void Set(MDO.IntAttr attr, MDOVar[,] vars, int[,] values)

设置与特定变量矩阵关联的int属性的值

Parameters:
  • MDO.IntAttr attr – 要修改的属性

  • MDOVar[,] vars – 关联变量矩阵

  • int[,] values – 要设置的属性的新值

void Set(MDO.DoubleAttr attr, MDOVar[,] vars, double[,] values)

设置与特定变量矩阵关联的double属性的值

Parameters:
  • MDO.DoubleAttr attr – 要修改的属性

  • MDOVar[,] vars – 关联变量矩阵

  • double[,] values – 要设置的属性的新值

void Set(MDO.CharAttr attr, MDOVar[,] vars, char[,] values)

设置与特定变量矩阵关联的char属性的值

Parameters:
  • MDO.CharAttr attr – 要修改的属性

  • MDOVar[,] vars – 关联变量矩阵

  • char[,] values – 要设置的属性的新值

void Set(MDO.StringAttr attr, MDOVar[,] vars, string[,] values)

设置与特定变量矩阵关联的string属性的值

Parameters:
  • MDO.StringAttr attr – 要修改的属性

  • MDOVar[,] vars – 关联变量矩阵

  • string[,] values – 要设置的属性的新值

void Set(MDO.IntAttr attr, MDOConstr[,] constrs, int[,] values)

设置与特定约束矩阵关联的int属性的值

Parameters:
  • MDO.IntAttr attr – 要修改的属性

  • MDOConstr[,] constrs – 关联约束矩阵

  • int[,] values – 要设置的属性的新值

void Set(MDO.DoubleAttr attr, MDOConstr[,] constrs, double[,] values)

设置与特定约束矩阵关联的double属性的值

Parameters:
  • MDO.DoubleAttr attr – 要修改的属性

  • MDOConstr[,] constrs – 关联约束矩阵

  • double[,] values – 要设置的属性的新值

void Set(MDO.CharAttr attr, MDOConstr[,] constrs, char[,] values)

设置与特定约束矩阵关联的char属性的值

Parameters:
  • MDO.CharAttr attr – 要修改的属性

  • MDOConstr[,] constrs – 关联约束矩阵

  • char[,] values – 要设置的属性的新值

void Set(MDO.StringAttr attr, MDOConstr[,] constrs, string[,] values)

设置与特定约束矩阵关联的string属性的值

Parameters:
  • MDO.StringAttr attr – 要修改的属性

  • MDOConstr[,] constrs – 关联约束矩阵

  • string[,] values – 要设置的属性的新值

void Set(MDO.IntAttr attr, MDOVar[,,] vars, int[,,] values)

设置与特定约束矩阵关联的int属性的值

Parameters:
  • MDO.IntAttr attr – 要修改的属性

  • MDOVar[,,] vars – 关联变量三维数组

  • int[,,] values – 要设置的属性的新值

void Set(MDO.DoubleAttr attr, MDOVar[,,] vars, double[,,] values)

设置与特定约束矩阵关联的double属性的值

Parameters:
  • MDO.DoubleAttr attr – 要修改的属性

  • MDOVar[,,] vars – 关联变量三维数组

  • double[,,] values – 要设置的属性的新值

void Set(MDO.CharAttr attr, MDOVar[,,] vars, char[,,] values)

设置与特定约束矩阵关联的char属性的值

Parameters:
  • MDO.CharAttr attr – 要修改的属性

  • MDOVar[,,] vars – 关联变量三维数组

  • char[,,] values – 要设置的属性的新值

void Set(MDO.StringAttr attr, MDOVar[,,] vars, string[,,] values)

设置与特定约束矩阵关联的string属性的值

Parameters:
  • MDO.StringAttr attr – 要修改的属性

  • MDOVar[,,] vars – 关联变量三维数组

  • string[,,] values – 要设置的属性的新值

void Set(MDO.IntAttr attr, MDOConstr[,,] constrs, int[,,] values)

设置与特定约束三维数组关联的int属性的值

Parameters:
  • MDO.IntAttr attr – 要修改的属性

  • MDOConstr[,,] constrs – 关联约束三维数组

  • int[,,] values – 要设置的属性的新值

void Set(MDO.DoubleAttr attr, MDOConstr[,,] constrs, double[,,] values)

设置与特定约束三维数组关联的double属性的值

Parameters:
  • MDO.DoubleAttr attr – 要修改的属性

  • MDOConstr[,,] constrs – 关联约束三维数组

  • double[,,] values – 要设置的属性的新值

void Set(MDO.CharAttr attr, MDOConstr[,,] constrs, char[,,] values)

设置与特定约束三维数组关联的char属性的值

Parameters:
  • MDO.CharAttr attr – 要修改的属性

  • MDOConstr[,,] constrs – 关联约束三维数组

  • char[,,] values – 要设置的属性的新值

void Set(MDO.StringAttr attr, MDOConstr[,,] constrs, string[,,] values)

设置与特定约束三维数组关联的string属性的值

Parameters:
  • MDO.StringAttr attr – 要修改的属性

  • MDOConstr[,,] constrs – 关联约束三维数组

  • string[,,] values – 要设置的属性的新值

void Set(MDO.IntAttr attr, int value)

设置int属性的值

Parameters:
  • MDO.IntAttr attr – 属性

  • int value – 新的属性值

void Set(MDO.DoubleAttr attr, double value)

设置double属性的值

Parameters:
  • MDO.DoubleAttr attr – 属性

  • double value – 新的属性值

void Set(MDO.StringAttr attr, string val)

设置字符串属性的值

Parameters:
  • MDO.StringAttr attr – 属性

  • string val – 新的属性值

Set(MDO.IntAttr attr, MDOVar[] vars, int[] values)

设置和指定变量关联的特定属性的值

Parameters:
  • MDO.IntAttr attr – 属性

  • MDOVar[] vars – 关联变量

  • int[] values – 属性的新值

void Set(MDO.DoubleAttr attr, MDOVar[] vars, double[] values)

设置和指定变量关联的特定属性的值

Parameters:
  • MDO.DoubleAttr attr – 属性

  • MDOVar[] vars – 关联变量

  • double[] values – 属性的新值

void Set(MDO.CharAttr attr, MDOVar[] vars, char[] values)

设置和指定变量关联的特定属性的值

Parameters:
  • MDO.CharAttr attr – 属性

  • MDOVar[] vars – 关联变量

  • char[] values – 属性的新值

void SetCallback(MDOCallback? callback)

设置用户定义的回调类对象。

Parameters:

MDOCallback? callback – 用户定义的回调类对象。

void SetObjective(MDOExpr expr, int sense)

设置目标函数

Parameters:
  • MDOExpr expr – 要设置的目标函数

  • int sense – 优化方向。MDO.MAXIMIZE(-1) 指最大化,MDO.MINIMIZE(1) 指最小化,如果输入其他值则不会发生改变当前的优化方向。默认优化方向为MDO_MINIMIZE。

void SetObjective(MDOExpr expr)

设置目标函数

Parameters:

MDOExpr expr – 要设置的目标函数

void Write(string filename)

将模型数据写入文件

Parameters:

string filename – 数据序列化的文件路径。请注意,数据类型及其压缩 类型 (可选) 在文件名后缀中编码。有效的后缀为.lp,.mps,.qps 这些后缀将序列化模型本身。而.sol,.bas,.prm,以及.mst将序列化模型的解,变量的基值,参数设置,以及MIP的初始解到文件。 可选的压缩类型后缀.gz或.bz2。