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

如何在PuLP中为列表内每个线性规划变量单独设置边界?

PuLP为变量单独设置边界的解决方法

方法一:逐个创建变量后存入字典

直接为每个变量单独定义边界,再统一存入字典,方便后续在规划问题中调用:

from pulp import LpVariable, LpProblem, LpMinimize

mylist = ["x", "y", "z"]
# 逐个定义变量,自定义各自的上下界及类型
x = LpVariable("x", lowBound=5, upBound=10, cat='Continuous')
y = LpVariable("y", lowBound=0, upBound=20, cat='Continuous')
z = LpVariable("z", lowBound=-5, cat='Continuous')  # 仅设置下界,无上界限制

# 把变量存入字典,便于统一管理
vars_dict = {"x": x, "y": y, "z": z}

# 后续将变量加入规划问题(示例)
prob = LpProblem("MyLPProblem", LpMinimize)
prob += vars_dict["x"] + vars_dict["y"] + vars_dict["z"]  # 设置目标函数

方法二:用配置字典+推导式批量生成(适合变量较多的场景)

先把每个变量的边界参数整理成配置字典,再通过字典推导式快速生成变量字典,更高效:

from pulp import LpVariable, LpProblem, LpMinimize

mylist = ["x", "y", "z"]
# 预先定义每个变量的边界配置,键对应变量名,值是LpVariable的参数
var_configs = {
    "x": {"lowBound":5, "upBound":10, "cat":'Continuous'},
    "y": {"lowBound":0, "upBound":20, "cat":'Continuous'},
    "z": {"lowBound":-5, "cat":'Continuous'}
}

# 批量生成变量字典
vars_dict = {name: LpVariable(name, **var_configs[name]) for name in mylist}

# 示例:加入规划问题
prob = LpProblem("MyLPProblem", LpMinimize)
prob += sum(vars_dict.values())  # 目标函数

关于你之前单独创建变量未成功的可能原因

如果单独定义变量后没生效,大概率是变量未被添加到规划问题实例中——只要在目标函数或约束条件中使用该变量,PuLP会自动将其纳入问题;也可以手动通过prob += x的方式明确添加。另外要注意变量名不能重复,否则会覆盖之前的定义。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 10:06:19