使用变量列表和二进制变量进行 Python PulP 优化

问题描述 投票:0回答:1

我正在尝试使用 4 个具有数据列表的变量进行简单的优化。我想要做的就是将前 3 个变量相乘,然后将结果除以第 4 个变量。然后我希望二进制变量为 1 或 0,将其乘以结果以确定“行”是否包含在求和结果中或排除在求和结果中。我唯一的限制是变量 4,它从 1 或 0 求和时不能超过一个数字。

import pulp as pl

x1 = [.1, .8, .2, .15, .6]
x2 = [5000, 8000, 10000, 4500, 2200]
x3 = [.1, .1, .15, .08, .1]
x4 = [5, 3, 8, 10, 2]
x5 = pl.LpVariable('x5', cat=pl.LpBinary)


res = [(x1[i] * x2[i] * x3[i]) / x4[i] for i in range(5)]

test = pl.LpProblem('test_this', pl.LpMaximize)

test += pl.lpSum([res[i] for i in range(len(res))] * x5)

test += pl.lpSum([x4[i] for i in range(5)] * x5) <= 20

test.solve()

print(x5.value())
python optimization binary constraints pulp
1个回答
0
投票

我想通了 - 我必须列出决策变量列表....呃。

© www.soinside.com 2019 - 2024. All rights reserved.