问题详解
输入:
n个作业{1,2,3…n}
两台机器(M1和M2)
- 作业i在M1和M2上的处理时间分别是a[i]和b[i]
- 每个作业必须先由M1处理,再由M2处理
输出:
作业调度方案使得完成时间最小
举例说明
现在给出下列输入:
解空间为:
{123,132,213,231,312,321}
例如132,其调度策略如下图所示:
可以看出,总的时间=B【1】+B【3】+B【2】,而B【i】的计算过程如下:
首先计算A[i] = A[i-1]+a[i],比较A[i]与B[i-1]的大小,B[i]=较大者+b[i].(这里的i是作业顺序,例如作业是132输入,则i=1时,是作业1,i=2时,是作业3)
比如Job3,A[2]=A[1]+a[2(Job3的序号是2)]=2+2=4,A[2]与B[1]比较,A[2]=4,B[1]=1,所以B[2]=4+b[2(Job3)]=4+3=7;
解空间树为: