8.3.7. MdoModel

class mindoptpy.MdoModel

Bases: object

此对象会实现包含优化模型的数据结构。

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

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

  2. 指定变量的下界、上界和目标系数。

  3. 创建一个空线性表达式对象 mindoptpy.MdoExprLinear()

  4. 调用 mindoptpy.MdoModel.add_cons(),输入约束。

  5. 调用 mindoptpy.MdoModel.solve_prob(),优化问题。

Attribute
conss_(包含已创建的约束对象的列表.)
vars_

示例

from mindoptpy import *

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

model.set_int_attr("MinSense", 1)
model.set_obj_offset(10.0)

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

# Add constraints
cons1 = model.add_cons( x1 + x2 + 2 * x3 + 3 * x4 == 1.0, "c1")
cons2 = model.add_cons( x1      -     x3 + 6 * x4 >= 1.0, "c2")

# Set/get elements
model.get_elements([cons1], [x1])
model.set_elements([cons1], [x1], [1.0])
model.delete_elements([cons1], [x1])

# Check model
model.get_expr_linear(cons1)
model.get_col(x1)
model.get_cons(1)
model.get_var(1)

# Set parameters
model.set_int_param("Method", 0)
model.set_int_param("NumThreads", 4)
model.set_int_param("Presolve", 0)
model.set_int_param("SPX/MaxIterations", 400)
model.set_int_param("IPM/MaxIterations", 400)

# Solve and check
model.solve_prob()
model.display_results()
model.get_int_attr("HasSolution")
model.get_int_attr("HasPrimalRay")
model.get_real_attr_index("Activity", 0)
num_iters_spx = model.get_int_attr("SPX/NumIters")
print('The problem took ' + str(num_iters_spx) + ' iterations with simplex method.')
print('x4:', x4.get_real_attr("PrimalSoln"))
print('c1:', model.get_cons(0).get_real_attr("DualSoln"))


# Write model and solution
model.write_prob('model.mps')
model.write_prob('model.lp')
model.write_soln("soln.sol")

# Load model from file
model.free_mdl()
model.create_mdl()
model.read_prob('model.mps')

# Set/get objective
model.set_objs([1.0, 2.0])
model.get_objs()
model.set_max_obj_sense()
model.get_int_attr("MinSense")
model.get_obj_offset()
model.is_max_obj_sense()
model.is_min_obj_sense()

# Set/get model attributes
model.set_int_attr("MinSense", 1)
model.get_int_attr("MinSense")
model.get_int_attr("NumVars")
model.get_int_attr("NumConss")
model.set_real_attr("ObjConst", 10.0)
model.get_real_attr("ObjConst")

lhs_array = [0, -1]
model.set_real_attr_array("LHS", 0, lhs_array)
model.get_real_attr_array("LHS", 0, 2)
rhs_array = [10, 20]
model.set_real_attr_array("RHS", 0, rhs_array)
model.get_real_attr_array("RHS", 0, 2)

colname = "x_2"
model.set_str_attr_index("ColName", 1, colname)
model.get_str_attr_index("ColName", 1)
rowname = "c_0"
model.set_str_attr_index("RowName", 0, rowname)
model.get_str_attr_index("RowName", 0)

is_integer_array = [0, 1]
model.set_int_attr_array("IsInteger", 0, is_integer_array)
model.get_int_attr_array("IsInteger", 0, 2)

# Model deletions
delConss = model.get_conss()
model.delete_conss(delConss)
delVars = model.get_vars()
model.delete_vars(delVars)

# Model free
model.free_mdl()

方法

add_cons()

此函数可向模型引入一个新的约束(行)。

add_cons2()

此函数可向模型引入一个新的约束(行)。

add_conss()

此函数可向模型添加一组约束(行)。

add_var()

此函数可向模型引入一个新的变量(列)。

add_vars()

此函数可向模型引入一个新的变量(列)。

create_mdl()

此函数可创建内部模型。

delete_conss()

此函数会从模型中删除一组约束(行)。

delete_elements()

此函数会删除约束矩阵中的所有指定元素值的集合。

delete_all_elements()

此函数会删除约束矩阵中所有元素的值。

delete_all_quadratic_elements()

此函数会删除二次规划的二次项矩阵中的所有二次项的值。

relax_integrality()

该函数会删除模型中所有整数值的要求,并将其转化为连续松弛问题。

delete_vars()

此函数会从模型中删除一组变量(列)。

