1. 引言
带约定时间的负载平衡问题是一类具有广泛的实际问题。该问题常常发生在生产贸易中,客户与工厂约定一个交货时间d,在d之前交付的商品,客户支付较高的价格,在d之后交付的商品,客户支付较低的价格。工厂为了最大化利润,需要制定生产计划,以使得在约定时间之前交付更多的商品。
对于带约定时间的两台平行机负载平衡问题,Chen等人在文 [1] 中设计了一个竞争比为
的最优在线算法。当所有工件总的加工时间已知时,Chen等人在文 [2] 中设计了一个竞争比为6/5的最优半在线算法。对于带约定时间和等级的两台平行机负载平衡问题,Xiao等人在文 [3] 中设计了三个半在线算法,当已知低等级或高等级工件的加工时间之和时,分别设计了一个竞争比为
的最优半在线算法,当已知低等级与高等级工件的加工时间之和时,设计了一个竞争比为6/5的最优半在线算法。
向量负载平衡问题是把n个l-维向量分配给m台机器加工以使得所有机器、所有维数的最大负载尽可能小。Graham等人在文 [4] 中创造性的工作,使得单维负载均衡问题被广泛的推广。Chekuri等人在文 [5] 首次提出离线多维向量负载平衡问题。当向量维数是任意常数时,Chekuri等人在文 [5] 设计了一个
-近似算法。Meyerson等人在文 [6] 中设计了一个
-近似算法。Im等人在文 [7] 设计了一个
-近似算法。对于向量负载平衡问题,当向量维数l是固定常数时,Chekuri在文 [5] 首次给出多项式时间近似方案,算法的运行时间是
。Bansal等人在文 [8] 设计了一个运行时间为
的
-近似算法。
Li等人在文 [9] 中第一次提出带惩罚费用的向量负载平衡问题,并证明了该问题是NP-hard。他们在多项式时间内设计了两个近似算法。Dai等人在文 [10] 中提出了两台平行机上带惩罚费用的多维任务负载平衡问题,设计了一个3-近似算法;在任务的维数为固定常数的情况下,在任务的维数l为固定常数的情况下,利用动态规划算法得到一个完全多项式时间近似方案;根据随机舍入方法,设计了一个近似算法,算法的近似比为2.54;在多维任务的信息未知时,设计了一个在线算法,在线算法的竞争比为2.618l。
在实际问题中,一项任务可能需要多种资源来完成,因此需要用多维向量描述任务的需求。在本文中,每个多维任务都有一个共同的约定时间,算法需要把每个多维任务调度到一台机器上加工。基于此,本文研究两台平行机上带约定时间的多维任务提前工作量最大化负载平衡问题,该问题记作
。
2. 问题描述及符号说明
两台平行机上带约定时间的多维任务负载平衡问题可以描述为:给定一个实例
,两台平行机构成的集合
,n项任务构成的集合
,一个共同的约定时间d。
是对应于任务
的一个l-维向量。任务
到达后,算法立刻分配给一台机器加工,
表示分配给机器
的任务集。
表示机器
负载向量的最大分量,
对于两台平行机带约定时间的多维任务负载平衡问题,问题的目标是最大化X。
下面给出问题
的一个实例:M1、M2表示两台平行机,表1给出3项任务对应的向量。在这里,任务维数
,约定时间
。根据目标函数的定义,该问题的最优解是把任务J1和J3分配给M1,任务J2分配给M2,最优值目标函数值为8。
Table 1. Example of multidimensional task scheduling with a common due date
表1. 带约定时间的多维负载平衡实例
3.
-在线算法
在这一部分,本文根据实例
,设计了一个辅助实例
。对于实例I,任务
用l-维向量
描述。对于实例
,任务
用1维向量
描述。根据实
例I的目标函数定义,实例
目标函数是最大化
。
在线算法的设计策略如下:我们用EFF-LPT [1] 算法分配实例
中的任务,可得实例
的一个可行解
。根据实例
和I的定义可知,
也是I的一个可行解。对于可行解
,我们分别用
、
表示实例
与I的输出值。
与
则分别表示实例
与I的最优值。
MT-LPT在线算法
Step1:对于任意输入实例I,设计辅助实例
;
Step2:运用EFF-LPT [1] 算法求解实例I,可得实例I的一个可行解
;
Step2.1:任务
到达时,根据
构造
。
Step2.2:
;
如果
,分配
给机器
。
Step2.3:否则,分配
给负载小的机器。
Step3:对于
,分别输出实例I与
的目标值
、
。
定理1对于问题
,在线算法MT-LPT的竞争比为
。
证明:我们由文 [1] 可得,平行机的台数为2时,用MT-LPT求解实例
,则有
(1)
假设
,由实例I目标值的定义,则
(2)
由实例
目标值的定义,则
(3)
联立(2)和(3)式,则有
(4)
接下来,本文用反证法证明
成立。
假设
。
令
表示实例I的最优解。由实例I目标值的定义可知,
这与假设矛盾。因此,则有
(5)
由(1)、(4)、(5)式,则有
(6)
由以上证明可知,对于带约定时间的多维任务负载平衡问题,MT-LPT的竞争比为
。
4. 问题
的动态规划算法
我们设计了一个动态规划算法DY-AL求解问题
。算法思想如下:把n项任务所有的可行解尝试一遍,从而求出
的最优解。下面给出具体的算法步骤和一些符号说明。
是第i列元素为1,其它的元素是0的
维矩阵。我们定义一个新的运算,令
为列向量
每个分量和
的第i列元素对应相乘。
举个例子
。
令
表示加工完前j项任务后所有可能的负载矩阵构成的集合。
DY-AL动态规划算法
Step1:置
;
Step2:当任务
到达时,集合
可由
递推得到,计算方法如下:
;
Step3:对集合
所有的负载矩阵,提取第一列的最大值得到集合
,提取第二列的最大值得到集合
,
表示空间
中负载矩阵的个数。令
,
。最后输出
。
由动态规划算法的步骤可知,问题
的最优解可由DY-AL得到。
5. 问题
的完全多项式时间近似方案
当任务维数为给定常数时,在动态规划的基础上采用舍入取整技术,设计了一个全多项式时间近似方案(FPTAS)。
定理2 当l给定值时,问题
在
时间内存在一个FPTAS。
证明:在这里,令L是MT-LPT处理实例I得到的输出值。由定理1可知,
(7)
根据实例
设计辅助实例
。对于实例I来说,任务
与向量
对应。对于辅助实例
来说,任务
与向量
对应。我们令
,而且令
。由
的定义,我们可以得到
。
假设
是算法DY-AL求解实例
的最优解,则最优值
。
假设实例I的最优解是
,则最优值
。
依据实例
的最优解
调度实例I,则有
下面分析算法的运行时间,由定理2中的(7)式可知,
,所以算法DY-AL求
解实例
时,只计算负载分量不超过
的可行解,而且机器的各负载分量又是
的整数倍,则机器负载最多有
种可能。又因为每个负载矩阵的元素个数为2l,而且任务总个数为n,所以实例
能够在
时间找到最优解。
6. 结论
本文研究了两台平行机上带约定时间的多维任务负载平衡问题,设计了一个在线算法,算法的竞争比为
,然后给出该问题的一个FPTAS。对于带约定时间的多维任务负载平衡问题,以后我们希望设计一个近似算法。
基金项目
楚雄师范学院研究项目(XJYB2004)资助。
NOTES
*通讯作者。