我试图在PuLP中为一个成本优化问题制定这个基于复杂矩阵的约束:我有一个vars[(i,j)] for i in TruckTypes for j in Days作为我的决策变量,它只能取非负整数值。我正在尝试实现对active天数的限制。
现在,由于Days被表示为列,任何具有全部零值的列都是inactive日,其他所有列都是active日。有6列代表星期一到星期六。例如,在下面的矩阵中:
1 0 0 1 3 0
0 0 0 1 1 0
2 0 0 1 0 0
0 0 0 1 0 0列2、3和6是inactive,列1、4和5是active。现在,如何为这个决策变量制定一个约束,比如Number of active Days == 3。
任何帮助都将不胜感激。谢谢!!
发布于 2020-09-14 07:52:50
想了一会儿..。我想我已经破解了这个。
ActiveDays = LpVariable.dicts('activedays',Days,0,1,LpBinary)
M=200000
prob += LpSum(mj for J in Days) ==3
+= LpSum(varsi for I in TruckTypes) <= M*mj
https://stackoverflow.com/questions/63879001
复制相似问题