Docstoc

Approximation Algorithms

Document Sample
Approximation Algorithms Powered By Docstoc
					        Approximation Algorithms
Chapter 14: Rounding Applied to Set Cover



              セミナー資料
               2002/11/12
概要
   Set Cover (集合被覆)
    – 単純な丸め方 (simple rounding)
      • f- 近似アルゴリズム.
        – f: 要素が集合に現れる回数の最大値.
    – 確率的な丸め方 (randomized rounding)
      • O(log n)- 近似アルゴリズム.
        – n: cover される要素の数.

   Weighted Vertex Cover(重みつき頂点被覆)
    – 線形計画法の 0, 1/2, 1 のみの解に基づく方法
      • 2-近似アルゴリズム.
Set Cover
   入力                    集合が選ばれたときのコスト
    – 集合の要素U={a1,…,an},       S1 2   S2 2    S4       S3 2
    – U の部分集合                   a1     a2         1     a3
      S={S1,…,Sm}.
    – 部分集合に対するコスト         S5
                                a4     a5               a6
      関数 c: S→Q+.         4
   出力
    – U の要素をすべて cover
      するよう選んだ S の部
      分集合. ただし, 選んだ集 コスト:2+2+2=6. コスト:2+1+4=7.
      合のコストの和が最小と
      なるようにする.                    コスト:1+4=5.
                                            cover していない
                                             要素があるので
                                              解ではない.
線形不等式による Set Cover の表現
   目的関数                                集合が選ばれたときのコスト
    – 選ばれた集合に対するコ                           S1 2   S2 2    S4       S3 2
      ストの和(最小化)                               a1     a2         1     a3
      
      S S
              c ( S ) xS
                                        S5
   制約                                  4     a4     a5               a6
    – cover の制約
        • 各要素は選ばれた集合の
          うち 1つの中に含まれる.
     
     S :aS
              xS  1        (a  U )
    – 集合選択の制約                          コスト:2+2+2=6. コスト:2+1+4=7.
        • 集合は選ばれるか否かの
                                                          コスト:1+4=5.
          どちらか.
                                                          cover していない
     xS {0,1}             (S  S )                        要素があるので
                                                            解ではない.
線形不等式による Set Cover の表現
   目的関数                                          集合が選ばれたときのコスト
      – 選ばれた集合に対するコ                                   S1 2   S2 2    S4       S3 2
        ストの和(最小化)                                       a1     a2         1     a3
        2 xS1  2 xS 2  2 xS3  1xS 4  4 xS5
                                                  S5
   制約                                            4     a4     a5               a6
      – cover の制約.
    a1 : xS1  xS4  1, a2 : xS2  xS4  1,
    a3 : xS3        1, a4 : xS1  xS5  1,
    a5 : xS2  xS5  1, a6 : xS3  xS5  1.
                                                 コスト:2+2+2=6. コスト:2+1+4=7.
      – 集合選択の制約.
       xS {0,1} ( S  S )                                          コスト:1+4=5.
                                                                    cover していない
                                                                     要素があるので
                                                                      解ではない.
   線形不等式による Set Cover の表現
      目的関数                                            集合が選ばれたときのコスト
                                                           S1 2   S2 2             S3 2
           2 xS1  2 xS 2  2 xS3  1xS 4  4 xS5                         S4
                                                             a1     a2               a3
            2 1  2 1  2 1  1 0  4  0  6.                            1
      制約                                              S5
                                                             a4     a5               a6
           – cover の制約.                                4
a1 : xS1  xS4  1  0, a2 : xS2  xS4  1  0,
a3 : xS3          1,      a4 : xS1  xS5  1  0,
a5 : xS2  xS5  1  0, a6 : xS3  xS5  1  0.
           – 集合選択の制約.                                 コスト:2+2+2=6. コスト:2+1+4=7.
   xS1  1, xS 2  1, xS3  1, xS 4  0, xS5  0.
                                                                         コスト:1+4=5.
                                                                         cover していない
                                                                          要素があるので
                                                                           解ではない.
   線形不等式による Set Cover の表現
      目的関数                                         集合が選ばれたときのコスト
                                                        S1 2   S2 2             S3 2
       2 xS1  2 xS 2  2 xS3  1xS 4  4 xS5                          S4
                                                          a1     a2               a3
        2  0  2  0  2  0  11  4 1  5.                            1
      制約                                           S5
                                                          a4     a5               a6
           – cover の制約.                             4
a1 : xS1  xS4  0  1, a2 : xS2  xS4  0  1,
a3 : xS3         0  1, a4 : xS1  xS5  0  1,
a5 : xS2  xS5  0  1, a6 : xS3  xS5  0  1.
           – 集合選択の制約.                              コスト:2+2+2=6. コスト:2+1+4=7.
  xS1  0, xS 2  0, xS3  0, xS 4  1, xS5  1.
                                                                      コスト:1+4=5.
                                                                      cover していない
                                                                       要素があるので
                                                                        解ではない.
線形緩和 (LP-relaxation)
   制約                        集合が選ばれたときのコスト
    – 集合は選ばれるか否かの                 S1 2   S2 2    S4   S3 2
      どちらか.                         a1     a2     1     a3
     xS {0,1}    (S  S )
                              S5
                                    a4     a5           a6
    – 0 から 1 の値を取る.
                              4
     0  xS  1 ( S  S )
      • Set Cover では, 目的関数
        の性質から上限は除いて
        も構わない.
                             コスト:2+2+2=6. コスト:2+1+4=7.
    – 0 以上の値を取る.                                コスト:1+4=5.
     0  xS   (S  S )                          cover していない
                                                 要素があるので
                                                  解ではない.
丸める (rounding)
   実数値の解を離散値に直すこと.
                  1

                                      閾値により
    1                                丸められた解
                  0
                      x1 x 2 x3 x4
閾値                1
  0 x1 x2 x3 x4
    線形計画法の解                           確率的に
                                     丸められた解
                  0
                      x1 x 2 x3 x4
概要
   Set Cover (集合被覆)
    – 単純な丸め方 (a simple rounding algorithm)
      • f- 近似アルゴリズム.
         – f: 最も高頻度に表れる集合の要素の頻度
    – 確率的な丸め方 (randomized rounding)
      • O(log n)- 近似アルゴリズム.
         – n: 被覆される要素の数.

   Weighted Vertex Cover(重みつき頂点被覆)
    – 0, 1/2, 1 のみの線形計画法の解に基づく方法
      • 2-近似アルゴリズム.
  アルゴリズム 14.1
        A simple rounding algorithm A1
                                f =2. S 2 S 2
          – f: 要素が集合に現れる回数の最大値.
                                       1   2
                                   S4
          – 1. 線形緩和における最適解を求める. 1                                                                              a1       a2

          – 2. xS ≧1/f となる集合 S を選ぶ. S3
                                         a3 S5                                                                 a4       a5
             • xS ≧1/f なら, xS =1 と丸める. 2    3
      線形緩和に                                                   線形緩和に
                                    丸められた解                                                      丸められた解
      おける解                                                    おける解
                              1.0                                                         1.0
0.5                                                         0.5


      xS1 xS 2 xS3 xS 4 xS5         xS1 xS 2 xS3 xS 4 xS5         xS1 xS 2 xS3 xS 4 xS5         xS1 xS 2 xS3 xS 4 xS5
定理 14.2
   A1(アルゴリズム 14.1)は Set Cover に対す
    る f -近似アルゴリズムである.
    – 証明する必要があるのは以下の2つ.
      • A1 の出力は解の条件(全要素をcover)を満たす?
      • A1 の出力のコストは?
定理 14.2 の証明 (1/2)
   A1 の出力は解の条件(全要素をcover)を満
    たす?
    – 任意の要素 a に対して, a を含む集合 S で xS ≧1/f
      となるものが少なくとも1つは存在する.
      • cover の制約から.
    – すべての要素は選ばれている.
      xS の値                   の面積= f (1/f )=1.
          1/f
                            cover の制約から
                               の面積の和が 1 以上.
                a を含む集合 S
                 最大 f 個
                    f
定理 14.2 の証明 (2/2)
   A1 の出力のコスト(COST)は?
    – 線形緩和の解のコストを OPTLP (テキストでは
      OPTf) と書く.
    – 線形緩和の解を xS, 丸めた解を yS と表す.
        • yS ≦ f xS が成り立つ.
            – yS=1 のとき, xS ≧1/f, f xS ≧1=yS.       1                  1
            – yS=0 のとき, xS ≧0, f xS ≧0=yS.
        • よって, COST ≦ f OPTLP ≦f OPT.              1/f                1/f

    COST   c( S ) y s , OPT LP   c( S ) xs .         xS f xS yS         xS f xS yS
             S S                    S S
