8.3.1. MdoCol¶
- class mindoptpy.MdoCol¶
Bases:
object
此对象会实现包含列对象的数据结构,该列对象由一组约束和系数对组成。
将列输入优化模型的典型步骤如下:
创建空列对象
mindoptpy.MdoCol()
。通过调用
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(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
- 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
位置的项。