display_results()

此函数可显示当前求解器结果。

explain_result()

此函数会说明求解器结果代码的详情。

explain_status()

此函数会说明求解器状态代码的详情。

compute_iis()

此函数可计算不可约不可行系统 (IIS)。

free_mdl()

此函数可释放内部模型。

copy_model()

此函数可复制模型。

get_col()

此函数会返回一个列对象,此对象将包含一组约束和系数对。

get_cons()

此函数会返回约束对象。

get_conss()

此函数会返回一个将包含所有约束对象的列表。

get_elements()

此函数会返回约束矩阵中所有指定元素值的集合。

get_expr_linear()

此函数会返回一个线性表达式对象,此对象包含一组变量和系数对。

get_infinity()

此函数可检索无穷值。

get_int_attr()

此函数可检索整数值模型属性的值。

get_int_attr_array()

此函数可检索指定的整数值行/列属性数组的值。

get_int_attr_conss()

此函数可检索指定的整数值行属性数组的值。

get_int_attr_index()

此函数可检索整数值行/列属性的值。

get_int_attr_vars()

此函数可检索指定的整数值列属性数组的值。

get_int_param()

此函数可检索整数值参数的值。

get_obj_offset()

此函数会返回目标偏移量(常数项)。

get_objs()

此函数会返回目标系数的值。

get_real_attr()

此函数可检索实值模型属性的值。

get_real_attr_array()

此函数可检索实值模型属性的值。

get_real_attr_conss()

此函数可检索指定的实值行属性数组的值。

get_real_attr_index()

此函数可检索实值行/列属性的值。

get_real_attr_vars()

此函数可检索指定的实值列属性数组的值。

get_real_param()

此函数可检索实值参数的值。

get_result()

此函数可检索模型结果。

get_status()

此函数可检索求解器状态。

get_str_attr_index()

此函数可检索字符串值行/列属性的值。

get_str_param()

此函数可检索字符串值参数的值。

get_var()

此函数会返回一个变量对象。

get_vars()

此函数会返回一个将包含所有变量对象的列表。

add_sym_mat()

此函数会向模型添加块变量(对称半正定矩阵)。

add_sym_mats()

此函数会向模型添加多个块变量。

replace_sym_mat_objs()

此函数会替换目标函数中指定块变量。

replace_sym_mat_elements()

此函数会替换约束中指定块变量。

get_real_attr_sym_mat()

此函数会检索与指定块变量属性相关联的值。

is_max_obj_sense()

此函数会返回一个标志,此标志可指定目标函数是否拥有最大化指向。

is_min_obj_sense()

此函数会返回一个标志,此标志可指定目标函数是否拥有最小化指向。

load_model()

此函数可载入问题。

read_prob()

此函数会从文件中读取优化问题。

read_task()

此函数会从文件中加载优化模型任务。

retrieve_task()

此函数会查看已提交任务的状态,然后检索相应的优化结果(如有)。

set_elements()

此函数会修改约束矩阵中所有指定元素值的集合。

set_int_attr()

此函数可更改整数值模型属性的值。

set_int_attr_array()

此函数可更改指定的整数值行/列属性数组的值。

set_int_attr_conss()

此函数可更改指定的整数值行属性数组的值。

set_int_attr_index()

此函数可更改整数值行/列属性的值。

set_int_attr_vars()

此函数可更改指定的整数值列属性数组的值。

set_int_param()

此函数可更改整数值参数的值。

set_max_obj_sense()

此函数会将目标函数更改为最大化指向。

set_min_obj_sense()

此函数会将目标函数更改为最小化指向。

set_obj_offset()

此函数会更改目标偏移量(常数项)。

set_objs()

此函数会更改目标系数的值。

set_real_attr()

此函数可更改实值模型属性的值。

set_real_attr_array()

此函数可更改实值模型属性的值。

set_real_attr_conss()

此函数可更改指定的实值行属性数组的值。

set_real_attr_index()

此函数可更改实值行/列属性的值。

set_real_attr_vars()

此函数可更改指定的实值列属性数组的值。

set_real_param()

此函数可更改实值参数的值。

set_str_attr_index()

此函数可更改字符串值行/列属性的值。

set_str_param()

此函数可更改字符串值参数的值。

solve_prob()

此函数可求解已加载的优化问题。

submit_task()

此函数会将优化模型任务提交至远程服务器以供优化。

write_prob()

