流水线调度问题

基于动态规划思想求解流水作业调度问题python_调度问题

基于动态规划思想求解流水作业调度问题python_调度问题_02


基于动态规划思想求解流水作业调度问题python_调度问题_03

相关概念和定义

基于动态规划思想求解流水作业调度问题python_等待时间_04


F(S)是以时刻进行记录不是任务执行的时间段,所以最大的那个调度S完成的时间是整个调度S完成的时间

基于动态规划思想求解流水作业调度问题python_调度问题_05


基于动态规划思想求解流水作业调度问题python_时间段_06


最优调度是第一个设备无空闲,因为第一个设备从开始进入就直接执行,这个时候第二个设备需要等待有作业的第一个阶段完成才能轮到在这个设备上执行,所以第二个设备应该是空闲时间最小。


基于动态规划思想求解流水作业调度问题python_调度问题_07


对于第一个阶段有为0的操作应该采取什么办法。

基于动态规划思想求解流水作业调度问题python_时间段_08


所有占有第一个设备的作业都运行完的时间h1,和所有占有第二个设备的作业都运行完的时间h2,t=

h2-h1,可以用来代表两台设备所处的状态。 直观上,一个最优调度应使机器M1没有空闲时间,且机器M2的空闲时间最少。在一般情况下,机器M2上会有机器空闲和作业积压2种情况。设全部作业的集合为N={1,2,…,n}。S是N的作业子集。在一般情况下,机器M1开始加工S中作业时,机器M2还在加工其他作业,要等时间t后才可利用。将这种情况下完成S中作业所需的最短时间记为T(S,t)。流水作业调度问题的最优值为T(N,0),其实也就是说不需要等待机器M2直接就可以进行使用

基于动态规划思想求解流水作业调度问题python_时间段_09


上面的❓部分就代表了下面的两种情况:第一种情况t-ai就是多出来的部分再加上bi等于更新后的t;

第二种情况是两个紧接上,直接就把t更新为bi即可。这种max或者min的使用里面用什么式子挺有用的。

基于动态规划思想求解流水作业调度问题python_等待时间_10


基于动态规划思想求解流水作业调度问题python_等待时间_11


设兀是作业集S在机器M2的等待时间为t时的任一最优调度。若在这个调度中,安排在最前面的两个作业分别是i 和j ,即π(1)=I,π(2)=j。

基于动态规划思想求解流水作业调度问题python_时间段_12


基于动态规划思想求解流水作业调度问题python_等待时间_13


基于动态规划思想求解流水作业调度问题python_等待时间_14


基于动态规划思想求解流水作业调度问题python_调度问题_15


基于动态规划思想求解流水作业调度问题python_等待时间_16


bi是每个作业使用第二个设备的完成时间,按照从小到大的排序的话,遇到的bi都所对应的i作业可以放在序列的最后如果有空的话,遇到的ai对应的i作业放在序列的最前面,如果已放入就略过。