【发布时间】:2021-02-25 11:49:05
【问题描述】:
我正在使用 pyomo 构建模型,并且正在努力将正确的输入分配给我的一个决策变量。
这是我正在使用的 2 个输入:
ListN 这是我的员工名单
N = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
还有一个字典 EmployeesWE,键是上面列表中的员工 ID,值是包含计划范围内所有周末的元组列表:
EmployeeWE = {'0':[(2, 3),(9, 10),(16, 17),(23, 24)],
'1':[(2, 3),(9, 10),(16, 17),(23, 24)],
'2':[(2, 3),(9, 10),(16, 17),(23, 24)],
'3':[(2, 3),(9, 10),(16, 17),(23, 24)],
'4':[(2, 3),(9, 10),(16, 17),(23, 24)],
'5':[(2, 3),(9, 10),(16, 17),(23, 24)],
'6':[(2, 3),(9, 10),(16, 17),(23, 24)],
'7':[(2, 3),(9, 10),(16, 17),(23, 24)],
'8':[(2, 3),(9, 10),(16, 17),(23, 24)],
'9':[(2, 3),(9, 10),(16, 17),(23, 24)]}
所以(2,3) 是第一个周末,(9,10) 第二个,(16,17) 第三个和(23,24) 最后一个。
决策变量是二元的,如果工人 n 在周末工作,则为 1,否则为 0。 我的代码如下:
from pyomo.environ import *
model = ConcreteModel()
model.weekends = Var(((workers, weekends) for workers in N for weekends in EmployeeWE[workers]), within=Binary, initialize=0)
这里是决策变量打印函数的摘录:
Key : Lower : Value : Upper : Fixed : Stale : Domain
('0', 2, 3) : 0 : 0 : 1 : False : False : Binary
('0', 9, 10) : 0 : 0 : 1 : False : False : Binary
我想要我的元组的索引而不是周末的日子。例如,代替 (2,3) 它将是一个。谢谢
【问题讨论】:
标签: python dictionary indexing tuples pyomo