双机流水作业调度

双机流水作业调度

Description
CodeVS 3008 加工生产调度
洛谷 P1561 爬山

Hint
双机流水作业调度问题,普遍的算法是Johnson算法,这里有几篇文章与其相关:
P1187加工生产调度
最优流水作业调度问题

我们输入一个$d$表:$d_i=(a_i,b_i)$表示编号为i的工件在A车间加工时间与在B车间加工时间
如两篇论文中说,要使总的空闲时间最少:

  1. 就要把在A车间加工时间最短的部件优先加工,这样使得B车间能以最快的速度开始加工;
  2. 把放在B车间加工时间最短的产品放在最后加工,这样使得最后A车间的空闲时间最少

Johnson设计出这样的算法:
我们求出$M_i=min(d_i.a_i,d_i.b_i)$,将M按照由小到大的顺序排序,然后从第一个开始处理

  1. 如果$M_i=a_i$,则将它安排在从头开始的第一个空缺位置
  2. 如果$M_i=b_i$,则将它安排在从尾开始的第一个空缺位置

这样就能满足使空闲最少的要求

关于证明 涉及到一些数学证明,在我给出的第一篇论文中有详细证明可以参照一下

Code



posted @ 2018-04-28 16:33  Nepenthe  阅读(355)  评论(0)    收藏  举报


删边加边,浮生建模