[近似算法] 多机调度和装箱问题

性能度量

Def 5 性能比
A A A是优化问题 Π Π Π的一个近似算法,算法 A A A在一个输入实例 I I I上的性能比 R A ( I ) R_A(I) RA(I)被定义为:
R A ( I ) = { A ( I ) O P T ( I )  if  Π  是最小化问题  O P T ( I ) A ( I )  if  Π  是最大化问题  R_{A}(I)=\left\{\begin{array}{l} \frac{A(I)}{O P T(I)} \text { if } \Pi \text { 是最小化问题 } \\ \frac{O P T(I)}{A(I)} \text { if } \Pi \text { 是最大化问题 } \end{array}\right. RA(I)={OPT(I)A(I) if Π 是最小化问题 A(I)OPT(I) if Π 是最大化问题 
此定义统一使近似比(性能比) R A ( I ) ≥ 1 R_A(I)≥1 RA(I)1,越接近1越好, 若 R A ( I ) ≤ ( 1 + ∊ ) R_A(I) ≤(1+∊) RA(I)1+,则称 A A A ( 1 + ∊ ) (1+∊) (1+)-近似算法 (1-近似算法即产生最优解

Def 6 绝对性能比
对于优化问题 Π Π Π,近似算法 A A A的绝对性能比 R A R_A RA R A = i n f { r │ R A ( I ) ≤ r , ∀ I ∈ D } R_A= inf\{ r│R_A(I) ≤r, ∀I∈D \} RA=inf{rRA(I)r,ID}
即: R A R_A RA是性能比上界集合中的下确界(最大下界)

Def 7 渐进性能比
一个优化问题 Π Π Π的近似算法 A A A, 其渐近性能比为:
R A ∞ = inf ⁡ { r ∣ ∃ N ∈ Z + , R A ( I ) ≤ r  for  ∀ I ∈ D Π  with  O P T ( I ) ≥ N } R_{A}^{\infty}=\inf \left\{r \mid \exists N \in Z^{+}, R_{A}(I) \leq r \text { for } \forall I \in D_{\Pi} \text { with } O P T(I) \geq N\right\} RA=inf{rNZ+,RA(I)r for IDΠ with OPT(I)N}
直观解释就是输入实例趋近于无穷大时的性能比收敛到一个确切上界, 这个上界称为渐进性能比.

联系
对于有Scaling性质的问题, 近似算法的绝对性能比和渐近性能比是相同的.
scaling性质指线性变化的输入实例, 会得到相应线性变化的问题的解, 比如0/1背包问题中, 如果利润成比例 N N N增加到 N p i , i = 1 , 2 , . . . , n Np_i, i = 1, 2, ..., n Npi,i=1,2,...,n 其他参数不变, 则最优解 O P T ( I ) OPT(I) OPT(I)和近似解 A ( I ) A(I) A(I)也会相应成 N N N倍增加到 N ∗ O P T ( I ) N*OPT(I) NOPT(I) N ∗ A ( I ) N*A(I) NA(I) (因为装包组合方式不会因为利润都成倍变化而改变, 所以相同的装包组合一定会产生对应倍率的总利润

在这里插入图片描述

再看性能比的定义
R A ( I ) = { A ( I ) O P T ( I )  if  Π  是最小化问题  O P T ( I ) A ( I )  if  Π  是最大化问题  R_{A}(I)=\left\{\begin{array}{l} \frac{A(I)}{O P T(I)} \text { if } \Pi \text { 是最小化问题 } \\ \frac{O P T(I)}{A(I)} \text { if } \Pi \text { 是最大化问题 } \end{array}\right. RA(I)={OPT(I)A(I) if Π 是最小化问题 A(I)OPT(I) if Π 是最大化问题 
既然问题具有scaling性质, 容易得到绝对性能比与输入实例规模无关的结论(分子分母同倍增加或减小不会改变比值), 则只要输入规模足够大使得 O P T ( I ) ≥ N O P T(I) \geq N OPT(I)N, 即可满足渐进性能比定义, 此时性能比就同时是绝对性能比和渐进性能比, 即两个性能比相等.

多机调度问题

考虑简单的多机调度问题:输入n个作业 J 1 , J 2 , … , J n J_1,J_2,…,J_n J1J2Jn,相应的运行时间为 P 1 , P 2 , … , P n P_1,P_2,…,P_n P1P2Pn,设每个 P i P_i Pi是有理数。将n个作业分配到m台同样的机器上,以使得完成时间最短。
完成时间定义为:所有机器上作业运行总时间最长的那一台机器的运行时间。
可行解集合:n个作业被划分为m个子集,一个解的值是所有子集中总运行时间最长的子集的运行时间。该问题即使在m=2时也是NP-hard的

List调度算法(Graham):将n个作业依次以online的方式分配到m台机器中的某一台上,规则是将当前作业分配到当时负载最小的机器上,而机器负载是当前分配给它的所有作业的总的运行时间.
在这里插入图片描述

总体来说证明需要证: (1) 求出上界 (2) 证明紧确
由三个观察出来的不等式联立推出上界表达式
在这里插入图片描述
证明紧确只需要找到一个例子能够使等号成立
在这里插入图片描述

更好的调度是LPT(Longest Processing Time):将作业按其运行时间递减序排序, 然后用List策略调度
在这里插入图片描述

在这里插入图片描述

装箱问题

装箱定义:设有n件物品,每件物品大小 S i ∈ [ 0 , 1 ] ( 1 ≤ i ≤ n ) S_i∈[0,1](1≤i≤n) Si[0,1](1in),按某种策略将其装入大小为1的若干箱子中,使箱子数尽可能小.
在这里插入图片描述

在这里插入图片描述

先排序再装包可以优化渐进性能比, 这里渐进性能比和绝对性能比不一致, (ppt中 R F F D ≥ 3 / 2 R_{FFD} \geq 3/2 RFFD3/2 不准确), 性能比可以为1, 比如(1), 此时次优解就是最优解, 3/2的情况是输入实例为(1/2, 1/3),( 1/3, 1/3, ¼),( ¼)FFD算法需要3个包, 实际最优解为(1/2, 1/4, 1/4), (1/3, 1/3, 1/3) 2个包即可.
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值