Docstoc

Approximation Algorithms_1_

Document Sample
Approximation Algorithms_1_ Powered By Docstoc
					Approximation Algorithms
 Chapter 9: Bin Packing


       セミナー資料
        2002/09/19
概要 (1/3)
   漸近的な近似アルゴリズム
    – 任意の近似度で解を求められるのが理想.
     • PTAS (Polynomial Time Approximation Scheme): 8章.
    – PTAS ではないが, ほとんど全ての入力に対して
      任意の近似度を達成できる例.
     • 箱詰め (Bin Packing) 問題.
     • 箱の数が 2 のとき, 近似度は 3/2 まで.
概要 (2/3)
   漸近的な近似アルゴリズム
    – PTAS
      • すべての入力に対して任意の近似度εを保証する.
    – 漸近的 (asymptotic) PTAS
      • 十分大きいサイズの入力に対する近似度を保証する.
          PTAS       漸近的 PTAS
                                 PTAS
近似解    傾き (1+ε)    PTAS   PTAS
                          でない
                                        傾き (1+ε’)
                  最適解

                  OPT
概要 (3/3)
   箱詰め (Bin Packing) 問題
    –例
    – First-Fit アルゴリズム.
      • 近似比 2.
    – 3/2-近似アルゴリズムは存在しない.
      • NP 完全問題である集合分割問題を利用する.
    – 漸近的 (asymptotic) PTAS Aε.
      • ε: 箱の大きさの下限, K: 箱の種類数.
      • ε, K が定数のときの厳密解アルゴリズム
      • εが定数のときの近似アルゴリズム
箱詰め問題 (Bin Packing problem)
   入力:
    – 大きさ a1, …, an からなる n 個の品物 (0 < ai ≦ 1).
   目標:
    – この n 個の品物を出来るだけ少ない箱に詰める.
      • 箱の容量は 1.

     品物   0.3     0.2     0.2   0.2   0.2   0.4   0.5



      箱             0.2
                    0.2
            1.0     0.2               0.4
                    0.3                           0.5
                                      0.2
箱詰め問題 (Bin Packing problem)
   入力:
    – 大きさ a1, …, an からなる n 個の品物 (0 < ai ≦ 1).
   目標:
    – この n 個の品物を出来るだけ少ない箱に詰める.
      • 箱の容量は 1.

     品物   0.3     0.2         0.2   0.2   0.2   0.4   0.5



      箱                 0.5               0.4

            1.0                           0.2
                        0.2
                                          0.2
                        0.3               0.2
概要
   箱詰め問題
    –例
    – First-Fit アルゴリズム.
      • 近似比 2.
    – 3/2-近似アルゴリズムは存在しない.
      • NP 完全問題である集合分割問題を利用する.
    – 漸近的 (asymptotic) PTAS Aε.
      • ε: 品物の大きさの下限, K: 品物の種類数.
      • ε, K が定数のときの厳密解アルゴリズム
      • εが定数のときの近似アルゴリズム
First-Fit(先頭一致)アルゴリズム
   品物を 1つずつ箱につめていく.
    – 現在ある箱に詰められないときは, 新たに箱を用
      意する.
                                順番


     品物   0.5     0.3     0.4   0.8    0.2   0.2   0.2



     箱
                    0.3
            1.0
                    0.5               0.4
First-Fit(先頭一致)アルゴリズム
   品物を 1つずつ箱につめていく.
    – 現在ある箱に詰められないときは, 新たに箱を用
      意する.
                                順番


     品物   0.5     0.3     0.4   0.8    0.2   0.2   0.2



     箱
                    0.3
            1.0
                    0.5               0.4
                                                   0.8
First-Fit(先頭一致)アルゴリズム
   品物を 1つずつ箱につめていく.
    – 現在ある箱に詰められないときは, 新たに箱を用
      意する.
                                順番


     品物   0.5     0.3     0.4   0.8    0.2   0.2   0.2



     箱              0.2
                    0.3
            1.0
                    0.5               0.4
                                                   0.8
First-Fit(先頭一致)アルゴリズム
   品物を 1つずつ箱につめていく.
    – 現在ある箱に詰められないときは, 新たに箱を用
      意する.
                                順番


     品物   0.5     0.3     0.4   0.8    0.2   0.2   0.2



     箱              0.2
                                      0.2
                    0.3
            1.0                       0.2
                    0.5               0.4
                                                   0.8
First-Fit は 2OPT (1/2)
   最適解における箱数は OPT.
   First-Fit が m 箱使ったとする.
   このとき, m-1 箱は半分以上埋まっている.
    – 半分以上埋まっていない箱は 2つできない.
      • 2つあるとすると, その2つ目に入っている品物は, First-
        Fit で 1つ目に入れることができる.




                 0.2

     0.4   0.2   0.4
First-Fit は 2OPT (2/2)
   First-Fit が m 箱使ったとする.
   このとき, m-1 箱は半分以上埋まっている.


                                    全部

                                n
                                      m 1
                         OPT   ai 
                               i 1    2
                      2OPT  m 1        のみ
     m, OPT は整数だから.   2OPT  m
概要
   箱詰め問題
    –例
    – First-Fit アルゴリズム.
      • 近似比 2.
    – 3/2-近似アルゴリズムは存在しない.
      • NP 完全問題である集合分割問題を利用する.
    – 漸近的 (asymptotic) PTAS Aε.
      • ε: 品物の大きさの下限, K: 品物の種類数.
      • ε, K が定数のときの厳密解アルゴリズム
      • εが定数のときの近似アルゴリズム
3/2-近似アルゴリズムの不可能性.
   Bin Packing の 3/2-近似アルゴリズム A がある
    と仮定する.
   すると A は, 多項式時間で集合分割問題 (set
    partition problem) を解いてしまう.
    – 集合分割問題は, NP 完全.
    – P ≠ NP に矛盾する.
矛盾の導き方
         多項式時間では解けない問題
           集合分割問題の入力 x
    矛盾


 多項式時間

                         アルゴリズム B




          x は問題の   x は問題の
         条件を満たす. 条件を満たさない.
矛盾の導き方
         多項式時間で解けない問題
          集合分割問題の入力 x
    矛盾
           x から Bin Packing の
              入力への変換
 多項式時間

          3/2-ε近似アルゴリズム         アルゴリズム B

          箱の数 2     箱の数 3 以上


          x は問題の       x は問題の
         条件を満たす.     条件を満たさない.
集合分割問題
   入力:
    – 大きさ a1, …, an からなる n 個の品物.
   質問:
    – この n 個の品物をちょうど半分の大きさにわけ
      られるか否か (yes/no を返す問題).
                                                   大きさを
品物    2.8   2.2     2.2   2.2   2.0   3.6   5.0
                                                   10.0 で割る.
                                                   a   i
                                                             10 .0.
                                                    2
                  2.2
                                3.6
                                2.0
                  5.0                          品物の大きさの和が
                                2.2
                  2.8           2.2           2 (半分が1) になる.
3/2 近似アルゴリズム
    近似比が 3/2-εのアルゴリズム A.
集合分割          Bin Packing       近似解   近似比
問題の答え         におけるOPT
                                       1以上
     等しく分割          2箱
      できる
                    0.5
10    5   5   1.0   0.5
                                      3/2 以上
     等しく分割
      できない      3 箱以上
                                          …
8     7   5   0.8   0.7   0.5
                            近似解から, 集合分割問題の
                               答えがわかる.
概要
   箱詰め問題
    –例
    – First-Fit アルゴリズム.
      • 近似比 2.
    – 3/2-近似アルゴリズムは存在しない.
      • NP 完全問題である集合分割問題を利用する.
    – 漸近的 (asymptotic) PTAS Aε.
      • ε: 品物の大きさの下限, K: 品物の種類数.
      • ε, K が定数のときの厳密解アルゴリズム
      • εが定数のときの近似アルゴリズム
定理 9.3
   [(1+2ε) OPT+1] 箱に詰める方法を多項式時間
    で見つけることができる.
    – ただし, 0<ε<1/2 とする.
      • ε≧ 1/2 なら, First-Fit を使えば十分.
        – この定理での上限が (2OPT+1) 以上になるため.
    – OPT=2 なら 3箱必要.
      • 3/2 近似アルゴリズムの不可能性と矛盾しない.
    – OPT=1,000 なら, 1,001 箱だけでよい.
      • 例えば, ε=1/4,000 とおく.
    – [注意]: 必要な計算時間は(多項式時間だが)膨
      大である.
補題 9.4
   制限つき箱詰め問題 (BP1)
    – 品物の大きさの下限 ε が定数.
    – 品物の大きさの種類 K が定数.
   BP1 に対する厳密解を見つける多項式時間ア
    ルゴリズムが存在する.
    – 全解探索を行う.
     • 1つの箱に詰められる品物の組合せ → R 通り.
     • R 通りの箱を n 個並べたときの組合せ → P 通り.
     • P が品物数 n の多項式(O(nR))で抑えられる.
 補題 9.4
      制限つき箱詰め問題 (BP1)
       – 品物の大きさの下限 ε が定数.
       – 品物の大きさの種類 K が定数.


                        品物の種類は K 個.
             入るのは
 1.0
            高々 1/ε 個.   a1    a2
        ε
                        a1    a1   …..   ak   …..
     ε=0.3 なら           a1    a1         a1
  1/ε = 3.33… =3.
入る品物の数の                      詰め方の総数は?
上限を, M で表す.
詰め方の総数(箱の種類数)
    (K +1) 種類の中から, M 個選ぶ.
     – K + 1 = K 種類の品物 + 品物を選ばない(空).
     – (例)K = 3, M = 3.        a a  空1   3
           a1 が選ばれた.
a1                       a3
a1                       a1    6 (= K + M) 個の
a1                               要素のうち,
                            3 (=M) 個の仕切りの
          a1   a2   a3       組合せ個数に一致.
a3
                         詰め方の総数は,  M  K  通り.
                                       
a2                                      M 
                                            =R
a1
                              M, K は定数→ R も定数.
 箱の組合せの総数
    箱の組合せの個数 P
      – 詰め方の総数と同じ考えによる.
      – 箱の総数は品物の数 n で抑えられる.
      – (例)詰め方の総数(箱の種類数) R=3, n = 3.
                 詰め方 b1 が選ばれた.
                                  n  R
                                  
                                   R    (n  R) R
 b1    b1   b1                         
                                           O (n R ).
                    b1   b3   空
                                  全通りの詰め方は,
 b1    b3                          n の多項式で
                                    抑えられる.
             n  R
箱の組合せの総数は, 
                  通り. 全ての詰め方を調べて, 箱の数が
            R 
                 
                         最小となる詰め方を出力する.
nR の具体的な値
   ε: 品物の大きさの下限, K: 品物の種類数.
    – ε=0.3 (M = 3), K=3.
       • R = 6C3=20, 計算時間 O(n20).
    – ε=0.1 (M = 10), K=3.
       • R = 10C3=120, 計算時間 O(n120).
    – ε=0.05 (M = 20), K=3.
       • R = 20C3=1140, 計算時間 O(n1140).
   詰め方の総数 R は 1/ε+KCK なので, ε を変数と
    みなすと, R はおよそ (1/ε)K になる.
                                         1  K
    – これより, 計算時間はおよそ n                             に比例する.
補題 9.5
   制限つき箱詰め問題 (BP2)
    – 品物の大きさの下限 ε が定数.
   BP2 に対する (1+ε) 近似アルゴリズムが存在
    する.
    – 品物の大きさを K 通りだけに揃えてから, 補題
      9.4 の全解探索を適用する.
     • K = 1/ε2, Q = nε2 とおく.
        – Q: 同じ大きさの品物の数(グループ内の品物の数).
品物の大きさの揃え方
   入力を I, 揃えられた入力を J とおく.
   J は, Q 個ずつのグループからなる.
   品物の大きさをグループ内の最大値に揃える.
    Q=3 とする.

      I   0.3    0.2   0.1   0.6   0.7   0.4   0.5
          大きさ順に整列

揃える       0.1    0.2   0.3   0.4   0.5   0.6   0.7

                                                       品物の
                                                      大きさは
     J     0.3   0.3   0.3   0.6   0.6   0.6   0.7
                                                     高々 K 通り.
 品物の詰め方
     補題 9.4 より, 多項式時間で J に対する最適
      な詰め方を見つけられる.
     J に対する詰め方で I を詰めても, 箱から溢れ
      ることはない.
            J     0.3    0.3   0.3      0.6    0.6    0.6   0.7



0.3   0.3       0.3                                  0.3
                                              0.2
                                      0.1                   近似比
0.6   0.6       0.6     0.7            0.4 0.5 0.6 0.7 (OPT(J) ≦ z OPT(I)
                                     I の大きさに戻しても           の z) は?
  箱数は OPT(J).
                                       箱から溢れない.
OPT(I) の評価式のために..
   J とは別の揃えられた入力を J’ とおく.
   J’ は, Q 個ずつのグループからなる.
   品物の大きさをグループ内の最小値に揃える.
Q=3 とする.

     I   0.3    0.2   0.1   0.6   0.7   0.4   0.5   J’ の品物は I で
         大きさ順に整列                                    対応するものと
                                                     同じか小さい.
                0.2   0.3   0.4   0.5               OPT(J’) ≦ OPT(I)
