第三章 自我穩定分散式著色演算法
3.4 自我穩定著色演算法
我們接著將設計出的賽局,改寫成一個在集中式運算模型下運作的自我穩定著色 演算法。無向圖𝐺 = (𝑉, 𝐸)代表分散式系統的網路拓樸,其中節點𝑖 ∈ 𝑉表示系統 中的一個行程,而任意兩節點中若是存在一條邊{𝑖, 𝑗} ∈ 𝐸代表系統中兩行程之間 的連結。本小節共分成部分,第一部分將介紹我們演算法的設計,第二部分則探 討我們演算法設計的合理性。為名詞統一,我們之後將使用節點統稱分散式系統 中的行程。
3.4.1 演算法設計
此系統的假設如下:
(1) 系統中每個節點有一個顏色集合紀錄目前持有之顏色𝐶𝑖 ∈ 𝑃(𝐾),其中|𝐶𝑖| = 𝑘′,𝑃(𝐾)為顏色集合 K 之冪集合。
(2) 𝑁𝑖為節點 i 之鄰居集合。
(3) 節點 i 記錄鄰居目前之顏色集合𝐶−𝑖 = {𝐶𝑗∈𝑁𝑖}。
(4) 顏色 c 之壅塞程度𝐿𝑖(𝑐, 𝐶−𝑖) = ∑𝑗∈𝑁𝑖|{𝑐} ∩ 𝐶𝑗|
我們將著色賽局中參與者的效用函數改寫成自我穩定演算法之先決條件以 及對應動作。在分散式系統中,節點可以讀取鄰近節點區域變數的值,並藉此計 算各個節點的效用函數是否符合需求,若不符合則成為特權節點進而改變自己的 區域變數值。Algorithm 3.1 與 Algorithm 3.2 分別為參與者使用較適回應和最適
21
回應機制之形式。分散式系統中的節點的運算能力通常有所限制,考量到解空間 (solution space)所造成的搜尋成本,我們將策略轉換機制稍作修改。原先賽局參 與者的決策機制是選擇最大回報的策略,即顏色所形成的集合。我們將決策機制 改為單次決策只能替換單一顏色,即決策前後只會有一個顏色的差異。由於顏色 之 間 沒 有 相 依 性, 我們 選 擇 將 目 前 顏色 集合𝐶𝑖中 壅 塞 程 度最 高 的顏 色𝑐 = arg max
𝑐∈𝐶𝑖 𝐿𝑖(𝑐, 𝐶−𝑖)改換成不在𝐶𝑖中且壅塞程度比 c 小的另一個顏色。
Algorithm 3.1 Self-stabilizing Coloring Algorithm <Better Response Version>
Shared Variable:𝐶
𝑖 ∈ 𝑃(𝐾), 𝑤ℎ𝑒𝑟𝑒 |𝐶𝑖| = 𝑘′Rule: (𝑐 = arg max
𝑐∈𝐶𝑖 𝐿𝑖(𝑐, 𝐶−𝑖)) ∧ (∃𝑐′∈ 𝐾 − 𝐶𝑖, 𝐿𝑖(𝑐′, 𝐶−𝑖) < 𝐿𝑖(𝑐, 𝐶−𝑖)) → 𝐶𝑖 = 𝐶𝑖 ∖ {c} ∪ {𝑐′}
Algorithm 3.1 為賽局中的參與者使用較適回應作為決策原則之演算法。若在 未選顏色集合K − 𝐶𝑖中,存在某個顏色𝑐′之壅塞程度𝐿𝑖(𝑐′, 𝐶−𝑖)比顏色集合𝐶𝑖中壅 塞程度最高的顏色 c 來得低,則可將顏色 c 替換為𝑐′。
Algorithm 3.2 Self-stabilizing Coloring Algorithm <Best Response Version>
Shared Variable:𝐶
𝑖 ∈ 𝑃(𝐾), 𝑤ℎ𝑒𝑟𝑒 |𝐶𝑖| = 𝑘′Rule:( 𝑐
′= arg min𝑐′∈𝐾−𝐶𝑖𝐿𝑖(𝑐′, 𝐶−𝑖)) ∧ (𝑐 = arg max
𝑐∈𝐶𝑖 𝐿𝑖(𝑐, 𝐶−𝑖)) ∧ (𝐿𝑖(𝑐′, 𝐶−𝑖) <
𝐿𝑖(𝑐, 𝐶−𝑖)) → 𝐶𝑖 = 𝐶𝑖∖ {c} ∪ {𝑐′}
Algorithm 3.2 則代表參與者使用最適回應作為決策原則之演算法。節點 i 在 未選顏色集合K − 𝐶𝑖中求出最小壅塞程度之顏色𝑐′,若𝑐′壅塞程度𝐿𝑖(𝑐′, 𝐶−𝑖)低於 原先顏色集合中壅塞程度最高之顏色 c,則將顏色 c 替換為𝑐′。
22
3.4.2 演算法的合理性
在分散式系統 S 中,當全域狀態(global state)符合系統要求之前提 P 時,稱此系 統進入合法狀態。而一個自我穩定分散式系統中必須符合封閉性(closure)以及收 斂性(convergence)。一旦系統已經進入合法狀態,則未來仍必定為合法狀態的話,
我們稱此系統符合封閉性;收斂性則是要求無論系統從任意狀態開始,最終都會 在有限步驟內達到合法狀態。在 [DSR99] 中提出了沉默穩定(silent stabilization) 的概念。一個自我穩定演算法若稱為沉默穩定則若且唯若該演算法收斂到合法狀 態時,所有的共享變數都已固定並且不再改變其值。為了證明演算法的正確性,
以下將證明我們的方法符合此兩種特性且具有沉默穩定的性質。首先我們定義我 們的系統中何謂合法狀態:
Definition 3.1 著色演算法之合法狀態(Legitimate State) 𝑷: {∀i ∈ V, ∄𝐶𝑖′∈ 𝑃(𝐾) ∧ (|𝐶𝑖′| = 𝑘′), ∑ 𝐿𝑖(𝑐, 𝐶−𝑖)
𝑐∈𝐶𝑖′ < ∑ 𝐿𝑖(𝑐, 𝐶−𝑖)
𝑐∈𝐶𝑖 }
當 P 成立時表示系統進入合法狀態。此時,系統中不存在一個顏色集合𝐶𝑖′∈ P(K)且|𝐶𝑖′| = 𝑘′使得任意程序 i 可以藉由改變顏色的方式來降低自己的壅塞程 度,即代表每個節點都已換成區域最少人使用的顏色。
Lemma 3.1 著色演算法符合收斂性。
Proof: 先 前 所 提 出 的 著 色 賽 局 為 一 確 切 潛 力 賽 局 , 具 有 finite improvement
property 性質。由此可知不管起始狀態為何,賽局最終會在參與者自私地改進自
身利益下收斂到納許均衡。在我們提出的著色演算法中,節點也是在集中式運算 模型下有次序地藉由不斷的改變自己顏色來降低節點的壅塞程度。但這樣只能保 證系統會收斂到一個穩定狀態,仍需證明此系統在此全域狀態是符合前提 P 的 合法狀態。23
我們假設系統在收斂之後的全域狀態並不滿足前提 P,即 Algorithm 3.1 與 3.2 中沒有任何節點的規則可以被啟動。但若前提 P 不被滿足,則必存在一個顏 色集合𝐶𝑖′可使節點 i 啟動規則。這樣一來則和先前之假設矛盾,所以若系統在收 斂到某個穩定狀態的同時,全域狀態也會是合法狀態。由此可知我們的系統在不 管起始狀態為何,皆可在有限時間內到達某個穩定的合法狀態,符合封閉性。
Lemma 3.2 著色演算法符合封閉性。
Proof: 由 Lemma 3.1 可知,我們所設計的著色演算法在系統收斂到穩定狀態之 後則不會有任何一個節點的規則被啟動。這代表著系統中的所有節點皆不會改變 自身所選擇的顏色集合,代表系統的全域狀態在不受外力影響之下不會再作改變,
符合自我穩定演算法的封閉性。
圖 3.2 傳遞延遲造成的訊息不一致