例 14.3
   辺でつながれた Vi の3   V1   V2   V3
    つの要素が1つの集合.
   各集合のコストを 1 と
    する.
   f = 4.
   最適解 コスト2.
   下の場合, コスト8.                    xS=1.



                                   xS=1/4.
概要
   Set Cover (集合被覆)
    – 単純な丸め方 (simple rounding)
      • f- 近似アルゴリズム.
        – f: 最も高頻度に表れる集合の要素の頻度
    – 確率的な丸め方 (randomized rounding)
      • O(log n)- 近似アルゴリズム.
        – n: 被覆する集合の数.

   Weighted Vertex Cover(重みつき頂点被覆)
    – 0, ½, 1 のみの線形計画法の解に基づく方法
      • 2-近似アルゴリズム.
randomized rounding
   C=φ % C は要素を cover する集合の族
   while (C が 条件 a を満たさない)
    – 後述の方法で出力 C を見つける.
       • この C は, 確率 1/2 以上で条件 a を満たす.
   end-while
    – [条件 a]
       • C は set cover の解になっている.
       • C のコストは OPTLP・4clog n 以下.
         – c はある定数.
    – while の繰返し回数の期待値 T は高々 2.
          1     1     1
    T  1  2   3     2.
          2     4     8
C の見つけ方
     線形緩和の解 xS を求める.
     for i=1 to clog n
      – 確率 xS で S を選び, 選択した集合の族 Ci を作る.
     end-for
     C=∪Ci .
                              C1   C2   C3   C4   C
      線形緩和に
      おける解                    S1   S1   S1   S1   S1
1.0                           S2   S2   S2        S2

                                   S4             S4
      xS1 xS 2 xS3 xS 4 xS5
                                        S5   S5   S5
C の見つけ方
   線形緩和の解 xS を求める.
   for i=1 to clog n
    – 確率 xS で S を選び, 選択した集合の族 Ci を作る.
   end-for
   C=∪Ci .
    – C は set cover でない: 確率 1/4 以下.
    – C のコストは OPTLP 4c log n 以上: 確率 1/4 以下.

                        1/4 以下   1/4 以下

                            1/2 以上
Ci に要素 a が含まれる確率
   下図を例に考える.
   要素 a を含む集合 Si がどれも選ばれない確
    率 P は, P=(1-xS1)(1-xS2)(1-xS3).
     – Cover の制約から, xS1+xS2+xS3≧1.
   このとき P が最大になるのは, xS1=xS2=xS3=1/3
    のとき.
           S1
S3              S2
           a1

      S5
  要素 a が選ばれない確率の最大値
  ある要素が k 個の集合に含まれていたとする.
   P  P2    Pk  d とおく. このとき, 簡単のために,
    1
       k                                  k
g   (1  Pi ) ではなく, log g   log(1  Pi ) を最大化する.
      i 1                               i 1

  d を一旦固定する.
Pk  d  ( P  P2    Pk 1 ) と置き換えて. log g を偏微分する.
            1
 log g     1              1
                                                  Pi 0       d/k
  Pi     1  Pi 1  d  P    Pk 1
                          1

               1      1                        log g          最大
                  
             1  Pi 1  Pk                       log g
                                                           +   0     -
  log g が最大になるとき, Pi=Pk.                          Pi

  これは任意の i について成り立つので, Pi=d/k.
d ≧1 の制約の下では, d=1 のとき g (log g) が最大 ((1-1/k)k) になる.
C が set cover ではない確率
   Ci で要素 a が選ばれない確率は (1-1/k)k 以下.
                      1
        1  1      k
       1     
        k  e
             k
        1 1
       1    .
        k    e


   C で要素 a が選ばれない確率は (1/e)clogn 以下.
    – (1/e)clogn ≦1/(4n) となるように定数 c を選ぶ.
    – c≧5≧ (4/log n)+1 (n ≧ 3).
C が set cover ではない確率
   C で任意の要素が選ばれない確率は 1/4 以下.


a1 が選ばれない a2 が選ばれない
                         n=3
     1/4n 以下   1/4n 以下
                          a3 が選ばれない
          1/4n 以下         a1, a2, a3 のいずれかが
                         選ばれないのは 1/4 以下
C のコスト
                      c log n
Pr(SがCで選ばれる)         i 1
                                Pr(SがCi で選ばれる)

                      c log n  Pr(SがCi で選ばれる)
E[cost(C )]   Pr(SがCで選ばれる)c( S )
           S


          c log n  Pr(SがCi で選ばれる)c( S )
           S


         c log n xS c( S )
                 S

         c log n  OPTLP
マルコフの不等式 (1/2)
   確率変数 X は非負の値をとり, X の平均を μ
    と表す.         P(X=x)
         
        xP( X  x)dx
        x 0
                                                     X

                                         x
         xP( X  x)dx  xP( X  x)dx
        x 0                   x
                         ≧0

        xP≧ε  x)dx
        x
             (X

                                               x=ε
マルコフの不等式 (2/2)
   確率変数 X は非負の値をとり, X の平均を μ
    と表す.
         
        xP( X  x)dx
        x 0
                              
         xP( X  x)dx  xP( X  x)dx
        x 0                   x
                         ≧0

        xP≧ε  x)dx
        x
             (X

             
           P( X  x)dx  P( X   ).               
                                            P( X   )  .
          x
                                                        
cost (C) の値
cost (C) について, マルコフの不等式に代入する.
             X  cost(C ),   E[cost(C )]  c log n  OPTLP ,
P( X   )  .
               4c log n  OPTLP .
                                        
P(cost(C )  OPTLP  4c log n) 
                                   OPTLP  4c log n
              OPTLP  c log n 1
                              .
              OPTLP  4c log n 4
            C のコストが OPTLP4clog n より
              大きくなる確率は 1/4 以下.
   以下の2つが起こる確率はそれぞれ1/4 以下.
    – C が set cover にならない確率,
    – C のコストが c=OPTLP4clog n を超える確率.
   よって, C が set cover でそのコストが c 以下になる
    確率は 1/2 以上.


               1/4 以下   1/4 以下

                   1/2 以上
概要
   Set Cover (集合被覆)
    – 単純な丸め方 (simple rounding)
      • f- 近似アルゴリズム.
        – f: 最も高頻度に表れる集合の要素の頻度
    – 確率的な丸め方 (randomized rounding)
      • O(log n)- 近似アルゴリズム.
        – n: 被覆する集合の数.

   Weighted Vertex Cover(重みつき頂点被覆)
    – 0, ½, 1 のみの線形計画法の解に基づく方法
      • 2-近似アルゴリズム.
weighted vertex cover
   weighted vertex cover
    – 入力:各頂点に重みが与えられたグラフ G=(V,E).
    – 出力: A ⊆V.
         • 任意の辺 (u,v)∈E に対して u∈A または v∈A .
         • v∈A の重みの和が最小.



    4         1       1     4       1        1
    v1        v2      v3    v1      v2       v3


    v4        v5      v6    v4      v5       v6
    5         2       5     5       2        5
weighted vertex cover
   weighted vertex cover
    – 入力:各頂点に重みが与えられたグラフ G=(V,E).
    – 出力: A ⊆V.
         • 任意の辺 (u,v)∈E に対して u∈A または v∈A .
         • v∈A の重みの和が最小.



    4          1         1    4         1         1
    v1    a1   v2   a2   v3   v1   a1   v2   a2   v3
    a3                   a4   a3                  a4
    v4    a5   v5   a6   v6   v4   a5   v5   a6   v6
    5          2         5    5         2         5
線形不等式による表現
   目的関数
    – 最小化:  c(v) xv
               vV

   制約
    – Cover の制約 xu  xv  1,   (u, v)  E
    – 辺選択の制約 xv  {0,1},        v V



    4         1           1      4           1         1
    v1   a1   v2     a2   v3     v1    a1    v2   a2   v3
    a3                    a4     a3                    a4
    v4   a5   v5     a6   v6     v4     a5   v5   a6   v6
    5         2           5      5           2         5
線形不等式による表現
   目的関数
    – 最小化: 4 xv     1
                         1xv2  1xv3  5 xv4  2 xv5  5 xv6

   制約
    – Cover の制約 xv  xv  1, xv  xv  1, xv  xv  1,
                                1            2       2            3        1        4


                              xv3  xv6  1, xv4  xv5  1, xv5  xv6  1.

    – 辺選択の制約 xv , xv , xv , xv , xv , xv  {0,1}.
                                    1        2   3   4        5       6



    4          1                        1                4                     1             1
    v1   a1    v2        a2             v3               v1           a1       v2       a2   v3
    a3                                  a4               a3                                  a4
    v4    a5   v5       a6              v6               v4           a5       v5       a6   v6
    5          2                        5                5                     2             5
線形緩和
   目的関数
    – 最小化:  c(v) xv
               vV

   制約
    – Cover の制約 xu  xv  1, (u, v)  E
    – 辺選択の制約 xv  0, v  V


    4         1           1     4         1         1
    v1   a1   v2     a2   v3    v1   a1   v2   a2   v3
    a3                    a4    a3                  a4
    v4   a5   v5     a6   v6    v4   a5   v5   a6   v6
    5         2           5     5         2         5
線形緩和
   目的関数
    – 最小化: 4 xv     1
                         1xv2  1xv3  5 xv4  2 xv5  5 xv6

   制約
    – Cover の制約 xv  xv  1, xv  xv  1, xv  xv  1,
                                1        2           2        3                1        4


                              xv3  xv6  1, xv4  xv5  1, xv5  xv6  1.

    – 辺選択の制約 xv , xv , xv , xv , xv , xv  0.
                                    1        2   3       4        5        6



    4          1                    1                    4                         1             1
    v1   a1    v2        a2         v3                   v1           a1           v2       a2   v3
    a3                              a4                   a3                                      a4
    v4    a5   v5       a6          v6                   v4           a5           v5       a6   v6
    5          2                    5                    5                         2             5
Extreme point solution
   線形計画法の最適解.
   実行可能解 (feasible solution) の凸結合では表
    現できない解.
    – 凸結合: 係数を足すと 1 になる線形和.
      • たとえば, z =0.8x+0.2y の z は x, y の凸結合である.

       実行可能解
                実行可能解の
                  凸結合
Half-integral solution
   線形計画法の解で, 各変数の値が, 0, 1/2, 1 の
    いずれかであるもの.
2-近似アルゴリズム
   Extreme point solution x を求める.
   x において, 1/2, 1 が与えられた頂点を選ぶ.
    – x が extreme point solution ならば, 各変数の値が, 0,
      1/2, 1 のいずれかになる(補題 14.4).
補題 14.4
   x: weighted vertex cover の線形計画法による解.
   x が half-integral でないならば, x は2つの実行
    可能解の凸結合で表せる.
    – x は extreme point solution ではない.

    – 証明の方法
      • half-integral でない x に対して, x=1/2(y+z) となる y, z を
        作る.
         – x は y, z の凸結合で表せる.
      • y, z が実行可能解であることを示す.
証明 (1/3)
   0, 1/2, 1 以外を含む解 x から別解 y, z を作る.
1.0
                             x   1.0
                                                             y   1.0
                                                                                             z
                                             +ε
                                                                                  -ε
0.5                              0.5                             0.5

                                                      -ε                              +ε

       xv1 xv2 xv3 xv4 xv5             xv1 xv2 xv3 xv4 xv5             xv1 xv2 xv3 xv4 xv5


      V+={v3}. xvi が 1/2 より大きい vi.                           y では +ε, z では -ε.

      V-={v4}. xvi が 1/2 より小さい vi.                           y では-ε, z では +ε.

      x   y  z  が成り立つ.
         1
         2
 証明 (2/3)
     y, z が実行可能解であることを確認する.
      – 実行可能解は xu+xv≧1 を満たす.
                       x から y への変化          x から z への変化
       1/2   1   xu         1/2   1   yu         1/2   1   zu
1/2                   1/2                  1/2

1                     1                    1

xv                    yv                   zv
                                       εを十分小さくとれば
      実行可能解                           実行可能解の条件を満たす.
証明 (3/3)
   xu+ xv=1 のとき
    – xu= xv=1/2.
       • yu= yv=zu= zv=1/2. (そのまま)
    – xu=0, xv=1.
       • yu=0, yv=1, zu=0, zv=1. (そのまま)
    – xu<1/2, xv>1/2.
       • yu+ yv= xu+ε+ xv -ε =1,
       • zu+ zv= xu-ε+ xv +ε =1.
   よって, y, z は実行可能解であり, 0, 1/2, 1 以外
    を含む x は実行可能解の凸結合で表される.

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