8.3.1. MdoCol

class mindoptpy.MdoCol

Bases: object

此对象会实现包含列对象的数据结构,该列对象由一组约束和系数对组成。

将列输入优化模型的典型步骤如下:

  1. 创建空列对象 mindoptpy.MdoCol()

  2. 通过调用 mindoptpy.MdoCol.add_terms() 输入非零元素。

可通过调用 mindoptpy.MdoCol.get_coeff() 查询非零元素,以访问关联的约束和系数。

Note

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

示例

from mindoptpy import *

# Create an empty model.
model = MdoModel()
MDO_INFINITY = MdoModel.get_infinity()

# Add variables.
x1 = model.add_var(0, MDO_INFINITY, 1, None, "x1", False)
x2 = model.add_var(0, MDO_INFINITY, 1, None, "x2", False)
x3 = model.add_var(0, 3, 1, None, "x2", False)

# Set/get column object
col1 = MdoCol()
col1.add_term(x2, 1)
col1.add_terms([x3], [2])
col1.get_terms()
col1.get_coeff(0)
col1.get_coeff(1)
col1.get_size()

# Remove
col1.remove_cons((col1.get_cons(1)))
col1.remove_term(0)
col1.clear()
col1.get_size()

方法

add_term()

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

add_terms()

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

clear()

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

get_coeff()

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

get_cons()

此函数会返回列对象中的约束对象。

get_size()

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

get_terms()

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

remove_cons()

在给定约束对象的情况下,此函数会从列对象中删除非零元素。

remove_term()

在给定约束索引的情况下,此函数会从列对象中删除非零元素。

add_term(cons: mindoptpy.MdoCons, coeff: float)

此函数会添加一个非零项。非零项即一对约束和系数。

Parameters
  • cons (MdoCons) – 与非零项关联的约束对象。

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

add_terms(conss: Union[list, mindoptpy.MdoCons], coeffs: Union[list, float])

此函数会添加一组非零项。非零项即一对约束和系数。

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

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

clear()

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

get_coeff(pos: int)

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

Parameters

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

Returns

非零系数的值。

Return type

浮点型

get_cons(pos: int)

此函数会返回列对象中的约束对象。

Parameters

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

Returns

非零系数的对应约束对象。

Return type

MdoCons

get_size()

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

Returns

存储在列对象中的非零元素数量。

Return type

整型

get_terms()

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

Returns

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

Return type

类数组

remove_cons(cons: mindoptpy.MdoCons)

在给定约束对象的情况下,此函数会从列对象中删除非零元素。

Parameters

cons (MdoCons) – 将被删除非零系数的约束对象。

Returns

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

Return type

bint

remove_term(pos: int)

在给定约束索引的情况下,此函数会从列对象中删除非零元素。

Parameters

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