gpt4 book ai didi

python - CPLEX python API 热启动

转载 作者:行者123 更新时间:2023-12-01 01:08:49 27 4
gpt4 key购买 nike

我正在尝试在 CPLEX python API 中实现热启动。

我知道我必须使用以下函数:

set_start(self, col_status, row_status, col_primal, row_primal, col_dual, row_dual)

假设我有五个变量 ["x1", "x2", "x3", "x4", "x5"],我想为它们分配以下值 [0, 1, 0, 0, 1 ] 用于热启动。

我想做这样的事情:

set_start(col_status=[],
row_status=[],
col_primal=["x1", "x2", "x3", "x4", "x5"],
row_primal=[0, 1, 0, 0, 1],
col_dual=[],
row_dual=[])

但在文档中写道:

Each entry of col_primal and row_primal must be a float specifying the starting primal values for the columns and rows, respectively.

我不明白为什么。

在实践中我该如何做到这一点?

最佳答案

set_start 的文档中它还说:

The arguments col_status, col_primal, and col_dual are lists that either have length equal to the number of variables or are empty. If col_status is empty, then row_status must also be empty. If col_primal is empty, then row_primal must also be empty.

例如,我们可以调用set_status,如下所示:

>>> import cplex
>>> c = cplex.Cplex()
>>> indices = c.variables.add(names=["x" + str(i) for i in range(5)])
>>> c.start.set_start(col_status=[],
... row_status=[],
... col_primal=[0., 1., 0., 0., 1],
... row_primal=[],
... col_dual=[],
... row_dual=[])

在示例中,请注意与 ["x1", "x2", "x3", "x4", "x5"] 对应的变量索引是 [0, 1, 2, 3, 4],并且模型中总共有 5 变量。传递给 col_primal 的值还必须与该索引列表相对应(例如,对于索引为 0 的变量,值为 0.0,对于索引为 1 的变量,值为 1.0 等)。

关于python - CPLEX python API 热启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55067864/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com