On-line Problems Kyushu Institute of Technology データ処理特論 Off-line問題 普通の問題 問題を解き始める前に、入力が完全に分かっている 最短経路探索問題 入力: グラフ 目的: s-t間の最短経路 オンラインアルゴリズム 宮野英次 九州工業大学情報工学部 制御システム工学科 [email protected] 実時間問題 On-line問題 時間が経過するに従って,入力が分かってくる 円からドルへの通貨交換問題 入力: 為替相場 目的: なるべく多くのドルを手に入れる http://tcs.ces.kyutech.ac.jp/~miyano/Classes 1 2 Ski Rental Problem Kyushu Institute of Technology Ski Rental Problem スキー道具をレンタルするか,または,買うかを決める問題 レンタル: 1千円/日 購入: T 千円 このとき、できるだけ費用(コスト)を少なくしたい Cost = (レンタルした日数)×1千円 + T千円 仮定1: 一度スキーを買ったらシーズン終了まで壊れない 仮定2: 毎日スキーに行く オンラインアルゴリズムの評価基準 competitive ratio (競合比) 問題: 何日目にスキー道具を購入すれば良いか? 3 Off-line の場合 4 On-line の場合 On-lineの場合: シーズン開始時にLを知らない On-line Algorithm 整数 k を決める(0 ≤ k ≤ L) 始めのk日はレンタルして,もしk+1日目もシーズンが続いて いるなら k+1 日目にスキー道具を購入 スキーシーズンの長さをLとする Off-lineの場合: シーズン開始時にLを知っている L < T ならシーズン中ずっとレンタルで済ます(L千円) L ≥ T なら初日にスキー道具を買う(T千円) Cost Cost 例えば k=0(初日に買う) k=2(3日目に買う) T T+2 T L L T T 5 6 1 競合比(評価尺度) 競合比の例 オンラインアルゴリズムAはα-競合(α-competitive) オンラインアルゴリズムAはα-競合(α-competitive) k = 0(初日に買う)としたとき 初日に買ったが,シーズンが1日で終わった 任意の入力列σ オンラインアルゴリズムAのコスト CA(σ) 最適オフラインアルゴリズムOPTのコストを COPT(σ) とするとき, オフライン: レンタルで済ますことでコストは1千円 オンライン: T千円で購入 ⇒ T-competitive C A (σ ) ≤ αCOPT (σ ) が成り立つならば,オンラインアルゴリズムAはα-競合 である(Aはα-競合比を持つ)と言う k = T – 1 としたとき T日以上続いた場合(L≥T) オフライン: 初日に購入することでコストはT千円 オンライン: T-1日分はレンタル(T-1千円),その後T千円で購入 ⇒ (2 ‐ 1/T)-competitive αの値が1に近いほど良いオンラインアルゴリズム 7 8 最適オンラインアルゴリズム 最適性の証明 On-line algorithm: k を最初に決め,k+1日目にスキー道具を購入する 最適On-line algorithm: k = T – 1 と決める オンラインアルゴリズムのコスト CA = k + T 最適なオフラインアルゴリズムのコスト L if L < T (L :シーズン期間) CMIN = T otherwise スキー道具がT千円のときは,T日目に購入する 定理 k = T – 1 のとき,competitive ratio が最も シーズン期間Lが最初に決めたkより小さいとき 競合比=1 小さい( = 2 – 1/T ) 9 10 最適性の証明 L = k+1 だと仮定して,競合比を見積もる (L>>k+1 のときは,競合比は小さくなっていく) 競合比 α = C A CMIN は,L<T の時: α= L −1+ T T −1 1 = 1+ ≥ 2 > 2− L L T Paging Problem k=L–1 L ≥ T の時: α= Kyushu Institute of Technology L −1+ T L −1 1 = 1+ ≥ 2− T T T 最適オフラインアルゴリズム 最適オンラインアルゴリズム L=k+1のとき,α ≥ 2 − 1 T なので,任意のLに対し α ≥ 2 − 1 T 11 12 2 Paging Problem Paging Problem kページ分の高速アクセス可能なメモリーを持つコンピュータ キャッシュ ⇔ ディスク間のページ入れ替え メモリ上に無いページ σ i へのアクセス要求が来た場合 (page fault),メモリ上のどれかのページと σ i を入れ換える (page swap) 1 6 3 4 2 5 入力: ページアクセス要求列 σ 1 , σ 2 , σ 3 ,L 問題: メモリ上のどのページと入れ換えるか? 目的: なるべくコスト(page fault の回数)を少なくしたい 1 6 3 2 ページ2への アクセス要求 ↓ page fault ↓ page swap page fault 1 6 3 4 5 要求 2 page fault 1 6 2 1 6 3 要求 3 13 14 LIFO vs FIFO 様々な戦略 LIFO (Least In Fast Out) replace the page most recently placed in fast memory FIFO (First In First Out) replace the page that has been in memory longest LRU (Least Recently Used) replace the page whose most recent access is earliest LFU (Least Frequently Used) replace the page that has been accessed the least FWF (Flush-When-Full) replace any unmarked page and mark the requested page. Whenever all pages in fast memory are marked, unmarked them all [例] k = 3,要求列 〈3, 2, 1, 4, 5, 2, 1〉 LIFO: {3, ○, ○} ⇒ {3, 2, ○} ⇒ {3, 2, 1} ⇒ {3, 2, 4} ⇒ {3, 2, 5} ⇒ {3, 2, 5} ⇒ {3, 2, 1} FIFO: {3, ○, ○} ⇒ {3, 2, ○} ⇒ {3, 2, 1} ⇒ {4, 2, 1} ⇒ {4, 5, 1} ⇒ {4, 5, 2} ⇒ {1, 5, 2} page fault の回数: LIFO 3回,FIFO 4回 しかし,LIFO は competitive ではない [例] k = 3,要求列〈…, a, b, a, b, a, b, a, b, …〉 LIFO: …⇒ {○, ○, a} ⇒ {○, ○, b} ⇒ {○, ○, a} ⇒ … FIFO: …⇒ {○, ○, a} ⇒ {○, a, b} ⇒{○, a, b} ⇒ … どんなαを用いても CLIFO ≤ αCFIFO ≤ αα ' CMIN と表せない 15 16 Optimal Off-line Algorithm LRUの解析 定理 LFDアルゴリズムは,最適なオフラインアルゴリズム 定理 LRU は k-competitive である LFD (Longest Forward Distance) replace the page among the pages currently in memory, whose next request comes last 定理 すべてのアルゴリズムAに対して, CA (σ A ) ≥ k ⋅ CLFD (σ A ) となる要求列 σ , σ ,L, σ A 1 A 2 A n が存在 もしも,k-competitive なオンラインアルゴリズムが存在する としたら,そのアルゴリズムは最適である 17 LRU はどんなページ要求列に対しても,最適なオフラインア ルゴリズムの k 倍以下のページフォルト数で処理可能 LRU が最も優れたオンラインアルゴリズムの一つ LRU (Least Recently Used): replace the page whose most recent access is earliest MIN: 最適なオフラインアルゴリズム 18 3 最適性の証明(1) メモリの初期状態は LRU,MIN とも同じ メモリの最初の k ページがどんなものであったとしても,すべ ての入力σに対して, CLRU (σ ) ≤ k ⋅ CMIN (σ ) である σ = σ 1 ,σ 2 ,L, σ{i , [σ i +1 ,Lσ j ], [σ j +1 ,L,σ l ],L 14243 14243 phase 1 ある一つのphaseを考える 定義より,LRUはこのphaseで k 回のPFが起きる 以下の2つの場合: (Case 1) このphaseでLRUが,あるページpに対して2回PFを起こす ある入力σに対する LRU の動作を考える σを次のように phase に分けて考える 最初のPF 最適性の証明(2) (Case 2) このphaseではLRUは異なるkページに対してPFを起こす ここで,MINのPFの回数を見積もる MINは,このphaseで1回以上PFを起こすことを示す phase 2 ただし,各phaseは正確にk個の page fault (PF)を含む と仮定 19 20 最適性の証明(3) 最適性の証明(4) (Case 2) 今考えているphaseの前のphaseの最後のPFが ページpの要求で起こったとする (Case 1) このphaseでLRUが,あるページpに対して2回PFを起こす L, [σ i+1 ,L, σ p1 = p,LL, σ p1 = p,L, σ j ],L L, σ i = p, [σ i+1 ,LL, σ j ],L 144244 3 current phase LRUの動作より σp1 とσp2 の間にpと異なるk個以上のページ要求がある (σp2 が要求されたときには,pがメモリに無いから) (Case 2a) このphaseでページpのPFが起きる L, σ i = p, [σ i+1 ,L, p,L, σ j ],L 1442443 current phase このphaseでは,合計で k+1 個以上のページ要求がある σi と p の間に異なるkページの要求がある このphaseで異なる k+1 ページの要求がある MINでも1回以上PFがある MINでも最低1回のPFがある 21 22 Optimal Off-line Algorithm 最適性の証明(5) (Case 2b) このphaseでページpのPFが起きない ただし,LRUについてもMINについても,このphase開始時 点ではメモリ中にpが含まれている 定理 LFDアルゴリズムは,最適なオフラインアルゴリズム 定義より,このphaseではLRUではk個の異なるページに対 して,PFが起こっている p以外のkページへの要求が生じる どんなにうまくMINが動作したとしても,phase開始時にpがメ モリに含まれているなら,必ず1回はPFが起こる LRUがk回PFを起こす間に,MINは最低1回はPFを起こす つまり,LRUは k-competitive ( CLRU (σ ) ≤ k ⋅ CMIN (σ ) ) [Q.E.D] 23 LFD (Longest Forward Distance) replace the page among the pages currently in memory, whose next request comes last 証明: LFDより良いアルゴリズムMINが存在すると仮定して矛盾を 導く(背理法,proof by contradiction) ¾ 仮定: C LFD (σ ) > C MIN (σ ) となる入力列が存在する σ = σ 1σ 2 Lσ n 24 4 証明の続き(1) ¾ ¾ ¾ ¾ 証明の続き(2) MINとLFDの動作が初めて異なる時刻: 時刻 i σi までのメモリ内容は全く同じ 「i < j < t の間,MIN*とMINは共通の k – 1 ページをメモリに 持つ」ことを示す 時刻iでは必ずMIN,LFD両方でPFが起きている ⇒ MIN,LFDがそれぞれ p,q をメモリから削除したとする 時刻i以降で,MINが初めてqを削除する時刻をtとする MINの動作を,時刻i∼時刻tの間だけLFDと同じになるよう に変更したMIN*が, CMIN * ≤ C MIN (σ ) となることを示す LFDの定義より,次のページpの要求σa は,次のページqの 要求σb より先に生じる (Case 1): i < t < b MIN*が持っていて,MINが持っていないページを e で表す (MINが持っていてMIN*が持っていないものは q) induction on j σj ≠ e: MIN*がPF ⇔ MINがPF MIN*はMINと同じページを削除する σ = σ 1σ 2 Lσ i Lσ a (= p )LLσ b (= q )Lσ n 25 26 証明の続き(3) 証明の続き(4) (Case 2): t õ b σj = e: MIN は PF,しかし MIN* はPFでない MIN: { …,δ,q} → { …,e,q } MIN*: { …,δ,e} → { …,δ,e} LFDの定義より q (=σb)の要求がある前に,pの要求がある (Case 1)の σj = e のケースが最低1回は起きている. CMIN * (σ 1 Lσ b−1 ) < CMIN (σ 1 Lσ b−1 ) また,j = t では,MINはqを削除し,MIN*はeをすてることにする MIN: { …,q } → { …,σt } MIN*: { …,e } → { …,σt } となり,結局,またMINとMIN*は同じ動作を続けることになる. 時刻bでは,MINはPFを起こさないが,MIN*はPFを起こすので,e と q と入れ換える.よって, CMIN * (σ ) < CMIN (σ ) (Case 1)と(Case 2)より, CMIN * (σ ) < C MIN (σ ) よって,この場合, であるが, C LFD (σ 1 Lσ t ) = CMIN * (σ 1 Lσ t ) < CMIN (σ 1 Lσ t ) CMIN * (σ ) ≤ CMIN (σ ) ⇒ tのinductionにより, C LFD (σ ) < CMIN (σ ) となり仮定と矛盾 27 28 オンラインアルゴリズムの下限 補題の証明 A A 定理 全てのアルゴリズムAに対して, CA (σ ) ≥ k ⋅ CLFD (σ ) となる要求列 σ A = σ 1A , σ 2A ,L, σ nA が存在 補題 k+1ページから選ばれた有限列σに対して, k ⋅ C LFD (σ ) ≤ σ 証明: 全体で k+1 種類のページしかないとする Aの動作にとって都合の悪い例を作る(adversary) A A Aに対して, σ 1 Lσ i −1 を与えたときにメモリ中のkページ に含まれていない残りのページを σ iA とする C A (σ ) = σ Aは各ページ要求毎にPFを起こす ⇒ 補題: k+1ページから選ばれた全ての有限列σに対して, k ⋅ C LFD (σ ) ≤ σ C A (σ ) / C LFD (σ ) ≥ k LFDがσiに対してPFを起こしたとする.このとき,メモリから 削除されたページをpとする [Q.E.D] 29 LFDの定義より,次にpの要求が来る前に他のkページの要求が来る σiまで終わった時点でメモリには,p以外のページ全てが含まれる 次にPFが起こるのは,σi+k-1 以降になり,そのときに要求さ れるページはp PFの起こる間隔は,k – 1 であり,高々k回に1回しかPFは 起きない 30 5 Metric Space Kyushu Institute of Technology 定義: metric space は,以下のような距離の関数 d : (V × V ) → ℜ を持つ点集合Vである k-Server Problem 1. d (u , v) ≥ 0, ∀u , v ∈ V 2. d (u , v) = 0 iff u = v 3. d (u , v) = d (v, u ), ∀u , v ∈ V 4. d (u , v) + d (v, w) ≥ d (u, w), ∀u , v, w ∈ V 最も盛んに研究が行われている あまり結果が知られていない d は (1)非負,(2)異なる2点間は真に正,(3)三角不等 式を満たす,(4)対称性を持つ 31 32 k-Server Problem 応用(1) 定義: 入力: metric space V,Vの点に置かれたk個のserver, 要求列σ1,σ2,... 目的: すべてのserverが移動する距離の総和を小さくする 15 10 Paging Problem k個のserverをk個のメモリセル,Vを d (u , v ) = 1, u ≠ v であるようなページの集合とする あるserverを a から b へ動かす ⇒ ページaを削除して,ページbと入れ換える 20 12 7 9 k-server問題は,より一般的な問題 15 高速なメモリにあるページを持ってくるコストがページサ イズに依存するような場合に対応する Claim: オフラインの場合もオンラインの場合も,任意の要求 列に対して,それぞれの要求の際に1つのserverのみ移動 させれば良い 33 34 応用(2) 競合比の下限と上限の予想 Two-headed Disk 同心円状のトラック 2つのディスクヘッドは,トラックからトラックに直線的に移動 2つのヘッドは同じ場所に行くことはなく,交わることはない 定理 (Manasse-McGeoch-Sleator,1990): 目標:ディスクのI/O要求に対して,2つのヘッドが動く距離の総和を 小さくする Aを任意のmetric spaceにおける,k-server問題に 対するオンラインアルゴリズムであるとする. α ≥k もしAがα-competitiveであるならば, 予想: k-competitive であるオンラインアルゴリズムが存在 35 36 6 特別なk,特別なMetric Space 既知の結果 特別なkの値に対する既知の結果 k=1 1-competitive algorithm k=2 2-competitive algorithm k=|V|–1 |V|–1-competitive algorithm 特別なmetric spaceに対する既知の結果 Paging k-competitive algorithm Line, tree k-competitive algorithm Circle k3-competitive algorithm 定理(Fiat-Rabani-Ravid,1990): eO ( k log k ) - competitive algorithm 定理(Koutsouplass and Papadimitriou,1994): (2k − 1) - competitive algorithm Open Problem k-competitive アルゴリズムは存在するか? 37 38 Greedy Algorithm k-server問題は何故難しいのか? 貪欲戦略Greedy: 常に一番近いserverを動かす 定理: Greedyはcompetitiveではない Sketch 2個のserver,要求列 a, b, a, b, a, b, ...を考える 1 Greedyの競合比は∞ 一般の場合はかなり難しい 2 a b 39 7
© Copyright 2025 ExpyDoc