同类机上工件实时到达的在线排序问题是给定 m 台分别具有加工速度S 1 , S 2,···, S m 的同类机器M1,M2,···,Mm 及实时到达的工件序列 L =﹛ J 1 , J 2,···, Jn ﹜ ,目标函数是最小化机器的最大完工时间,本文研究了S1=S2=···=Sm-1=1 , Sm >1 时同类机上工件实时到达的在线排序问题的LS算法,给出并证明了LS算法的最坏性能比。 Online scheduling problem for jobs arriving over time is as follow. We are given m related machines M1,M2,···,Mm with the processing speed of S1,S2,···,Sm , respectively and a job list L=﹛J1,J2,···,Jn﹜ arriving over time. The objective function is to minimize the maximum completion time of all machines. In this paper, LS algorithm is considered for online scheduling problem for jobs arriving over time under the assumption S1=S2=···=Sm-1=1, Sm >1 . The worst performance ratio of the LS algorithm is given and proved.
马丽娜1,2,李荣珩1*
1计算与随机数学教育部重点实验室 湖南师范大学数学与统计学院,湖南 长沙
2沅陵县第一中学,湖南 怀化
收稿日期:2019年10月15日;录用日期:2019年10月29日;发布日期:2019年11月5日
同类机上工件实时到达的在线排序问题是给定m台分别具有加工速度 s 1 , s 2 , ⋯ , s m 的同类机器 M 1 , M 2 , ⋯ , M m 及实时到达的工件序列 L = { J 1 , J 2 , ⋯ , J n } ,目标函数是最小化机器的最大完工时间,本文研究了 s 1 = s 2 = ⋯ = s m − 1 = 1 , s m > 1 时同类机上工件实时到达的在线排序问题的LS算法,给出并证明了LS算法的最坏性能比。
关键词 :排序问题,相关平行机,LS算法,最坏性能比
Copyright © 2019 by author(s) and Hans Publishers Inc.
This work is licensed under the Creative Commons Attribution International License (CC BY).
http://creativecommons.org/licenses/by/4.0/
同类机排序问题是将n个独立工件 J 1 , J 2 , ⋯ , J n 分配到m台具有相同功能的机器 M 1 , M 2 , ⋯ , M m 上加工,每台机器 M i 的加工速度为 s i ( i = 1 , 2 , ⋯ , m ) ,不妨假设 s 1 ≤ s 2 ≤ ⋯ ≤ s m ,每个工件只需在其中一台机器上加工一次就能完工,每台机器每次只能加工一个工件。工件 J 1 , J 2 , ⋯ , J n 之间没有先后的依存关系,
且 J j ( j = 1 , 2 , ⋯ , n ) 的大小为 p j ,工件 J j 安排在机器 M i 上加工时所需的时间为 p j s i ,目标函数是使所有
工件在最早时间内完成加工,也就是使得所有机器中最大完工时间达到最小。该问题由Gonzalez [
给出了LS算法并证明了LS算法具有最坏性能比 2 − 1 m 。LS是指总是安排当前工件在能使这个工件最早
完工的机器上。Cho和Sahni [
为 1 + 5 2 , m ≥ 3 时最坏性能比为 1 + 2 m − 2 2 ,当 s 1 = s 2 = ⋯ = s m − 1 = 1 , s m > 1 , 时最坏性能比为 3 − 4 m + 1 。Berman等 [
度的比值。当 m = 3 时,蔡 [
经典排序问题假设机器开始加工时所有工件都已到达,但实际情况中工件不一定都已到达,所以提出了工件有到达时间的排序问题。有到达时间的在线问题又分为实时到达在线问题和订单到达在线问题。设工件序列 L = { J 1 , J 2 , ⋯ , J n } 中 J j ( j = 1 , 2 , ⋯ , n ) 的到达时间为 r j ,如果 r j ( 1 , 2 , ⋯ , n ) 为任意实数序列,则称其为订单在线排序问题或工件有任意到达时间排序问题 [
我们后面所要引入的符号的的意义如下:
1) Ui表示在 LS 算法下机器 M i ( i = 1 , 2 , ⋯ , m ) 上面的空闲时间总和。
2) rj和pj分别表示工件Jj的到达时间和工件大小。
3) C max OPT ( L ) 表示在OPT算法下机器的最大完工时间。
4) C max LS ( L ) 表示在LS算法下机器的最大完工时间。
5) Hi表示在LS算法下安排最后一个工件Jn之前机器 M i ( i = 1 , 2 , ⋯ , m ) 的完工时间。
6) Fi表示在LS算法下安排完所有的工件后机器 M i ( i = 1 , 2 , ⋯ , m ) 的最后完工时间。
定义1:算法A是一个近似算法, C max A ( L ) 和 C max OPT ( L ) 分别表示在算法A和最优算法下该工件序列的最大完工时间。我们定义
R ( m , A ) = sup L C max A ( L ) C max OPT (L)
为算法A的最坏性能比,其中 L = { J 1 , J 2 , ⋯ , J n } 为任一符合条件的工件序列。
本文后面我们总是假设m台具有相同功能的机器 M 1 , M 2 , ⋯ , M m 的加工速度为 s 1 = s 2 = ⋯ = s m − 1 = 1 ,
LS算法:
设当前工件是 J j ,大小为 p j 及到达时间为 r j ,各个机器当前的完工时间为 L i ( i = 1 , 2 , ⋯ , m ) ,我们将
min { max { L i , r j } + p j , max { L m , r j } + p j s | i = 1 , 2 , ⋯ , m − 1 } = { max { L k , r j } + p j , k < m max { L k , r j } + p j s , k = m (1)
即算法总是安排当前工件 J j 在能使这个工件最早完工的机器上。
如果(1)中有 L k < r j ,则 J j 在机器 M k 上产生空闲,空闲长度为 r j − L k 。下面给出一个实例说明LS算法的应用。设 m = 2 ,
LS算法中每个工件的安排需要找出最早完工的机器,机器台数为m,最多m次可以找出,注意到工件个数为n,所以复杂度为O(mn)。
下面我们分析LS算法的最坏性能比。
对给定的工件序列 L = { J 1 , J 2 , ⋯ , J n } ,我们首先给出下面的基本不等式:
C max OPT ( L ) ≥ max { ∑ j = 1 n p j m + s − 1 , r j + p j s | j = 1 , 2 , ⋯ , n }
引理1:
证明:由基本不等式知有 r i + p i s ≤ C max OPT ( L ) , U i ≤ r n ,所以有 U i ≤ C max OPT ( L ) − p n s 。
定理 2:如果 s 1 = s 2 = ⋯ = s m − 1 = 1 , s m = s > 1 ,则实时在线LS算法有性能比:
C max LS ( L ) C max OPT ( L ) ≤ { 2 , s ≤ m − 1 m − 2 1 + m − 1 m + s − 1 min { 3 , s } , m − 1 m − 2 < s ≤ m − 1 2 + m − 1 m + s − 1 , s > m − 1
证明:我们不妨设Jn的完工时间即为 C max LS ( L ) ,由LS算法,我们有
s H m + p n ≥ s C max LS ( L ) , H i + p n ≥ C max LS ( L ) , i = 1 , 2 , ⋯ , m − 1
所以
( m + s − 1 ) C max LS ( L ) ≤ s H m + p n + ( m − 1 ) ∑ i = 1 m − 1 ( H i + p n ) = ∑ j = 1 n p n + ∑ i = 1 m − 1 U i + s U m + ( m − 1 ) p n ≤ ( m + s − 1 ) C max OPT ( L ) + ( m + s − 1 ) ( C max OPT ( L ) − p n s ) + ( m − 1 ) p n = 2 ( m + s − 1 ) C max OPT ( L ) + s ( m − 1 ) − ( s + m − 1 ) s p n
上面第二个不等式由引理1得。
当 s ( m − 1 ) ≤ s + m − 1 时 ( m + s − 1 ) C max LS ( L ) ≤ 2 ( m + s − 1 ) C max OPT ( L ) 即有:
C max LS ( L ) C max OPT ( L ) ≤ 2
当 s ( m − 1 ) > s + m − 1 时,由于 C max OPT ( L ) > p n s ,所以有
因而得到
C max LS ( L ) C max OPT ( L ) ≤ { 2 , s ≤ m − 1 m − 2 1 + s ( m − 1 ) m + s − 1 , s > m − 1 m − 2 (2)
下面我们假设工件t′是最后一个被 LS 算法安排在机器Mm上加工但在OPT算法下没有安排在Mm上的工件的长度。如果这样的t′不存在,则有 H m ≤ C max OPT ( L ) 。如果Jn在OPT算法下安排在机器Mm上,则有
C max LS ( L ) ≤ H m + p n s ≤ C max OPT ( L ) 。
否则Jn在OPT算法下安排在某一机器 M i ( i ∈ { 1 , 2 , ⋯ , m − 1 } ) 上,这时有 p n ≤ C max OPT ( L ) ,并且
C max LS ( L ) ≤ H m + p n s ≤ C max OPT ( L ) + C max OPT ( L ) s ≤ 2 C max OPT ( L ) 。
现在我们假设存在这样的t′,设 S U C ( t ′ ) 表示工件t′之后在机器Mm上加工的工件总长度。显然 S U C ( t ′ ) ≤ s C max OPT ( L ) 且 t ′ ≤ C max OPT ( L ) 。假设在LS算法下工件t′之后Mm上还有空闲,则在OPT算法下从Mm移走工件t′之后不会改变Mm的完工时间,所以 H m ≤ C max O P T ( L ) 。分别讨论最优算法里Jn安排在机器Mm上与不在机器Mm上,我可以用t′不存在时同样的方法可得
C max LS ( L ) ≤ 2 C max OPT ( L ) 。
假设在LS算法下工件t′之后Mm上没有空闲,由LS算法知
H i + t ′ ≥ H m − S U C ( t ′ ) s , i = 1 , 2 , ⋯ , m − 1 。
如果Jn在OPT算法下安排在机器Mm上,则
U m + S U C ( t ′ ) + p n s ≤ C max OPT ( L ) 。
所以
H i + C max OPT ( L ) ≥ H i + t ′ ≥ H m − S U C ( t ′ ) s = H m + p n s + U m − s U m + S U C ( t ′ ) + p n s ≥ C max LS ( L ) + U m − C max OPT (L)
整理得
C max LS ( L ) ≤ H i − U m + 2 C max OPT ( L ) 。
若Jn在OPT算法下没有安排在Mm上,则有 p n ≤ C max OPT ( L ) 并且有
C max LS ( L ) ≤ H i + p n ≤ H i + C max OPT ( L ) ≤ H i − U m + 2 C max OPT ( L ) , i = 1 , 2 , ⋯ , m − 1 。
所以不管什么情况都有
C max LS ( L ) ≤ H i − U m + 2 C max OPT ( L ) , i = 1 , 2 , ⋯ , m − 1 。
对于Mm有 s C max LS ( L ) ≤ s H m + p n ,所以
C max LS ( L ) C max OPT ( L ) = s C max LS ( L ) + ( m − 1 ) C max LS ( L ) ( m + s − 1 ) C max OPT ( L ) ≤ s H m + p n + ∑ i = 1 m − 1 H i + 2 ( m − 1 ) C max OPT ( L ) − ( m − 1 ) U m ( m + s − 1 ) C max OPT ( L ) = ( s − m + 1 ) U m + ∑ i = 1 m − 1 U i + ∑ j = 1 n p n + 2 ( m − 1 ) C max OPT ( L ) ( m + s − 1 ) C max OPT ( L ) ≤ { ( s − m + 1 ) C max OPT ( L ) + ( m − 1 ) C max OPT ( L ) + ( m + s − 1 ) C max OPT ( L ) + 2 ( m − 1 ) C max OPT ( L ) ( m + s − 1 ) C max OPT ( L ) , s ≥ m − 1 ( m − 1 ) C max OPT ( L ) + ( m + s − 1 ) C max OPT ( L ) + 2 ( m − 1 ) C max OPT ( L ) ( m + s − 1 ) C max OPT ( L ) , s < m − 1 ≤ { 2 + m − 1 m + s − 1 , s > m − 1 1 + 3 ( m − 1 ) m + s − 1 , s ≤ m − 1
结合(2)定理得证。
本文研究了特殊情形下在同类机上工件实时到达的在线排序问题的LS算法,给定m台同类机器 M 1 , M 2 , ⋯ , M m ,机器加工速度假设为
C max LS ( L ) C max OPT ( L ) ≤ { 2 , s ≤ m − 1 m − 2 1 + m − 1 m + s − 1 min { 3 , s } , m − 1 m − 2 < s ≤ m − 1 2 + m − 1 m + s − 1 , s > m − 1
进一步的研究可设计比LS算法具有更好性能比的算法。
本文得到湖南省教育厅重点课题(编号:16A126)资助。
马丽娜,李荣珩. 同类机上工件实时到达在线排序问题Online Scheduling Problem for Jobs Arriving over Time on Related Machines[J]. 运筹与模糊学, 2019, 09(04): 279-284. https://doi.org/10.12677/ORF.2019.94032