8.3.6. MdoExprLinear

class mindoptpy.MdoExprLinear

Bases: mindoptpy.MdoExpr

此对象会实现包含线性约束表达式对象的数据结构,此线性约束表达式对象包含一组系数-变量对。

输入线性约束表达式的典型步骤如下:

  1. 调用 mindoptpy.MdoModel.add_var(),创建一组空变量对象。

  2. 创建空线性表达式对象 mindoptpy.MdoExprLinear()

  3. 使用重载运算符如 + 或成员函数 mindoptpy.MdoExprLinear.add_terms() 输入线性表达式。

Note

  1. 一般来说,这是一个有效期很短的临时对象。

  2. 一般来说,诸如 + 之类的重载运算符效率较低,因此应避免在重复指令中使用。请注意,建立表达式对象最有效的方法是调用 mindoptpy.MdoExprLinear.add_terms()

示例

MdoVar x1 = model.add_var()
MdoVar x3 = model.add_var()
expr1 = 1 * x1
expr1 = expr1 + x2
MdoVar x3 = model.add_var()
expr2 = expr1 + x3

方法

add_constant()

此函数会向表达式对象添加常数项。

add_term()

此函数会添加一个非零项。

add_terms()

此函数会添加一组非零项。

clear()

此函数会从表达式对象中删除所有非零元素。

get_coeff()

在给定变量索引的情况下,此函数会从表达式对象中返回一个非零元素值。

get_constant()

此函数会返回表达式对象中的常数项。

get_size()

此函数会返回存储在表达式对象中的非零元素数量。

get_terms()

此函数会返回存储在列对象中的非零元素。

get_var()

在给定一个变量对象的情况下,此函数会从表达式对象中返回变量对象。

remove_term()

在给定变量索引的情况下,此函数会从表达式对象中删除一个非零元素。

remove_var()

在给定变量对象的情况下,此函数会从表达式对象中删除一个非零元素。

set_constant()

此函数会更改表达式对象中的常数项。

get_dual_value()

此函数会返回与此约束相关的对偶变量。

add_constant(constant: float)

此函数会向表达式对象添加常数项。

Parameters

constant (float) – 待添加的常数项。

add_term(var: mindoptpy.MdoVar, coeff: float)

此函数会添加一个非零项。非零项就是一对变量和系数。

Parameters
  • var (MdoVar) – 与非零项相关的变量对象。

  • coeff (float) – 非零项的系数。

add_terms(vars: Union[list, mindoptpy.MdoVar], coeffs: Union[list, float])

此函数会添加一组非零项。非零项就是一对变量和系数。

Parameters
  • conss (类数组或单个变量对象) – 包含变量对象的数组,或单个变量对象。

  • coeffs (类数组或单个系数) – 包含非零项系数的数组,或单个系数。

clear()

此函数会从表达式对象中删除所有非零元素。

get_coeff(pos: int)

在给定变量索引的情况下,此函数会从表达式对象中返回一个非零元素值。

Parameters

pos (int) – 当前存储在 pos 位置的项。

Returns

非零系数的值。

Return type

浮点型

get_constant()

此函数会返回表达式对象中的常数项。

Returns

表达式对象中的一个常数项。

Return type

浮点型

get_terms()

此函数会返回存储在列对象中的非零元素。

Returns

返回存储在列对象中的非零元素。

Return type

类数组

get_var(pos: int)

在给定变量索引的情况下,此函数会从表达式对象中返回变量对象。

Parameters

pos (int) – 当前存储在 pos 位置的项。

Returns

一个变量对象。

Return type

MdoVar

remove_term(pos: int)

在给定变量索引的情况下,此函数会从表达式对象中删除一个非零元素。

Parameters

pos (int) – 存储在 pos 位置的非零元素。

remove_var(var: mindoptpy.MdoVar)

在给定变量对象的情况下,此函数会从表达式对象中删除一个非零元素。

Parameters

var (MdoVar) – 一个变量对象,其系数将被删除。

Returns

如果指定的系数存在于表达式中并且已被删除,则返回 true。

Return type

bint

set_constant(constant: float)

此函数会更改表达式对象中的常数项。

Parameters

constant (float) – 一个新的常数项。

get_dual_value()

此函数会返回与此约束相关的对偶变量。

Returns

与此约束相关的对偶变量。

Return type

浮点型