054最小延迟调度
最小延迟调度问题
最小延迟调度
问题:
客户集合A ,∀i ∈A ,t 为服务时间,d 为
i i
要求完成时间,t , d 为正整数. 一个调度
i i
f : A→N,f (i)为客户i 的开始时间. 求
最大延迟达到最小的调度,即求f 使得
min{max{ ( ) }}
f i +ti −di
f i ∈A
, , , ( ) ( )
∀i j ∈A i ≠j f i +ti ≤f j
f j +t ≤f i
or ( ) j ( )
2
实例:调度1
A = {1, 2, 3, 4, 5}, T = <5, 8, 4, 10, 3>,
D = <10, 12, 15, 11, 20>
调度1:顺序安排
f 1(1)=0,f 1(2)=5,f 1(3)=13,f 1(4)=17,f 1(5)=27
0 5 13 17 27 30
1 2 3 4 5
各任务延迟:0, 1, 2, 16, 10;
最大延迟:16
3
更优的调度2
A = {1, 2, 3, 4, 5}, T = <5, 8, 4, 10, 3>,
D = <10, 12, 15, 11, 20>
调度2 :按截止时间从前到后安排
f 2(1)=0,f 2(2)=15,f 2(3)=23,f 2(4)=5,f 2(5)=27
0 5 15 23 27 30
1 4 2 3 5
各任务延迟:0, 11, 12, 4, 10;
最大延迟:12
4
贪心策略
贪心策略1:按照t 从小到大安排
i
贪心策略2 :按照d −t 从小到大安排
i i
贪心策略3 :按照d 从小到大安排
i
策略1 对某些实例得不到最优解.
反例:t =1, d =100, t =10, d =10
1 1 2 2
策略2 对某些实