Chapter 15.5 from “Distributed Algorithms” by Nancy A. Lynch Minimum Spanning Tree Kevin Schaffer Chapter 15.5 from “Distributed Algorithms” by Nancy A. Lynch
GHS Named for Gallager, Humblet, and Spira Synchronous version is SynchGHS Components are combined into larger components through minimum-weight outgoing edges (MWOEs) Assuming all weights to be unique ensures a unique MST Combining is done in levels; at level k all components have at least 2k nodes
Difficulties in GHS Processes i and j might be in the same component but not realize it since process j might not have received notification Components might be combined in an unbalanced way leading to a O(n2) message complexity Possible interference from components at different levels
How GHS Works Processes in a component work together to find the MWOE Once found, the component and the one attached to it across the MWOE combine into a new component Every component has a level, but levels are not synchronized Initially components are individual nodes with level 0 Process continues until there is one component
Combining Components Components C and C’ can combine in one of two ways Merge: If level(C) = level(C’) and C and C’ share a common MWOE then they form a new component whose level is level(C) + 1 Absorb: If level(C) < level(C’) and the MWOE of C connects to a node in C’ then C is added to C’ Ensures that components do not become unbalanced if some lag behind
Messages in GHS initiate: Starts the process to find an MWOE and carries the component identifier report: Convergecast MWOE information test, accept, reject: Test whether neighbors belong to the same component changeroot, connect: Combine components
Complexity of GHS Message complexity: O(n log n + |E|) test messages that lead to rejection and reject messages: O(|E|) All other messages: O(n log n) Time complexity: O(n log n(l + d))
SimpleMST Works more like SynchGHS Processes wait until all their neighbors are at the same level before continuing Much simpler than GHS Higher message complexity: O(|E| log n) Same time complexity