簡易檢索 / 詳目顯示

研究生: 李夏新
Hsia-Hsin Li
論文名稱: 一個空間效率高之自我穩定雙連接演算法
A Space Efficient Self-stabilizing Biconnectivity Algorithm
指導教授: 黃興燦
Shing-Tsaan Huang
口試委員:
學位類別: 碩士
Master
系所名稱: 電機資訊學院 - 資訊工程學系
Computer Science
論文出版年: 2001
畢業學年度: 89
語文別: 中文
論文頁數: 27
中文關鍵詞: 自我穩定演算法雙連接元件節點
外文關鍵詞: Self-stabilizing Algorithm, Biconnected Component, Articulation Point, Bridge
相關次數: 點閱:2下載:0
分享至:
查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報
  • 本論文提出一個空間效率高 (Space Efficient) 的解決雙連接問題(Biconnectivity Problem) 之自我穩定演算法 (Self-stabilizing Algorithm)。
    在分散式系統 (Distributed System) 中,經常會有某些電腦因當機導致正在執行計算中的資料遺失,或是傳輸資料的過程中因為網路的不穩定而遺失所傳輸的資料。對於因應我們所要解決的問題所設計出來的演算法,若其符合自我穩定 (Self-stabilizing) 的特性,則該演算法就具有在計算過程中,不論發生任何資料的遺誤,只要系統恢復穩定後,可以在有限的時間之內正確地完成所要求的工作。換句話說,自我穩定演算法具有不需要系統初始化以及可以容錯的優點。

    雙連接問題 (Biconnectivity Problem) 即是在一個連接的無向圖 (Connected, Undirected Graph)中找出其節點 (Articulation Points) 、橋 (Bridges) ,以及雙連接元件 (Biconnected Components)。本論文提出一個空間效率高 (Space Efficient) 的解決雙連接問題之自我穩定演算法。在所有相關研究中,目前存在的演算法其空間複雜度 (Space Complexity) 最好的僅 O(nlogn),其中 n 為系統的行程 (processes) 總數。本論文主要的貢獻在提出一個空間複雜度 O(dlogn) 之演算法,其中 d 為系統之度數 (Degree)。

    一個分散式系統下是由一群行程 (Processes)、或簡稱點所組成。點與點之間可由通訊線路、或簡稱邊所連接。在點上可存有變數、並執行演算法,其演算法可參考之變數僅限於位於該點以及該點鄰居之變數。演算法之表示形式為一群規則 (Rules) 之集合,規則部分可細分為兩部分:判斷 (Guard) 部及行動 (Action) 部。若某點含有符合判斷部所敘述之條件,稱該點享有特權 (Privileged)。本論文所提出之自我穩定演算法是在同步分散式模型 (Synchronized Distributed Model) 之下,即系統在享有特權之點之中任意挑選一部分執行行動部,且所有執行動作皆同時開始及完成。此外另假設系統執行是具有公平性的 (Fairness),即享有特權之點必定會在有限時間之內執行其行動部。

    本論文所提出之演算法細分為四層 (Layers)。第一層稱為建樹 (Tree) 層,其目的在建構一寬先展開樹 (Breadth-first Spanning Tree)。第二層稱為前序 (Preorder) 層,其目的在將展開樹上各點以前序編號。第三層稱為切割 (Cut) 層,其目的在邊上留下切割,切割後所有連接在一起的點即屬於同一雙連接元件。第四層稱為著色 (Color) 層,其目的在將邊著色,使得屬於同一雙連接元件之邊擁有相同的顏色。

    自我穩定演算法正確性之證明分為兩部分,一為封閉性 (Closure),一為收斂性 (Convergence)。封閉性表示一旦系統之狀態已符合合法 (Legitimate) 狀態,則未來狀態必為合法狀態;收斂性表示非法 (Illegitimate) 狀態之系統必定在有限時間之內成為合法狀態。


    In this thesis, a space efficient, self-stabilizing algorithm for finding biconnected components, articulation points, and bridges of an undirected graph is proposed.
    An algorithm is self-stabilizing if executing the algorithm brings the system into a set of legitimate states in bounded time, and the system stays in the legitimate states thereafter. Self-stabilizing algorithms have the desirable properties that no initialization is needed for the system, and the system can recover from transient failures.

    There are many works related to the biconnecticity problem, but all known self-stabilizing solutions to the problem have a space complexity of O(nlogn), where n is the total number of processes in the system. Our main contribution is to provide a self-stabilizing algorithm with a space complexity of O(dlogn), where d is the maximum degree of the nodes in the system.

    The algorithm starts with constructing a breadth-first spanning tree in the first layer, and ends with edge coloring in the final layer. The edges having the same color belongs to the same biconnected component. This edge color information can be used to determine biconnected components, articulation points, and bridges of the graph.

    Chapter 1 Introduction Chapter 2 Computational Model Chapter 3 The Algorithm 3.1. The Cutting Rule 3.2. Tree Layer 3.3. Preorder Layer 3.4. Cut Layer 3.5. Color Layer 3.6. Biconnected Components, Articulation Points and Bridges 3.7. Execution Example Chapter 4 Correctness Chapter 5 Concluding Remarks References

    [Aho74] Alfred V. Aho, John E. Hopcroft and Jeffery D. Ullman, The Design and Analysis of Computer Algorithms, Addison-Wesley, 1974, pp. 176-187.
    [Ahu89] Mohan Ahuja and Yahui Zhu, An efficient distributed algorithm for finding articulation points, bridges, and biconnected components in asynchronous networks, 9th Conference on Foundations of Software Technology and Theoretical Computer Science, Banglore, India, 1989, LNCS 405, pp. 99-108.
    [Aro94] Anish Arora and Mohamed G. Gouda, Distributed reset, IEEE Transactions on Computers, 1994, vol. 43, pp. 1026-1038.
    [Baa78] Baase, Computer Algorithms: Introduction to Design and Analysis, Addison-Wesley, 1978, pp. 184-191.
    [Cha99] Pranay Chaudhuri, A note on self-stabilizing articulation point detection, Journal of Systems Architecture, 1999, vol. 45, pp. 1249-1252.
    [Dij74] E. W. Dijkstra, Self-stabilizing systems in spite of distributed control, Communications of the Association of the Computing Machinery, 1974, vol. 17, no. 11, pp. 643-644.
    [Hor78] Horowitz and Sahni, Fundamentals of Computer Algorithms, Computer Science Press, 1978, pp. 302-309.
    [Hua89] Shing-Tsaan Huang, A new distributed algorithm for biconnectivity problem, Proceedings of the International Conference on Parallel Processing, Illinois, U.S.A., 1989, vol. 3, pp. 106-113.
    [Hua92] Shing-Tsaan Huang and Nian-Shing Chen, A self-stabilizing algorithm for constructing breadth-first trees, Information Processing Letters, 1992, vol. 41, pp. 109-117.
    [Hua94] Shing-Tsaan Huang, Lih-Chyau Wuu and Ming-Shin Tsai, Distributed execution Model for Self-stabilizing Systems, Proceedings of the 14th International Conference on Distributed Computing Systems, 1994, pp. 432-439.
    [Kar99] Mehmet Hakan Karaata and Pranay Chaudhuri, A self-stabilizing algorithm for bridge finding, Distributed Computing, 1999, vol. 12, pp. 47-53.
    [Kar99a] Mehmet Hakan Karaata, A self-stabilizing algorithm for finding articulation points, International Journal of Foundations of Computer Science, 1999, vol. 10, no. 1, pp. 33-46.
    [Nes99] Mikhail Nesterenko and Anish Arora, Stabilization-preserving Atomicity Refinement, 13th International Symposium on Distributed Computing, Bratislava, Slovak Republic, 1999, pp. 254-268.
    [Par91] Jungho Park, Nobuki Tokura, Toshimitsu Masuzawa and Ken'ichi Hagihara, Efficient distributed algorithms solving problems about the connectivity of network, Systems and Computers in Japan, 1991, vol. 22, no. 8, pp. 1-16.
    [Pat71] Keith Paton, An algorithm for the blocks and cutnodes of a graph, Communications of the ACM, 1971, vol. 14, no. 7, pp. 468-475.
    [Sch93] M. Schneider, Self-stabilization, ACM Computer Surveys, 1993, vol. 25, pp. 45-67.
    [Tar84] Robert E. Tarjan and Uzi Vishkin, Finding biconnected components and computing tree functions in logarithmic parallel time, Proceedings of the 25th Annual IEEE Symposium on Foundations of Computing, 1984, pp. 12-20.
    [Tar85] Robert E. Tarjan and Uzi Vishkin, An efficient parallel biconnectivity algorithm, SIAM Journal of Computing, 1985, vol. 14, no. 4, pp. 862-874.
    [Tsi83] Yung H. Tsin and Francis Y. Chin, A general program scheme for finding bridges, Information Processing Letters, 1983, vol. 17, pp. 269-272.
    [Tsi84] Yung H. Tsin and Francis Y. Chin, Efficient parallel algorithms for a class of graph theoretic problems, SIAM Journal of Computing, 1984, vol. 13, no. 3, pp. 580-599.

    無法下載圖示 全文公開日期 本全文未授權公開 (校內網路)
    全文公開日期 本全文未授權公開 (校外網路)
    全文公開日期 本全文未授權公開 (國家圖書館:臺灣博碩士論文系統)
    QR CODE