揃える      0.1                            0.6   0.7




    J’    0.1   0.1   0.1   0.4   0.4   0.4   0.7
OPT(J), OPT(J’) の比較

                        J
                            0.3   0.3   0.3   0.6   0.6   0.6   0.7
   : 大きさを                                                 Q個
揃えたときの基準
                                                    J では除かれた Q 個を
                       JQ 0.3
対応する箱の                            0.3   0.3   0.6     別々の箱に入れる.
大きさは常に                                               OPT(J) ≦ OPT(JQ)+Q
J’Q が大きい.

OPT(JQ) ≦ OPT(J’Q)
                            0.4   0.4   0.4   0.7
                       J’Q
                                                     J’ は J’Q に品物を
           Q個                                           加えている.
  J’ 0.1   0.1   0.1     0.4      0.4   0.4   0.7    OPT(J’Q) ≦ OPT(J’)
 OPT(J), OPT(J’) の比較


OPT(J)                      0.3   0.3   0.3   0.6   0.6   0.6   0.7
≦ OPT(JQ)+Q                                               Q個
                       JQ
≦ OPT(J’Q)+Q
≦ OPT(J’)+Q                 0.3   0.3   0.3   0.6
≦ OPT(I)+Q                                           OPT(J) ≦ OPT(JQ)+Q


 OPT(JQ) ≦ OPT(J’Q)
                            0.4   0.4   0.4   0.7
                       J’Q

           Q個
  J’ 0.1   0.1   0.1     0.4      0.4   0.4   0.7    OPT(J’Q) ≦ OPT(J’)
Q と OPT(I) の関係式
   Q = nε2 と決めたので, Q ≦ nε2 .
   必要な箱数 (OPT(I)) は, nε より大きい.
      – 品物は常に ε より大きい.
      – 全体の大きさは nεよりも大きい. (n: 品物数)
      – 箱数は, 全体の大きさよりも大きい.
   よって, Q ≦ nε2 = ε (nε) ≦ εOPT(I).
   OPT(J) ≦ OPT(I)+Q ≦ (1+ε) OPT(I).
0.2             I
0.2
0.2         ε   0.2 0.3   0.6   0.2   0.4   0.3   0.6
0.2                                         0.2
0.2                        n                0.2   0.4
                          nε                  OPT(I)
定理 9.3
   [(1+2ε) OPT+1] 箱に詰める方法を多項式時間
    で見つけることができる.
    – ただし, 0<ε<1/2 とする.
      • ε≧ 1/2 なら, First-Fit を使えば十分.
        – ε≧ 1/2 で, この定理での上限が (2OPT+1) 以上になるため.
    – OPT=2 なら 3箱必要.
      • 3/2 近似アルゴリズムの不可能性と矛盾しない.
    – OPT=1,000 なら, 1,001 箱だけでよい.
      • 例えば, ε=1/4,000 とおく.
アルゴリズム Aε

入力
品物 I            補題 9.5 の
       ε以上       手順
        I’                      (1+ε)OPT(I ’)

                                L ≦ (1+ ? )OPT(I)+?

                                        出力
                                        L箱
         ε未満
         I–I’   I ’ の箱詰めに
                    I – I ’を
                First-Fit で追加

                  箱が First-Fit で追加されたか否かで
                       2通りにわけて考える.
 アルゴリズム Aεの評価 (1/2)
     2通りに分けて考える.
      1. I – I’ の追加では箱が増えなかった.
      – L ≦ (1+ε)OPT(I ’) ≦ (1+ε) OPT(I).
        • I は I ’ に品物を追加しているので.
      2. I – I’ の追加で箱が増えた.
      – L-1 個の箱には, εより小さい空きしかない.
                                        n
                               OPT   ai  ( L  1)(1   )
1-ε                                    i 1
                                     全部              のみ

            L-1                OPT
                      式変形をすると,       1  L となる.
                               1 
 アルゴリズム Aεの評価 (2/2)
          1 
1  2       
                   1
                       (1   )(1  2 )  1
         1   1 
                
                   1
                  1 
                              
                        1    2 2  1      
                        
                             1  2   0           1
                                              (0    ).
                       1                            2
から,
              1           1
    1  2       (0    ).
             1          2
 となるので,
       OPT                                   1
  L         1  (1  2 )OPT  1    0    .
       1                                   2

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:6
posted:2/19/2013
language:Unknown
pages:37