此函数会向文件写入优化问题。

write_soln()

此函数会向文件写入最优解。

write_task()

此函数会将优化任务写入文件。

add_cons()

此函数可向模型引入一个新的约束(行)。

Parameters
  • lhs (float 或 MdoTempLinear) – 新约束的左侧值,或临时线性对象。

  • rhs (float 或 str) – 新约束的右侧值,或者一个约束名称的字符串。

  • expr (MdoExprLinear) – 包含新线性约束的表达式。默认值为 None

  • name (str) – 包含列名称的字符串对象。默认值为 ""

Returns

已创建的约束对象。

Return type

MdoCons

add_cons2()

此函数可向模型引入一个新的约束(行)。

Parameters
  • temp (MdoTempLinear) – 包含新线性约束的临时对象。

  • name (str) – 包含新变量的名称前缀的字符串对象。默认值为 ""

Returns

已创建的约束对象。

Return type

MdoCons

add_conss()

此函数可向模型添加一组约束(行)。

Parameters
  • generator – 生成器表达式,此表达式每次迭代可产生一个约束。

  • name (str) – 包含新变量的名称前缀的字符串对象。默认值为 "c"。新变量的实际名称将具有以下格式:"c_index",其中 index 是约束索引。

Returns

一个 mindoptpy.MdoTupleList() 对象,此对象包含新的约束作为值,使用其在模型中的检索作为键。

Return type

MdoTupleList

add_var()

此函数可向模型引入一个新的变量(列)。

Parameters
  • lb (float) – 新变量的下界值。默认值为 0.0

  • ub (float) – 新变量的上界值。默认值为 1.E+20

  • obj (float) – 新变量的目标系数。默认值为 0.0

  • col (MdoCol) – 包含非零元素的列对象。默认值为 None

  • name (str) – 包含列名称的字符串对象。默认值为 ""

  • is_integer (bint) – 一个可指定是否为整数变量的布尔标志。默认值为 False

Returns

已创建的变量对象。

Return type

MdoVar

add_vars()

此函数可向模型引入一个新的变量(列)。

Parameters
  • indices – 访问新变量时所用的索引。

  • lb (float) – 新变量的下界值。默认值为 0.0

  • ub (float) – 新变量的上界值。默认值为 1.E+20

  • obj (float) – 新变量的目标系数。默认值为 0.0

  • name (str) – 包含新变量的名称前缀的字符串对象。默认值为 "v"。新变量的实际名称将具有以下格式:"v_index"

  • is_integer (bint) – 一个可指定是否为整数变量的布尔标志。默认值为 False

Returns

一个 mindoptpy.MdoTupleList() 对象,此对象包含新变量作为值,使用已提供的索引作为键。

Return type

MdoTupleList

create_mdl()

此函数会创建内部模型。

Parameters

env – MindOpt 全局环境;可能为 None。

delete_conss()

此函数会从模型中删除一组约束(行)。

Parameters

conss (array-like) – 待删除的约束对象列表。

delete_elements()

此函数会删除约束矩阵中的所有指定元素值的集合。

Parameters
  • conss (array-like) – 包含对约束的引用的列表对象。

  • vars (array-like) – 包含对变量的引用的列表对象。

delete_all_elements()

此函数会删除约束矩阵中所有元素的值。

delete_all_quadratic_elements()

此函数会删除二次规划的二次项矩阵中的所有二次项的值。

delete_vars()

此函数会从模型中删除一组变量(列)。

Parameters

vars (array-like) – 待删除的变量对象列表。

display_results()

此函数可显示当前求解器结果。

explain_result()

此函数会说明求解器结果代码的详情。具体来讲,如果 MindOpt 未能将已加载的问题优化至最佳,用户可使用此函数来填入结果代码的详情。

Parameters

result (int) – 待说明的求解器结果代码。

Returns

包含给定的求解器结果代码的详情的字符串。

Return type

str

explain_status()

此函数会说明求解器状态代码的详情。具体来讲,如果 MindOpt 成功优化已加载的问题,用户可使用此函数填入解的状态。

Parameters

status (int) – 待说明的求解器状态代码。

Returns

包含给定求解器状态代码的详情的字符串。

Return type

str

compute_iis()

此函数会计算至少包含一个 IIS(不可约不可行系统)的子系统。此子系统的基数应该很小。请注意,此问题应是不可行的。

Returns

