字典中的 PuLP 变量定义
PuLP variable definition from a dictionary
我想用 PuLP 声明一组变量,其中包含以下列表的所有可能组合:
month = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
manufacturer = ['China', 'Mexico', 'Taiwan']
demand = ['London', 'Paris', 'Milan']
然后,我将有一个字典(例如)如下:
'1.China.London'
、'1.China.Paris'
、...
我尝试了以下代码,但我不知道如何存储所有组合。
vlbs = {}
for key in month:
for kay in manufacturer:
for eyk in demand:
vlbs = (str(key)+'.'+str(kay)+'.'+str(eyk))
首先,我没有正确地理解字典 vlbs
。之后:
variables = {var: pl.LpVariable(var, lowBound = 0) for var in vlbs}
如何正确解决?
您可以使用元组作为字典键。我认为这使得 filtering/searching 比做一堆字符串连接和拆分更容易。
months = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
manufacturers = ['China', 'Mexico', 'Taiwan']
demands = ['London', 'Paris', 'Milan']
var_dict = {}
for month in months:
for manufacturer in manufacturers:
for demand in demands:
combo = (month, manufacturer, demand)
var_name = '.'.join([str(c) for c in combo])
var_dict[combo] = LpVariable(var_name, lowBound=0)
# add constraint for month 1
model += lpSum([k for k in var_dict if k[0] == 1]) <= 50
我想用 PuLP 声明一组变量,其中包含以下列表的所有可能组合:
month = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
manufacturer = ['China', 'Mexico', 'Taiwan']
demand = ['London', 'Paris', 'Milan']
然后,我将有一个字典(例如)如下:
'1.China.London'
、'1.China.Paris'
、...
我尝试了以下代码,但我不知道如何存储所有组合。
vlbs = {}
for key in month:
for kay in manufacturer:
for eyk in demand:
vlbs = (str(key)+'.'+str(kay)+'.'+str(eyk))
首先,我没有正确地理解字典 vlbs
。之后:
variables = {var: pl.LpVariable(var, lowBound = 0) for var in vlbs}
如何正确解决?
您可以使用元组作为字典键。我认为这使得 filtering/searching 比做一堆字符串连接和拆分更容易。
months = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
manufacturers = ['China', 'Mexico', 'Taiwan']
demands = ['London', 'Paris', 'Milan']
var_dict = {}
for month in months:
for manufacturer in manufacturers:
for demand in demands:
combo = (month, manufacturer, demand)
var_name = '.'.join([str(c) for c in combo])
var_dict[combo] = LpVariable(var_name, lowBound=0)
# add constraint for month 1
model += lpSum([k for k in var_dict if k[0] == 1]) <= 50