python - 如何显示 PuLP 中定义的(原始)线性程序的对偶

标签 python python-3.x linear-programming pulp

关于 Stack overflow 的第一个问题...喜欢这个网站...

我在 Python 上使用 PuLP。基于输入变量、目标函数和约束,我试图查看与初始 LP 问题(原始问题)的最优解相关联的对偶变量/值。我在文档中搜索时遇到问题,我只是想弄清楚。有没有办法用 PuLP 做到这一点?下面的示例代码显示了原始输入。

注意:我将我的问题从要求双重结果编辑为要求双重结果(基于反馈)。

注 2:根据反馈进一步编辑以进行澄清。

import pulp
lpProb = pulp.LpProblem("example", pulp.LpMinimize)
x1 = pulp.LpVariable("x1", 0, None, pulp.LpContinuous)
x2 = pulp.LpVariable("x2", 0, None, pulp.LpContinuous)
x3 = pulp.LpVariable("x3", 0, None, pulp.LpContinuous)
lpProb += 3*x1 + 4*x2 + 2*x3
lpProb += x1 + 2*x2 + x3 >= 42
lpProb += 5*x1 + 7*x2 + 4*x3 >= 68
lpProb.solve()
print(pulp.LpStatus[lpProb.status])
for i in lpProb.variables():
    print("Variable {0} = {1}".format(i.name, i.varValue))
print("Objective function z = {0}".format(pulp.value(lpProb.objective)))

最佳答案

@StuartMitchell 在对该问题的评论中提出了以下建议。它打印每个约束的名称、对偶值和松弛度。

for name, c in list(lpProb.constraints.items()):
    print(name, ":", c, "\t", c.pi, "\t\t", c.slack)

关于python - 如何显示 PuLP 中定义的(原始)线性程序的对偶,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48606094/

相关文章:

python - 选择基于数据库值 Django 检查哪个单选按钮

python - 使用 boost-asio 的 C++ 和 Python 程序之间的客户端服务器

python - 尝试从 PyQt4 QSqlQuery 中提取值

python - 如何在 Django 中从一个 View 重定向到另一个 View

java - 是否有可以从 Hudson/Jenkins 获取工件的 Ant 任务?

python - Pycharm 预期类型 'optional[bytes]' 得到了 'str' 而不是

python - 点击后 tkinter 销毁按钮

python - 和/或约束的混合整数线性规划

python - 在python-Gurobi接口(interface)中添加惰性约束

optimization - 大型线性规划的逼近