You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pyomo调用GLPK求解线性规划未得到预期最优解问题咨询

错误原因

你的代码对决策变量x2的取值域定义错误,直接导致可行域不符合题目要求。

具体错误点

你在定义x2时使用了NonPositiveReals(非正实数域,即强制x2 ≤ 0),但题目明确要求x2 ≥ 0:

# 错误代码行
model.x2 = pyo.Var(within = pyo.NonPositiveReals)

这个错误相当于额外加了一条x2 <= 0的约束,完全锁死了x2取正值的可能。在这个错误的可行域下,x2最大只能取0,代入约束计算得到的最优解就是x1=30、x2=0,对应目标函数值120,和你运行得到的结果完全一致,自然无法得到x2=20的理论最优解。

修正方案

将x2的取值域修改为和x1一致的NonNegativeReals(非负实数域)即可,修正后的代码片段:

model.x2 = pyo.Var(within = pyo.NonNegativeReals)
x2 = model.x2

修改后重新运行求解,就能得到预期的最优结果:目标函数值140,对应x1=20、x2=20。

内容的提问来源于stack exchange,提问作者Marleen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 12:45:41