包含两个列表对象的元组。第一个列表 (resp. second list) 对象将包含 IIS 中涉及的所有约束 (res. variables)。

Return type

A tuple

free_mdl()

此函数可释放内部模型。

get_col()

此函数会返回一个列对象,此对象将包含一组约束和系数对。

Parameters

var (MdoVar) – 变量对象。

Returns

将包含一组约束和系数对的列对象。

Return type

MdoCol

get_cons()

此函数会返回约束对象。

Parameters

i (int) – 行索引。

Returns

一个约束对象。

Return type

MdoCons

get_conss()

此函数会返回一个将包含所有约束对象的列表。

Returns

一个将包含所有约束对象的列表。

Return type

列表

get_elements()

此函数会返回约束矩阵中所有指定元素值的集合。

Parameters
  • conss (array-like) – 包含对约束的引用的列表对象。

  • vars (array-like) – 包含对变量的引用的列表对象。

Returns

包含约束矩阵中所有指定元素的非零值的列表对象。

Return type

类数组

get_expr_linear()

此函数会返回一个线性表达式对象,此对象包含一组变量和系数对。

Parameters

cons (MdoCons) – 一个约束对象。

Returns

包含一组变量和系数对的线性表达式对象。

Return type

MdoExprLinear

static get_infinity()

此函数可检索无穷值。

Returns

无穷值。

Return type

浮点型

get_int_attr()

此函数可检索整数值模型属性的值。

Parameters

att (str) – 整数值模型属性。

Returns

当前值。

Return type

整型

get_int_attr_array()

此函数可检索指定的整数值行/列属性数组的值。

Parameters
  • att (str) – 一个整数值行/列属性。

  • bgn (int) – 待访问的第一个元素的索引。

  • len (int) – 待访问的元素数量。

Returns

一个包含指定的属性数组的当前值的数组。

Return type

类数组

get_int_attr_conss()

此函数可检索指定的整数值行属性数组的值。

Parameters
  • att (str) – 一个整数值行属性。

  • vars (array-like) – 包含待访问的约束的数组。

Returns

一个将包含指定的属性数组的当前值的数组。

Return type

类数组

get_int_attr_index()

此函数可检索整数值行/列属性的值。

Parameters
  • att (str) – 一个整数值行/列属性。

  • idx (int) – 一个索引。

Returns

当前值。

Return type

整型

get_int_attr_vars()

此函数可检索指定的整数值列属性数组的值。

Parameters
  • att (str) – 一个整数值列属性。

  • vars (array-like) – 一个包含待访问变量的数组。

Returns

一个将包含指定的属性数组的当前值的数组。

Return type

类数组

get_int_param()

此函数可检索整数值参数的值。

Parameters

par (str) – 待访问的整数值参数。

Returns

整数值参数的当前值。

Return type

整型

get_obj_offset()

此函数会返回目标偏移量(常数项)。

Returns

目标偏移量(常数项)。

Return type

浮点型

get_objs()

此函数会返回目标系数的值。

Returns

一个包含目标系数当前值的数组。

Return type

类数组

get_real_attr()

此函数可检索实值模型属性的值。

Parameters

att (str) – 一个待访问的实值模型属性。

Returns

实值模型属性的当前值。

Return type

浮点型

get_real_attr_array()

此函数可检索实值模型属性的值。

Parameters
  • att (str) – 一个待访问的实值模型属性。

  • bgn (int) – 待访问的第一个元素的索引。

  • len (int) – 待访问的元素数量。

Returns

一个包含指定的属性数组的当前值的数组。

Return type

类数组

get_real_attr_conss()

此函数可检索指定的实值行属性数组的值。

Parameters
  • att (str) – 一个实值行属性。

  • conss (array-like) – 包含待访问的约束的数组。

Returns

一个将包含指定的属性数组的当前值的数组。

Return type

类数组

get_real_attr_index()

此函数可检索实值行/列属性的值。

Parameters
  • att (str) – 一个待访问的实值行/列属性。

  • idx (int) – 一个索引。

Returns

实值数组属性的当前值。

Return type

浮点型

get_real_attr_vars()

此函数可检索指定的实值列属性数组的值。

Parameters
  • att (str) – 一个实值列属性。

  • vars (array-like) – 一个包含待访问变量的数组。

Returns

一个将包含指定的属性数组的当前值的数组。

Return type

类数组

get_real_param()

此函数可检索实值参数的值。

Parameters

par (str) – 一个待访问的实值参数。

