• 沒有找到結果。

最小 k-支配集合的自我穩定演算法(IkDG)

第三章 最小多支配集合的自我穩定演算法

3.3 最小 k-支配集合的自我穩定演算法(IkDG)

我們假設最小 k-支配集合問題中的 k 為一個常數。假設在分散式系統下,使 用集中式的執行模型。每個節點都是根據鄰近節點的 x(i)值來更新自己的 g(i)值,

主要在圖 3.1 中 R1~R3 的規則中來判斷。而每個節點的 x(i)值是根據鄰居節點的 g(i)值來決定是否要改變,主要在圖 3.1 中 R4~R6 的規則中來判斷。

圖 3.1 最小 k-支配集合演算法 接下來介紹每條規則設計的用意。

18

 演算法規則說明:

R1:

若節點 i 的所有鄰居節點 j (不包括節點 i) 為支配者的數目小於 k,且節點 i 不 為支配者,且 g(i) 值不為 UNDER,則把 g(i) 改為 UNDER。

(代表節點 i 鄰近的支配節點不滿 k 個,且本身也不為支配者,則需要被其它節 點支配或自己變為支配者,因此節點會想把 g(i) 變為 UNDER,等於在賽局中,

讓其它參與者知道,來支配它是可以獲得利益值的)。

R2:

若節點 i 的所有鄰居節點 j (不包括節點 i) 為支配者的數目等於 k,且節點 i 不 為支配者,且 g(i) 值不為 EQUAL,則把 g(i) 改為 EQUAL。

(代表節點 i 鄰近的支配節點剛好 k 個,且本身也不為支配者,則無需被其它節 點支配或自己變為支配者,因此節點會想把 g(i) 變為 EQUAL,等於在賽局中,

讓其它參與者知道,它的支配需求剛好滿足,支配它是無法獲得利益值的)。

R3:

若節點 i 的所有鄰居節點 j 為支配者的數目大於 k 或節點 i 不為支配者,且 g(i) 值不為 OVER,則把 g(i) 改為 OVER。

(代表節點 i 鄰近的支配節點超過 k 個或本身為支配者,則無需被其它節點支配,

因此節點會想把 g(i) 變為 OVER,等於在賽局中,讓其它參與者知道,它超過 支配需求,支配它是無法獲得利益值的)。

R4:

若節點 i 的分支度小於 k,且為非支配者,則節點 i 可變為支配者。

(因為節點 i 根本無法有 k 個支配者鄰居來支配它,因此只能由節點本身變為支

19

配者來支配自己,等於賽局中,支配自己可以獲得 - 的利益值,則會因為想獲 得利益而變為支配者)。

R5:

若節點 i 的分支度大於或等於 k,且鄰居存在有一個節點 j,其 g(j) 為 UNDER,

且節點 i 為非支配者,則可變為支配者。

(因為節點 i 知道鄰居有節點其 g(j) = UNDER,則若支配它可以獲得利益值,以 賽局角度來看,節點 i 可獲得利益,因此節點會做決策來變為支配者)。

R6:

若節點 i 的分支度大於或等於 k,且鄰近所有節點 j,其 g(j) 都為 OVER,且節 節 i 為支配者,則可變為非支配者。

(因為支配節點 i 知道鄰居所有節點其 g(j) = OVER,則若繼續支配它們則無法再 獲得利益值,以賽局角度來看,節點 i 因無法獲利,所以會做決策來變為非支配 者,來節省不必要的 成本支出)。

20

3.3.1 演算法運作範例說明

圖 3.2 為初始圖形(Example 1),假設 k = 2,總共 6 個節點,每個節點的初始 x(i) = false、g(i) = UNDER。若經過表 3.2 的決策順序後會變為圖 3.3。黑色節點 代表支配節點。再經過表 3.3 的順序則變為圖 3.4。最後經過表 3.4 的順序,圖 3.5 即為穩定狀態時,所找出的最小 2-支配集合:{P1,P2,P5,P6}。

圖 3.2 初始圖形(Example1)

表 3.2 決策順序(Example1 的第一部份) 節點編號 規則 狀態變化

P3 R5 x(3)=true P2 R5 x(2)=true P6 R4 x(6)=true P2 R3 g(2)=OVER P1 R4 x(1)=true P4 R5 x(4)=true P5 R5 x(5)=true P3 R3 g(3)=OVER

P 1 P 2 P 5 P 6

P 3

P 4

g(1) = UNDER g(2) = UNDER g(5) = UNDER g(6) = UNDER

g(3) = UNDER

g(4) = UNDER

21

圖 3.3 Example1 第一部份後的圖形

表 3.3 決策順序(Example1 的第二部份) 節點編號 規則 狀態變化

P4 R3 g(4)=OVER P5 R3 g(5)=OVER P4 R6 x(4)=false P3 R6 x(3)=false P6 R3 g(6)=OVER P1 R3 g(1)=OVER P5 R6 x(5)=false P4 R1 g(4)=UNDER

圖 3.4 Example1 第二部份後的圖形

P 1 P 2 P 5 P 6

P 3

P 4

g(1) = UNDER g(2) = OVER g(5) = UNDER g(6) = UNDER

g(3) = OVER

g(4) = UNDER

P 1 P 2 P 5 P 6

P 3

P 4

g(1) = OVER g(2) = OVER g(5) = OVER g(6) = OVER

g(3) = OVER

g(4) = UNDER

22

表 3.4 決策順序(Example1 的第三部份) 節點編號 規則 狀態變化

P3 R1 g(3)=UNDER P5 R1 g(5)=UNDER P5 R5 x(5)=true P5 R3 g(5)=OVER P4 R2 g(4)=EQUAL P3 R2 g(3)=EQUAL

圖 3.5 Example1 到達穩定後的圖形

3.3.2 最小 k-支配集合的證明

我們先前的研究 [17] 已經以賽局的方式提出了針對最小 k-支配集合問題的 效用函數。此效用函數會使得賽局到達納許平衡點。以下我們將證明當演算法到 達穩定時,所找出的支配集合必定是最小 k-支配集合。

Lemma 1 當演算法到達穩定時,每個節點 pi的 g(i)值必為正確

假設演算法到達穩定時,某個節點 pi的 g(i)值不為正確。

對此節點 p

i而言,演算法中的 R1~R3 任一條規則會成立,所以會更新 g(i)

P 1 P 2 P 5 P 6

P 3

P 4

g(1) = OVER g(2) = OVER g(5) = OVER g(6) = OVER

g(3) = EQUAL

g(4) = EQUAL

23

為正確值,因此演算法還未到達穩定。

與起初假設矛盾。

故可證明,當演算法到達穩定時,每個節點 pi的 g(i)值必為正確值。

Lemma 2 當演算法到達穩定時,必定找出最小 k-支配集合

假設演算法停止時,並未找出最小 k-支配集合

則至少存在一個多餘的節點 pi,將此節點從支配集合中拿掉,整個集合仍為 最小 k-支配集合。

根據 lemma 1,此節點 pi的所有鄰近節點 pj的 g(j)值皆為正確,代表節點 pi 會滿足演算法中的 R 6。所以代表演算法尚未達到穩定。

與起初假設矛盾。

故可證明,當演算法到達穩定時,必定找出最小 k-支配集合。

24