我遇到了一些問題,我必須爲面向超立方體設計領導者選舉算法。這應該通過使用輪次數等於超立方體的維度D的比賽來完成。在每個階段d中,相鄰d維超立方體的兩個候選領導者應該競爭成爲(d + 1)維超立方體的單個候選領導者,其是它們各自的超立方體的聯合。面向超立方體的領導者選舉算法
回答
以來,它一直我研究分佈式系統很長一段時間,但我希望這有助於一點:)
問題:Leader election與hypercube tolopogy的網絡。在這種拓撲中,每個節點都有D個鄰居(其中D是超立方體的維度)。由於超立方體是面向的,節點知道它們的哪些鏈接對應於每個維度。另外,我假設所有節點都標有一些唯一的ID,這是典型的這類問題。
如果我理解你的解決方案指南,算法看起來很簡單:一個節點恰好有D個狀態。在每個狀態下,它都沿着d軸與其鄰居進行通信。這種通信包括向其發送它所知道的最佳候選人的標識(當d = 1時,這僅僅是其自己的標識),並將其與對等體所接收的標識進行比較。現在節點知道它所屬的d階子立方體的最佳id(由座標軸1,2 ...,d定義)。這樣,在步驟D,所有節點都知道全局最好,並且該算法以達成共識完成。
例如,假定下面的拓撲結構(d = 2)和id的值:
(1) (2)
1-----2
| |
| |
4-----3
(4) (3)
括號中的IDS表示到目前爲止由每個節點目前已知最好的ID。
第一次迭代(d = 1)沿水平軸的工作原理,並且終止如下:
(2) (2)
1-----2
| |
| |
4-----3
(4) (4)
第二個(最後一個)迭代(d = 2)沿垂直軸的工作原理,並且終止如下所示:
(4) (4)
1-----2
| |
| |
4-----3
(4) (4)
根據需要(最高ID)選擇了節點號4。
消息計數複雜
對於我們恰好具有2個消息(一個在每個方向)的超立方體的每個邊緣。由於維數爲D的超立方體中邊數的公式爲E = D * 2 ^(D-1),我們恰好有M = D * 2^D個消息。爲了計算作爲N(節點數)的函數的複雜度,回想一下N = 2^D,所以M = N * logN。
是的,它非常有幫助,它幫助我們理解了這個關鍵想法,但是我也想知道如何爲它創建一個算法,因爲有幾種方法可以做這次選舉(我後來想到了) 。通過您的幫助和我自己的想法,我設法開發了一種算法。我會在幾周內發佈我的解決方案。 非常感謝您的麻煩和您的時間! – john 2010-05-16 16:21:29
- 1. 有向圖中的領導者選舉算法
- 2. 領導者選舉SolrCloud + Zookeeper
- 3. 領導選舉
- 4. Gridgain領導者選舉模式
- 5. 分佈式系統:領導者選舉
- 6. 領導者選擇
- 7. 發現服務和領導選舉算法
- 8. SQS/SNS領導人選舉?
- 9. 應用領導與java領事選舉
- 10. 建立新的服務領導者並通知領導
- 11. Hadoop超立方體
- 12. 節點在SOLR中出現故障後未選舉領導者
- 13. 選舉算法 - 環算法
- 14. 海龜羣體的領導者選擇NetLogo
- 15. 烏龜羣體的領導者選擇(NetLogo)
- 16. Zookeeper Node選擇領導者的策略?
- 17. Spring Cloud支持領導選舉
- 18. 旋轉立方體,使面向前的面保持正方形
- 19. 當ZooKeeper在ZooKeeper服務器中有領導者選舉時,爲什麼策展人會在'流程'中進行領導者選舉?
- 20. 關於領導人選舉的一些想法
- 21. 二維立方體在畫布算法
- 22. rubiks立方體旋轉算法
- 23. 基於paxos的複製密鑰值存儲區的領導者選舉
- 24. 填充立方體(背面剔除算法)?
- 25. 在android中查找面向相機的立方體的側面
- 26. 計算超立方體中座標的數量
- 27. n-D樹 - 計算超立方體的座標
- 28. 評論Vim中的比賽 - 獨立評論的領導者?
- 29. 改變MacVim的領導者?
- 30. 無法確定當前領導者
我們需要更多的信息。一個示例案例可能會有很大的幫助。 – Guru 2010-05-15 14:58:19
您需要哪些更多信息? – john 2010-05-15 15:02:19
示例輸入,預期輸出以及您所困擾的內容。 – 2010-05-15 15:05:28