Returns

实值参数的值。

Return type

浮点型

get_result()

此函数可检索模型结果。

Returns

模型结果代码。

Return type

整型

Returns

对模型结果代码的说明。

Return type

str

get_status()

此函数可检索求解器状态。

Return status_code

求解器状态代码。

Return type

整型

Return status_msg

对求解器状态代码的说明。

Return type

str

get_str_attr_index()

此函数可检索字符串值行/列属性的值。

Parameters
  • att (str) – 一个字符串值行/列属性。

  • idx (int) – 一个索引。

Returns

当前值。

Return type

str

get_str_param()

此函数可检索字符串值参数的值。

Parameters

par (str) – 一个待访问的字符串值参数。

Returns

字符串值参数的当前值。

Return type

str

get_var()

此函数会返回一个变量对象。

Parameters

j (int) – 列索引。

Returns

一个变量对象。

Return type

MdoVar

get_vars()

此函数会返回一个将包含所有变量对象的列表。

Returns

一个将包含所有变量对象的列表。

Return type

列表

add_sym_mat()

此函数会向模型添加块变量(对称半正定矩阵)。

Parameters
  • dim_mat (int) – 维数(块变量的行数)。

  • mat_name (str) – 块变量名,默认是 “”。

add_sym_mats()

此函数会向模型添加多个块变量。

Parameters
  • dim_mats (list) – 一个包含每个块变量的维数的列表。

  • mat_names (list) – 一个保存块变量名称的列表。

replace_sym_mat_objs()

此函数会替换目标函数中指定块变量。

Parameters
  • mat_index (int) – 需要替换的块变量索引。

  • mat_row_indices (list) – 一个保存块变量的行索引的列表。

  • mat_col_indices (list) – 一个保存块变量的列索引的列表。

  • mat_values (list) – 一个保存块变量相关联的元素值的列表。

Note

如果 mat_row_indices[e] \(\neq\) mat_col_indices[e],那么为了保证矩阵的对称性, 矩阵 (mat_row_indices[e],mat_col_indices[e]) 及 (mat_col_indices[e],mat_row_indices[e])位置上的值均被改为 mat_values[e]。因此,用户应该只输入块变量的上三角或者下三角部分。

replace_sym_mat_elements()

此函数会替换约束中指定块变量。

Parameters
  • row_index (int) – 约束行索引。

  • mat_index (int) – 块变量索引。

  • mat_row_indices (list) – 一个保存块变量的行索引的列表。

  • mat_col_indices (list) – 一个保存块变量的列索引的列表。

  • mat_values (list) – 一个保存与块变量相关联的元素值的列表。

Note

如果 mat_row_indices[e] \(\neq\) mat_col_indices[e],那么为了保证矩阵的对称性, 矩阵 (mat_row_indices[e],mat_col_indices[e]) 及 (mat_col_indices[e],mat_row_indices[e])位置上的值均被改为 mat_values[e]。因此,用户应该只输入块变量的上三角或者下三角部分。

get_real_attr_sym_mat()

此函数会检索与指定块变量属性相关联的值。

Parameters
  • att (str) – 要访问的实值对称变量属性。

  • mat_index (int) – 块变量索引。

  • mat_row_indices (list) – 一个保存块变量的行索引的列表。

  • mat_col_indices (list) – 一个保存块变量的列索引的列表。

Return

一个保存与指定块变量属性相关联的值的列表。

Return type

list

is_max_obj_sense()

此函数会返回一个标志,此标志可指定目标函数是否拥有最大化指向。

Returns

一个可指定目标函数是否拥有最大化指向的布尔标志。

Return type

bint

is_min_obj_sense()

此函数会返回一个标志,此标志可指定目标函数是否拥有最小化指向。

Returns

一个可指定目标函数是否拥有最小化指向的布尔标志。

Return type

bint

load_model()

此函数可载入问题。

