PPTファイル 79KB

Download Report

Transcript PPTファイル 79KB

第二章 集合カバー
作: 牧山幸史
これまでのあらすじ
•
•
•
•
現実で遭遇する最適化問題の多くは「NP困難」
厳密解を求めるのに、膨大な計算時間が必要
近似解ならば、求めることができるかも。
個々の問題に対する近似アルゴリズムを調査する
(第Ⅰ部):
第1章: 個数版点カバー問題
(近似率2)
第2章: 集合カバー問題
第二章 集合カバー(目次)
• 集合カバー問題(グリーディアルゴリズム)
• 重み付き点カバー問題(層別化)
• 最短拡大ストリング問題
集合カバー問題
• n 個の要素からなる台集合 U, U の部分集合の族
S={S1,…,Sℓ} およびコスト関数 c:S→Q+ が入力
として与えられたとき、 U の要素をすべてカバーす
るコスト最小の S の部分族を求めよ。
集合カバー問題
コスト 5
U = { A, B, C, D, E, F }
コスト
S1
S2
S3
S4
2
3
4
1
集合カバー問題
コスト 4
U = { A, B, C, D, E, F }
コスト
S1
S2
S3
S4
2
3
4
1
グリーディアルゴリズム
• グリーディアルゴリズム(貪欲アルゴリズム,欲張り
アルゴリズムともいう)とは、現在の状況を改善させ
る現時点で最善の方策を選ぶという方針で設計さ
れたアルゴリズムの総称である。
• ここでは、最もコスト効果の良い集合を選び、その
集合でカバーされる要素を取り除いた集合で、再び
最もコスト効果の良い集合を選ぶ、というように繰り
返していき、すべての要素がカバーされたら終了す
るというアルゴリズムを考える。
集合カバー問題に対する
グリーディアルゴリズム
•
アルゴリズム2.2(グリーディ集合カバーアルゴリズ
ム)p16
1. C ← 空集合;
2. While C ≠ U do:
現在の反復でもっともコスト効果 c(S)/|S-C| の
小さい集合を1つ見つけ S とする;
S を集合カバーに選ぶ;
(αを S のコスト効果、すなわちα= c(S)/|S-C| とする;
各 e ∈ S-C に対して price(e)=αとする;)
C ← C ∪S;
3. 集合カバーに選ばれた集合を出力する;
集合カバー問題に対する
グリーディアルゴリズム
U={ A, B, C, D, E, F }
コスト
コスト 効果
S1
S2
S3
S4
2
3
4
1
0.5
0.75
1.0
0.5
集合カバー問題に対する
グリーディアルゴリズム
U={ A, B, C, D, E, F }
コスト
コスト 効果
S1
S2
S3
S4
2
3 1.5
4 2.0
1 ∞
集合カバー問題に対する
グリーディアルゴリズム
アルゴリズム2.2は |U|=n の集合カバー問題に
対する Hn 近似アルゴリズムである。
ただし、Hn = 1 + 1/2 + ・・・ + 1/n.
• 証明:
1. 出力された集合カバー全体のコストは
∑k=1nprice(ek) に等しい。
2. ∑k=1nprice(ek) ≦ (1 + 1/2 + ・・・ + 1/n)OPT
という順に説明する。
•
price(e) って?
•
アルゴリズム2.2(グリーディ集合カバーアルゴリズ
ム)p16
1. C ← 空集合;
2. While C ≠ U do:
現在の反復でもっともコスト効果 c(S)/|S-C| の
小さい集合を1つ見つけ S とする;
S を集合カバーに選ぶ;
(αを S のコスト効果、すなわちα= c(S)/|S-C| とする;
各 e ∈ S-C に対して price(e)=αとする;)
C ← C ∪S;
3. 集合カバーに選ばれた集合を出力する;
price(e) って?
• price(e) は
グリーディアルゴリズムの近似保証
• ∑k=1nprice(ek) ≦ (1 + 1/2 + ・・・ + 1/n)OPT
• 証明:
– U の要素をアルゴリズムでカバーされた順に並
べ番号を付ける。ただし、同時にカバーされた要
素は勝手に並べてよい。この番号付けを e1, …,
en とする。このとき、各k∈{1,…,n} に対して
price(ek) ≦ OPT/(n-k+1)
が成り立つ。したがって、成り立つ。
集合カバー問題に対する
グリーディアルゴリズム
アルゴリズム2.2は |U|=n の集合カバー問題に
対する Hn 近似アルゴリズムである。
ただし、Hn = 1 + 1/2 + ・・・ + 1/n.
• 証明:
1. 出力された集合カバー全体のコストは
∑k=1nprice(ek) に等しい。
2. ∑k=1nprice(ek) ≦ (1 + 1/2 + ・・・ + 1/n)OPT
という順に説明する。
•
集合カバー問題の近似保証の改善
•
集合カバー問題に対して、アルゴリズム2.2が Hn
近似アルゴリズムであることを示した。
1. アルゴリズム2.2の近似保証は、よりよい解析を
用いれば改善できるか?
答え: できない ⇒ タイトな例が存在する
2. 集合カバー問題に対して、よりよい近似保証を
持つアルゴリズムは存在するか?
タイトな例
U={ A1, A2, … , An }
コスト
アルゴリズム2.2で得られる解(コスト Hn )
S1
S2
…
Sn
Sn+1
…
1/n
1/(n-1)
…
1
1+ε
最適解(コスト 1+ε) εはいくらでも小さい値にできる
集合カバー問題の近似保証の改善
•
集合カバー問題に対して、アルゴリズム2.2が Hn
近似アルゴリズムであることを示した。
1. アルゴリズム2.2の近似保証は、よりよい解析を
用いれば改善できるか?
答え: できない ⇒ タイトな例が存在する
2. 集合カバー問題に対して、よりよい近似保証を
持つアルゴリズムは存在するか?
答え: 存在しない ⇒ 第29章
第二章 集合カバー(目次)
• 集合カバー問題(グリーディアルゴリズム)
• 重み付き点カバー問題(層別化)
• 最短拡大ストリング問題