0

我正在尝试使用 Pulp 和 XPRESS 求解器获得 LP 问题的影子价格。

使用 CBC 求解器,.pi 命令可以正常工作:

import pulp
my_lp_problem = pulp.LpProblem("My LP Problem", pulp.LpMinimize)
a = pulp.LpVariable("L",lowBound=-10, upBound=10, cat='Continuous')
my_lp_problem += a<= 2
my_lp_problem += a >= -5
my_lp_problem += a
my_lp_problem.solve(pulp.PULP_CBC_CMD())
for name, c in list(my_lp_problem.constraints.items()):
    print(c.pi)

0.0
1.0

但是,使用 XPRESS :

import pulp
my_lp_problem = pulp.LpProblem("My LP Problem", pulp.LpMinimize)
a = pulp.LpVariable("L",lowBound=-10, upBound=10, cat='Continuous')
my_lp_problem += a<= 2
my_lp_problem += a >= -5
my_lp_problem += a
my_lp_problem.solve(pulp.XPRESS())
for name, c in list(my_lp_problem.constraints.items()):
    print(c.pi)

None
None

有谁知道如何解决这个问题?

谢谢!

4

1 回答 1

0

目前,据我所知,PuLP 中的 XPRESS api 不支持获取影子价格。随意在项目站点中打开一个问题:https ://github.com/coin-or/pulp/issues

于 2020-10-07T12:22:47.803 回答