210 likes | 326 Views
A Self-Stabilizing Algorithm for Finding a Maximal Independent Set. 指導教授 : 黃哲志 教授 專題生 :961508 張孟真 961532 黃泰維 961512 林怡辰 961551 吳宗諺 961516 曾煥傑 961553 魏思哲 961518 黃筱雯 961562 魏思卬. 名詞解釋. 一 . 自我穩定系統 (self-stabilizing systems)
E N D
A Self-Stabilizing Algorithm for Finding a Maximal Independent Set 指導教授:黃哲志 教授 專題生:961508 張孟真 961532 黃泰維 961512 林怡辰 961551 吳宗諺 961516 曾煥傑 961553 魏思哲 961518 黃筱雯 961562 魏思卬
名詞解釋 • 一.自我穩定系統(self-stabilizing systems) • 1.自我穩定系統是一個分散式系統 ,在系統中每一個節點皆配備有一個個別演算法,而所有節點的個別演算法合起來構成的分散式演算法具有自我穩定的功能,也就是能在系統處於非合理狀態時,自動運作將系統恢復到合理狀態,並在之後將系統一直保持在合理狀態(除非系統再遭致突發的瞬間錯。
名詞解釋 • 二.計算模式(computational models) • 1.每一個節點中的個別演算法由一個或數個運算規則所組成,每一規則皆具以下形式:Conditional Part → Action Part。 • 2.如果一個節點有某一規則的conditional part成立,則稱此節點為有權作動。
名詞解釋 • 3.Central Daemon Model (introduced by • Dijkstra in 1974 [1]):在一個特定系統狀態中,可能有很多節點有權作動,但central daemon 只從其中任意挑選一個節點來作動。 • 4.Distributed Daemon Model (introduced by • Burns in 1987[2]):distributed daemon從有權作 • 動的節點中挑選任意數量的節點來作動。
名詞解釋 • 三.最大獨立集(maximal independent set):系統中所有節點的一個部份集合,若其中任兩點皆不相鄰,則稱之為一個獨立集。若一個獨立集不包含於更大的獨立集,則稱之為一個最大獨立集。
Shukla原來的演算法 • R1: ( ∀y∈N(x) , dy=0 ) ∧ dx=0 → dx=1 ; • R2: ( ∃y∈N(x) , dy=1 ) ∧ dx=1 → dx=0 ;
無法在distributed daemon下自我穩定的原因 • 相鄰的兩個節點可以同時被distributed daemon選到,導致演算法中判斷執行的規則條件跟著變動,使得執行完的節點仍處於有權作動的情況。
我們的演算法 • 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
THEOREM 1 • 在任何合理狀態下,所有d-values為1的節點所構成的集合是一個最大獨立集。
LEMMA 1 • 假設ϒ是一個系統狀態。則在ϒ裡任一節點x皆滿足條件 (Px=0) ∧ {[(dx=0) ∧ ( ∃y∈N(x),s.t.dy=1)] ∨ [(dx=1) ∧ • (∀y∈N(x),dy=0)]}若且唯若在ϒ裡任一節點都沒有權作動。
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)]
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)]},得証。
LEMMA 2 • 在distributed daemon model下,Algorithm 1的任一executionΓ=(ϒ1, ϒ2,…)皆為有限。
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下的一個執行片段。
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的次數只可能為有限次,因此得証Γ為有限。
THEOREM 2 • 在distributed daemon model下,Algorithm 1會自我穩定。
PROOF • 由LEMMA 2可知Algorithm 1可將任何系統狀態帶到一個所有節點皆無權作動的狀態,根據LEMMA 1那即是一個合理狀態。
結論 • 以上,我們已將Shukla在central daemon model下尋找最大獨立集的自我穩定演算法延伸到distributed daemon model。這樣的延伸機制似乎具有一般性,可推廣到任一central daemon model的自我穩定演算法。
參考資料 • [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.