|
输入:currentBest / /最好的时间表在当前的人口 |
|
输出:/ /改进的时间表 |
|
(1)开始 |
|
(2)考=f(最好的) |
|
(3)最牛逼= currentBest; |
|
(4)Rb⟵maxResource(最牛逼)/ /最后的资源来完成它的工作 |
|
(5)结核病Rb⟵组任务执行的资源 |
|
(6)我= 1大小(Tb) / /考虑每个任务Tb,任务执行的资源的集合Rb |
|
(7)T我=Tb(我]; |
|
(8)R我⟵组足够熟练的资源来执行这个任务我除了Rb |
|
(9)j= 1大小(R我)/ /考虑每个资源 |
|
(10)R我(j]=R我(j)+ {我}/ /重新分配任务我资源R我(j] |
|
(11)Rb=Rb——{我}/ /删除任务我从任务列表Rb |
|
(12)newmakespan =f(最牛逼)/ /考的新计划 |
|
(13)如果newmakespan <考 |
|
(14)考= newmakespan |
|
(15)返回最牛逼;/ /成功的重新分配,返回新的更好的安排 |
|
(16)如果结束 |
|
(17)最牛逼= currentBest;/ /失败的重新分配,重用原来的时间表为下一次迭代 |
|
(18)结束 |
|
(19)结束 |
|
(20)最好的回报 |
|
(21)结束函数 |