Parameters
  • num_cols (int) – 列数(变量)。

  • num_rows (int) – 行数(约束)。

  • bgn (list) – 一个可定义 CSC(压缩稀疏列)矩阵的起始索引的整数数组。此处,bgn 部分必须包含 num_cols + 1 个元素;因此最后一列的长度为 bgn[num_cols] - bgn[num_cols - 1]

  • indices (list) – 一个可定义 CSC 矩阵中的非零元素列索引的整数数组。

  • values (list) – 一个可定义 CSC 矩阵中的非零元素值的实数数组。

  • lbs (list) – 包含变量下界的实数数组。默认值为 None;此时将使用 0 值作为所有下界的默认值。

  • ubs (list) – 包含变量上界的实数数组。默认值为 None;此时将使用一个无穷值作为所有上界的默认值。

  • objs (list) – 包含线性目标系数的实数数组。默认值为 None;此时将使用 0 值作为所有目标系数的默认值。

  • are_integers (list) – 一个可指定变量是否为整数变量的标志数组。默认值为 None;此时所有变量都将作为连续变量进行处理。

  • obj_const (float) – 目标偏移量。默认值为 0.0

  • is_min (bint) – 一个可指定目标函数是否拥有最小化指向的布尔标志。默认值为 True

  • lhss (list) – 包含约束的下界(LHS 值)的实数数组。可以是 None;此时负无穷值将作为所有下界的默认值。

  • rhss (list) – 包含约束的上界(RHS 值)的实数数组。可以是 None;此时无穷值将作为所有上界的默认值。

  • col_names (list) – 包含列(变量)名称的字符串数组。默认值为 None

  • row_names (list) – 包含行(约束)名称的字符串数组。默认值为 None

Note

此处使用包含列起点 (bgn)、行索引 (indices) 和非零元素 (values) 的标准压缩稀疏列 (CSC) 矩阵来指定约束矩阵。请注意,bgn 部分必须包含 num_cols + 1 个元素,因此,最后一列的长度为 bgn[num_cols] - bgn[num_cols - 1]。

read_prob()

此函数会从文件中读取优化问题。请注意,已输入模型的类型由文件后缀决定。有效后缀为 .mps(.bz2/.gz).lp(.bz2/.gz).dat-s

Parameters

filename (str) – 一个可指定要读取的文件名的字符串数组。

read_task()

此函数会从文件中加载优化模型任务。模型任务文件包括问题数据、参数设置和二进制格式的解。

Parameters
  • filename (str) – 一个可指定要读取的文件名的字符串数组。

  • read_prob (bint) – 一个可指定是否应加载模型的布尔标志。默认值为 True

  • read_param (bint) – 一个可指定是否应加载参数的布尔标志。默认值为 True

  • read_soln (bint) – 一个可指定是否应加载解的布尔标志。默认值为 True

retrieve_task()

此函数会查看已提交任务的状态,然后检索相应的优化结果(如有)。所有可能的状态值包括:

  • “Submitted”

  • “Solving”

  • “Canceled”

  • “Finished”

  • “Failed”

Parameters

job_id (str) – 一个可指定已提交作业的 ID 的字符串。

Returns

已提交任务的状态。

Return type

str

Returns

指定了模型状态的状态代码。

Return type

整型

Returns

一个指定了优化状态的响应代码,即在远程服务器上调用 solve_prob 时的响应代码。

Return type

整型

Returns

一个指定解的可用情况的标志。如果为 True,则用户可以使用 read_task 读取已保存至指定位置的解文件。

Return type

bint

Note

  • 只有在已提交任务处于“Finished”状态时,才会返回优化结果。

  • 必须先指定远程服务器的令牌 ID 和地址,然后再调用此 API 函数。

set_elements()

此函数会修改约束矩阵中所有指定元素值的集合。

Parameters
  • conss (array-like) – 包含对约束的引用的列表对象。

  • vars (array-like) – 包含对变量的引用的列表对象。

  • values (array-like) – 包含约束矩阵中所有指定元素的新非零值的列表对象。

set_quadratic_elements()

此函数会修改二次规划的二次项矩阵中所有指定元素的值

Parameters
  • vars1 (array-like) – 包含对第一批变量的引用的列表对象。

  • vars2 (array-like) – 包含对第二批变量的引用的列表对象。

  • values (array-like) – 包含新的非零值的列表对象。

set_int_attr()

此函数可更改整数值模型属性的值。

Parameters
  • att (str) – 整数值模型属性。

  • val (int) – 一个新值。

set_int_attr_array()

此函数可更改指定的整数值行/列属性数组的值。

Parameters
  • att (str) – 一个整数值行/列属性。

  • bgn (int) – 待访问的第一个元素的索引。

  • vals (array-like) – 一个可存储指定的属性数组的新值的数组。

set_int_attr_conss()

此函数可更改指定的整数值行属性数组的值。

