【发布时间】:2021-12-16 06:13:01
【问题描述】:
这里是 Google or-tools 的新用户。我浏览了文档中的作业车间调度示例,并想尝试为分配给机器的作业添加设置时间。如何正确地做到这一点?
首先我为机器创建了一个任务列表
for jobId, job in enumerate(jobsdata):
for taskId, (machine, duration) in enumerate(job):
machinetasks[machine].append(alltasks[jobId, taskId])
我试过了
m = 0
print(machinelist[0])
for i in range(len(machinetasks[m])-1):
task = machinetasks[m][i]
nexttask = machinetasks[m][i+1]
b = model.NewBoolVar("")
model.Add(nexttask.start >= task.end + 1000)).OnlyEnforceIf(b)
但它不起作用。如果我这样做了
m = 0
print(machinelist[0])
for i in range(len(machinetasks[m])-1):
task = machinetasks[m][i]
nexttask = machinetasks[m][i+1]
b = model.NewBoolVar("")
model.Add(nexttask.start >= task.end + 1000)
它会在指定顺序 (i-->j) 的任务之间增加设置时间,但不适用于其他方向 (j-->1)。
感谢您的帮助
【问题讨论】: