21
A Self-Stabilizing Algorithm for Finding a Maximal Independent Set 指指指指 : 指指指 指指 指指指 :961508 指指指 961532 指指指 961512 指指指 961551 指指指 961516 指指指 961553 指指指 961518 指指指 961562 指指指

A Self-Stabilizing Algorithm for Finding a Maximal Independent Set

Embed Size (px)

DESCRIPTION

A Self-Stabilizing Algorithm for Finding a Maximal Independent Set. 指導教授 : 黃哲志 教授 專題生 :961508 張孟真 961532 黃泰維 961512 林怡辰 961551 吳宗諺 961516 曾煥傑 961553 魏思哲 961518 黃筱雯 961562 魏思卬. 名詞解釋. 一 . 自我穩定系統 (self-stabilizing systems) - PowerPoint PPT Presentation

Citation preview

Page 1: A Self-Stabilizing Algorithm for Finding a Maximal Independent Set

A Self-Stabilizing Algorithm for Finding a Maximal Independent Set

指導教授 : 黃哲志 教授專題生 :961508 張孟真 961532 黃泰維

961512 林怡辰 961551 吳宗諺 961516 曾煥傑 961553 魏思哲 961518 黃筱雯 961562 魏思卬

Page 2: A Self-Stabilizing Algorithm for Finding a Maximal Independent Set

名詞解釋 一 . 自我穩定系統 (self-stabilizing system

s) 1. 自我穩定系統是一個分散式系統 ,在系統

中每一個節點皆配備有一個個別演算法,而所有節點的個別演算法合起來構成的分散式演算法具有自我穩定的功能,也就是能在系統處於非合理狀態時,自動運作將系統恢復到合理狀態,並在之後將系統一直保持在合理狀態 ( 除非系統再遭致突發的瞬間錯。

Page 3: A Self-Stabilizing Algorithm for Finding a Maximal Independent Set

名詞解釋 二 . 計算模式 (computational models) 1. 每一個節點中的個別演算法由一個或數個

運算規則所組成,每一規則皆具以下形式 :Conditional Part → Action Part 。

2. 如果一個節點有某一規則的 conditional part 成立,則稱此節點為有權作動。

Page 4: A Self-Stabilizing Algorithm for Finding a Maximal Independent Set

名詞解釋 3.Central Daemon Model (introduced by Dijkstra in 1974 [1]): 在一個特定系統狀態中,可

能有很多節點有權作動,但 central daemon 只從其中任意挑選一個節點來作動。

4.Distributed Daemon Model (introduced by Burns in 1987[2]):distributed daemon 從有權作 動的節點中挑選任意數量的節點來作動。

Page 5: A Self-Stabilizing Algorithm for Finding a Maximal Independent Set

名詞解釋 三 . 最大獨立集 (maximal independent s

et) :系統中所有節點的一個部份集合,若其中任兩點皆不相鄰,則稱之為一個獨立集。若一個獨立集不包含於更大的獨立集,則稱之為一個最大獨立集。

Page 6: A Self-Stabilizing Algorithm for Finding a Maximal Independent Set

Shukla 原來的演算法

R1: ( ∀y∈N(x) , dy=0 ) ∧ dx=0 → dx=1 ; R2: ( ∃y∈N(x) , dy=1 ) ∧ dx=1 → dx=0 ;

Page 7: A Self-Stabilizing Algorithm for Finding a Maximal Independent Set

Shukla’s MIS Algorithm under Central Daemon Model

Page 8: A Self-Stabilizing Algorithm for Finding a Maximal Independent Set

但如果在 Distributed Daemon Model…

Page 9: A Self-Stabilizing Algorithm for Finding a Maximal Independent Set

無法在 distributed daemon 下自我穩定的原因

相鄰的兩個節點可以同時被 distributed daemon 選到,導致演算法中判斷執行的規則條件跟著變動,使得執行完的節點仍處於有權作動的情況。

Page 10: A Self-Stabilizing Algorithm for Finding a Maximal Independent Set

我們的演算法 Algorithm1: R1: (dx=0) ∧ (∀y∈N(x),dy=0) ∧ (Px=0) → Px=1 R2: (dx=0) ∧ (∃y∈N(x),dy=1) ∧ (Px=1) → Px=0 R3: (dx=1) ∧ (∃y∈N(x),dy=1) ∧ (Px=0) → Px=1 R4: (dx=1) ∧ (∀y∈N(x),dy=0) ∧ (Px=1) → Px=0 R5: (dx=0) ∧ (Px=1) ∧ (∀y∈N(x),dy=0) ∧ (∀y∈N(x),if Py=1 then y<x) → dx=1 R6: (dx=1) ∧ (Px=1) ∧ (∃y∈N(x),dy=1) ∧ (∀y∈N(x),if Py=

1 then y<x) → dx=0

Page 11: A Self-Stabilizing Algorithm for Finding a Maximal Independent Set

THEOREM 1

在任何合理狀態下,所有 d-values 為 1 的節點所構成的集合是一個最大獨立集。

Page 12: A Self-Stabilizing Algorithm for Finding a Maximal Independent Set

LEMMA 1

假設 ϒ 是一個系統狀態。則在 ϒ 裡任一節點 x 皆滿足條件 (Px=0) ∧ {[(dx=0) ∧ ( ∃y∈N(x),s.t.dy=1)] ∨ [(dx=1) ∧

(∀y∈N(x),dy=0)]} 若且唯若在 ϒ 裡任一節點都沒有權作動。

Page 13: A Self-Stabilizing Algorithm for Finding a Maximal Independent Set

PROOF

假設在 ϒ 裡任一節點 x 皆滿足條件 (Px=0)∧{[dx=0]∧(∃y∈N(x),s.t.dy=1)]∨[(dx=1)∧( ∀y∈N(x),dy=0)]} ,由 Algorithm 1 可明顯看出任一節點都沒有權作動。反之,假設在 ϒ 裡任一節點都沒有權作動。若存在有一個節點 x 滿足 Px=1 ,則為了使 R2 ,R4 不成立, x 須滿足 [(dx=0)∧(∀y∈N(x),dy=0)]∨ [(dx=1) ∧∃y∈N(x), dy=1)]

Page 14: A Self-Stabilizing Algorithm for Finding a Maximal Independent Set

PROOF( 續 ) 又為了使 R5 ,R6 不滿足 , (∀y∈N(x),if Py=1 then

y<x) 不能成立,也就是 x 須滿足 (∃y1∈N(x), Py1=1 ∧ y1<x) 。同理,因 Py1=1 ,可推出 (∃y2∈N(y1), Py2=1 ∧ y2< y1) 。這樣討論下去可得無限多節點 x> y1>y2> y3>‧‧‧ 存在在於系統中,此為矛盾。因此任一節點 x 皆滿足 Px=0 。為了使 R1, R3 不成立, x 須滿足 {[(dx=0)∧( ∃y∈N(x),s.t.dy=1)] ∨ [(dx=1) ∧ (∀y∈N(x),dy=0)]} ,得証。

Page 15: A Self-Stabilizing Algorithm for Finding a Maximal Independent Set

LEMMA 2

在 distributed daemon model 下, Algorithm 1 的任一 executionΓ=(ϒ1, ϒ2,…) 皆為有限。

Page 16: A Self-Stabilizing Algorithm for Finding a Maximal Independent Set

PROOF 令 Γ 中所有改變 d-values 的 steps 為 ϒi1→ϒi1+1 ,

ϒi2→ϒi2+1 ‧‧‧ ,在此 1≦i1<i2<‧‧‧ ,若我們忽略 ϒi1 , ϒi2‧‧‧ 中的 p-values ,則 Γ′=(ϒi1 , ϒi2 ,‧‧‧)便成為 Shukla Algorithm 在 distributed daemon mode 下的一個執行。從 R5和 R6 可看出在 Γ 的任一步驟 ϒik→ϒik+1 中改變 d-value 的節點皆不相鄰。因此 ϒik→ϒik+1便可拉開成一個 Shukla Algorithm 在 central daemon model 下的一個執行片段。

Page 17: A Self-Stabilizing Algorithm for Finding a Maximal Independent Set

PROOF( 續 ) 而 Γ′=(ϒi1 , ϒi2 ,‧‧‧)便可拉開成一個 Shukla Algorithm 在 central daemon model 下的一個執

行 Γ′′。由 Shukla[3] 的結果知 Γ ′′為有限,故 Γ′亦為有限。令 Γ′的最後一個狀態為 imϒ ,則 Algorithm 1 在 distributed daemon model 下的執行 Γ ,在 imϒ 後不會再改變 d-values ,只剩下 p-values會進行改變。但從 Algorithm 1 的規則可看出在 d-values 不改變的情況下,系統改變 p-values 的次數只可能為有限次,因此得証 Γ 為有限。

Page 18: A Self-Stabilizing Algorithm for Finding a Maximal Independent Set

THEOREM 2

在 distributed daemon model 下, Algorithm 1會自我穩定。

Page 19: A Self-Stabilizing Algorithm for Finding a Maximal Independent Set

PROOF

由 LEMMA 2 可知 Algorithm 1 可將任何系統狀態帶到一個所有節點皆無權作動的狀態,根據 LEMMA 1那即是一個合理狀態。

Page 20: A Self-Stabilizing Algorithm for Finding a Maximal Independent Set

結論 以上,我們已將 Shukla 在 central daemo

n model 下尋找最大獨立集的自我穩定演算法延伸到 distributed daemon model 。這樣的延伸機制似乎具有一般性,可推廣到任一 central daemon model 的自我穩定演算法。

Page 21: A Self-Stabilizing Algorithm for Finding a Maximal Independent Set

參考資料 [1] E.W. Dijkstra, “Self-stabilizing systems in spite of distributed control”, Communcation of ACM, Vol. 17, pp.643-644, 1974. [2] J.E. Burns, “Self-stabilizing ring without demons”, Technical Report GIT-ICS-87/36, Georgia Tech., 1987. [3]S.K. Shukla, D.J. Rosenkrantz, and S.S. Ravi, “Observations on Self-Stabilizing Graph Algorithms for Anonymous Networks,” Proc. WSS, pp. 1-15, 1995.