Parameters
  • att (str) – 一个整数值行属性。

  • vars (array-like) – 包含待访问的约束的数组。

  • vals (array-like) – 一个可存储指定的属性数组的新值的数组。

set_int_attr_index()

此函数可更改整数值行/列属性的值。

Parameters
  • att (str) – 一个整数值行/列属性。

  • idx (int) – 一个索引。

  • val (int) – 一个新值。

set_int_attr_vars()

此函数可更改指定的整数值列属性数组的值。

Parameters
  • att (str) – 一个整数值列属性。

  • vars (array-like) – 一个包含待访问变量的数组。

  • vals (array-like) – 一个可存储指定的属性数组的新值的数组。

set_int_param()

此函数可更改整数值参数的值。

Parameters
  • par (str) – 待访问的整数值参数。

  • value (int) – 整数值参数的一个新值。

set_max_obj_sense()

此函数会将目标函数更改为最大化指向。

set_min_obj_sense()

此函数会将目标函数更改为最小化指向。

set_obj_offset()

此函数会更改目标偏移量(常数项)。

Parameters

offset (float) – 新的目标偏移量(常数项)。

set_objs()

此函数会更改目标系数的值。

Parameters

or MdoExprLinear (list) – 一个包含目标系数新值的数组,或 MdoExprLinear 对象。

set_real_attr()

此函数可更改实值模型属性的值。

Parameters
  • att (str) – 一个待访问的实值模型属性。

  • val (float) – 实值模型属性的一个新值。

set_real_attr_array()

此函数可更改实值模型属性的值。

Parameters
  • att (str) – 一个待访问的实值模型属性。

  • bgn (int) – 待访问的第一个元素的索引。

  • val (array-like) – 一个可存储指定的属性数组的新值的数组。

set_real_attr_conss()

此函数可更改指定的实值行属性数组的值。

Parameters
  • att (str) – 一个实值行属性。

  • vars (array-like) – 包含待访问的约束的数组。

  • vals (array-like) – 一个包含指定的属性数组的新值的数组。

set_real_attr_index()

此函数可更改实值行/列属性的值。

Parameters
  • att (str) – 一个待访问的实值行/列属性。

  • idx (int) – 一个索引。

  • val (float) – 一个新值。

set_real_attr_vars()

此函数可更改指定的实值列属性数组的值。

Parameters
  • att (str) – 一个实值列属性。

  • vars (array-like) – 一个包含待访问变量的数组。

  • vals (array-like) – 一个包含指定的属性数组的新值的数组。

set_real_param()

此函数可更改实值参数的值。

Parameters
  • par (str) – 一个待访问的实值参数。

  • value (float) – 实值参数的一个新值。

set_str_attr_index()

此函数可更改字符串值行/列属性的值。

Parameters
  • att (str) – 一个字符串值行/列属性。

  • idx (int) – 一个索引。

  • val (str) – 一个新值。

set_str_param()

此函数可更改字符串值参数的值。

Parameters
  • par (str) – 一个待访问的字符串值参数。

  • value (int) – 字符串值参数的一个新值。

solve_prob()

此函数可求解已加载的优化问题。

submit_task()

此函数会将优化模型任务提交至远程服务器以供优化。模型任务文件包括问题数据、参数设置和二进制格式的解。

Returns

一个可指定已提交作业的 ID 的字符串。用户可使用此作业 ID 查询优化结果。

Return type

str

Note

必须先指定远程服务器的令牌 ID 和地址,然后再调用此 API 函数。

write_prob()

此函数会向文件写入优化问题。请注意,写的优化问题文件类型由文件后缀决定。有效后缀为 .mps ( .bz2/.gz ) 或 .lp ( .bz2/.gz )。

Parameters

filename (str) – 一个可指定输出文件名的字符串数组。

write_soln()

此函数会向文件写入最优解。请注意,最优解的类型由文件后缀决定。有效后缀为 .sol.bas

Parameters

filename (str) – 一个可指定输出文件名的字符串数组。

write_task()

此函数会将优化任务写入文件。模型任务文件包括问题数据、参数设置和二进制格式的解。

Parameters
  • filename (str) – 一个可指定输出文件名的字符串数组。

  • write_prob (bint) – 一个可指定是否应输出模型的布尔标志。默认值为 True

  • write_param (bint) – 一个可指定是否应输出参数的布尔标志。默认值为 True

  • write_soln (bint) – 一个可指定是否应输出解的布尔标志。默认值为 True