影子价格-XPRESS-纸浆

问题描述

我正在尝试使用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",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

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

谢谢!

解决方法

目前,据我所知,PuLP中的XPRESS API并不支持获得影子价格。随时在项目网站https://github.com/coin-or/pulp/issues

中打开问题