富裕的车间安排[无任务,只有设置时间]

问题描述 投票:0回答:1
我需要帮助我的车间调度问题。起初,我认为这很容易实施,因为没有指定顺序的任务。每个工作都是原子。但是我什至努力寻找可以使用的示例代码,因为设置时间取决于上一份作业的文章。人工智能也没有帮助。

SETUP:

工作的截止日期和持续时间和相应的机器组(=机器类型)
  • 相同类型的大型机器
  • A设置矩阵列出了从一台机器上的A t0 Article B中切换所需的额外时间
  • thermentions:

同时每台机器的工作(无重叠) -start + setup_time +持续时间 + =end_date

    due_dates
  • 对象:
  • < end_date
Reduce总体设置时间

示例数据:

    jobs = [ {"MG":"MG1","Job_ID":"Job1", "Articlecode": "A", "due_date":20, "duration":10}, {"MG":"MG1","Job_ID":"Job2", "Articlecode": "B", "due_date":20, "duration":10}, {"MG":"MG2","Job_ID":"Job3", "Articlecode": "C", "due_date":20, "duration":10}, {"MG":"MG1","Job_ID":"Job4", "Articlecode": "A", "due_date":30, "duration":10}, {"MG":"MG1","Job_ID":"Job5", "Articlecode": "B", "due_date":30, "duration":10}, {"MG":"MG2","Job_ID":"Job6", "Articlecode": "C", "due_date":30, "duration":10}, {"MG":"MG1","Job_ID":"Job7", "Articlecode": "A", "due_date":40, "duration":10}, {"MG":"MG1","Job_ID":"Job8", "Articlecode": "B", "due_date":40, "duration":10}, {"MG":"MG2","Job_ID":"Job9", "Articlecode": "C", "due_date":40, "duration":10}, ] machine_groups = {"MG1": ["M1", "M2", "M3"], "MG2": ["M4"]} setup_matrix = { "A": {"A": 0, "B": 3, "C": 5, "D": 7}, "B": {"A": 3, "B": 0, "C": 6, "D": 8}, "C": {"A": 5, "B": 6, "C": 0, "D": 2}, "D": {"A": 1, "B": 1, "C": 1, "D": 0}, }
  • 结果应该像那样,但是在作业之间有额外的设置时间:

M3: Job1: (s:0 d:10 e:10) > Job7: (s:10 d:10 e:20) M1: Job5: (s:0 d:10 e:10) > Job4: (s:10 d:10 e:20) > Job8: (s:20 d:10 e:30) M2: Job2: (s:0 d:10 e:10) M4: Job3: (s:0 d:10 e:10) > Job6: (s:10 d:10 e:20) > Job9: (s:20 d:10 e:30)

您知道任何示例代码,还是可以向我推动正确的方向?我已经看到了电路限制
link

,但是实现对我来说太难了。 thanks已经提前了。

circiele是要走的方式:

请参阅此DOC部分.

和这个带有Transitions的JOBSHOP示例。

or-tools cp-sat
1个回答
0
投票
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.