基于交换论证的 Johnson 法则证明

问题描述

某工厂有 n n n 件物品需要进行加工,并且每件物品都需要先在 A A A 工厂加工 a i a_i ai 分钟,然后在 B B B 工厂加工 b i b_i bi分钟, A A A B B B 工厂每次分别只能加工一件物品,问你最少需要多少时间能够加工完全部 n n n 件物品

交换论证

假设有 n n n 件待完成事件,当前完成了 k k k 件,所花时间为 T T T,设当前先完成 i i i 事件再完成 j j j 事件的总时间代价为 T + T i , j T + T_{i,j} T+Ti,j,先完成 j j j 事件再完成 i i i 事件的总时间代价为 T + T j , i T + T_{j,i} T+Tj,i,那么若能够找到关于 T i , j < T j , i T_{i,j} < T_{j,i} Ti,j<Tj,i 的满足条件,那么该条件即为贪心法则的完备条件

Johnson 法则

  1. N 1 = { i   ∣   a i < b i } N_1=\{i\ |\ a_i < b_i\} N1={ i  ai<bi} , N 2 = { i   ∣   a i ≥ b i } N_2=\{i\ |\ a_i \geq b_i\} N2={ i  aibi}
  2. N 1 N_1 N1 中作业依照 a i a_i ai 增序排列, N 2 N_2 N2 中作业依 b i b_i bi 减序排列
  3. N 1 N_1 N1 中作业接 N 2 N_2 N2 中作业构成满足 Johnson 法则的最优调度

基于交换论证的 Johnson 法则证明

假设当前已完成了 k k k 件物品的加工,其序列如下:

a 1 , a 2 , a 3 , . . . a k a_1, a_2, a_3, ... a_k a1,a2,a3,...ak
b 1 , b 2 , b 3 , . . . b k b_1, b_2, b_3, ... b_k b1,b2,b3,...bk

定义 A i = ∑ i = 1 i a i A_{i} = \sum_{i=1}^ia_i Ai=i=1iai为工厂 A A A 加工完前 i i i 件物品所花时间, B i = m a x ( A i , B i − 1 ) + b i B_{i}=max(A_i,B_{i-1})+b_{i} Bi=max(Ai,Bi1)+bi 为工厂 B B B 加工完成前 i i i 件物品所花时间,那么此时有 A k = ∑ i = 1 k a i A_{k}=\sum_{i=1}^{k}a_{i} Ak=

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值