【问题标题】:use of decision variables in constraint assignments - PuLP在约束分配中使用决策变量 - PuLP
【发布时间】:2017-03-28 01:46:55
【问题描述】:

我正在利用线性规划解决一个特定问题,并试图让自己熟悉 PuLP。我的问题是我的几个约束只包含一些决策变量,我正在尝试找到一种有效的方法来选择它们。

这就是我的意思:

我为我的所有决策变量设置了一个列表。

investments = ["1_t1", "2_t1", "1_t2", "2_t2", "1_t3", "2_t3"]

然后我将这些变量放入字典中。

invmt_vars = LpVariable.dicts("Invmts",investments,lowBound=0,cat='Continuous')

然后我将目标函数设置为这些变量的总和。

prob += lpSum(invmt_vars[i] for i in invmt_vars), 'Sum of all investments'

然后我有像这个例子这样的约束:

prob += 1_t1 + 2_t2 + 3_t2 <= 25

这适用于较少数量的变量,但我最终希望添加数百个变量。有没有办法循环遍历变量字典,以便我只得到我正在寻找的变量,而不必将它们全部输入?

到目前为止,我真的只见过涉及循环遍历整个字典的约束分配,如下所示:

prob += lpSum([ingredient_vars[i] for i in Ingredients]) == 100, "PercentagesSum"

例如,如果我可以简单地将决策变量留在列表中并使用 range 循环,那就太好了。

感谢任何意见。

【问题讨论】:

    标签: python loops dictionary constraints pulp


    【解决方案1】:

    Pulp 利用列表推导的强大功能来执行此操作,请查看 http://www.secnetix.de/olli/Python/list_comprehensions.hawk 中的文档

    【讨论】:

    • 想通了。感谢您为我指明正确的方向。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-02
    • 2021-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多