330 likes | 350 Views
Self Stabilizing Algorithms for Topology Management. Presentation: Deniz Çokuslu. A Self-Stabilizing Distributed Algorithm to Construct An Arbitrary Spanning Tree of a Connected Graph. Gheorghe Antonoiou, Pradip K Srimani (1995). Motivation. Self-Stabilizing Algorithms
E N D
Self Stabilizing Algorithms for Topology Management Presentation: Deniz Çokuslu
A Self-Stabilizing Distributed Algorithm to Construct An Arbitrary Spanning Tree of a Connected Graph Gheorghe Antonoiou, Pradip K Srimani (1995)
Motivation • Self-Stabilizing Algorithms • Malfunctions and perturbations bring the system to some illegitimate state • It is desirable that the system be automatically brought back to the legitimate state without the interference of an external agent • Systems that reach the legitimate state starting from any illegitimate state in a finite number of steps are called self-stabilizing systems • This kind of property is highly desirable for any distributed system, since without having a global memory, global synchronization is achieved in finite time and thus the system can correct itself automatically from spurious perturbation or failures.
Motivation • Every node in a self-stabilizing system has a set of rules, each rule having two parts • Antecedent part (boolean condition) • Action part • A node is said to be privileged if the antecedent part of some rule is true for that node. • Privileged nodes execute their action part (make a move) • Changing the local state • Changing the values of the local variables • Any privileged node that makes a move is called an active node.
Motivation • The objective of this work is to develop a self-stabilizing algorithm that maintains any arbitrary spanning tree • There exist self-stabilizing algorithms for the spanning tree problem but these algorithms always construct a breadth-first spanning tree; they cannot recognize an arbitrary spanning tree • The algorithm also allows multiple active nodes at the same time
The Algorithm • Definitions • r: Root node • n: number of nodes in the graph • N(i): set of the neighbors of node i • L(i): level of node i • P(i): predecessor pointer of node i, pointing to one of the nodes in V. • The basic idea is whenever the system is in an illegitimate state at least one of the nodes should be able to recognize it and should take some corrective action
The Algorithm • Predicate 1: • The system is in a legitimate (stable) state iff
The Algorithm • Predicate 2: • The predicate is true for a node i iff there exists at least one neighbor of node i with a level less than that of node i
The Algorithm • The rule at node i: • Reminder:
The Algorithm • Remarks: • The root node may be privileged in an illegitimate state, but once it takes action it becomes un privileged and can never be privileged again. This is not true for other nodes • If a privileged node changes only its level value (and not the predecessor), we call this a type I move; otherwise if it changes both its level and predecessor we call it a type II move • If a privileged node makes a type II move, it becomes un privileged and remains so until the new predecessor node takes some action; if a privileged node makes a type I move, it may still be privileged after the move. • The root node r is privileged iff ; any other node is privileged iff
The Algorithm • Example Operation:
A Self-Stabilizing Distributed Algorithm to Construct BFS Spanning Trees of a Symmetric Graph Sumit Sur, Pradip K Srimani (1992)
The Algorithm • The objective of the algorithm is to construct a BFS spanning tree on an arbitrary connected symmetric graph • The algorithm is similar to the previous one, only small changes in the predicates and rules • Following subset is defined: • Predicate:
The Algorithm • In any connected symmetric graph, the legitimate state represents a BFS spanning tree • Proof. Root node has level 0, and all its neighbors have level 1. Similarly all neighboring nodes of the level 1 nodes except r have a level of 2. Repeating this argument for all the nodes, we see that the predecessor pointers give a BFS spanning tree
The Algorithm • The algorithm has one rule for the self-stabilization property:
The Algorithm • Example: r,0 a,5 r,0 a,5 d,4 d,4 e,5 e,5 c,5 b,4 c,5 b,4 r,0 a,5 r,0 a,5 d,4 d,1 e,5 e,5 c,1 b,4 c,1 b,4
The Algorithm • Example: r,0 a,1 r,0 a,1 d,1 d,1 e,5 e,5 c,1 b,4 c,1 b,2 r,0 a,1 d,1 e,2 c,1 b,2
Self-Stabilizing Multicast Protocols for Ad-Hoc Networks Sandeep K.S. Gupta, Pradip K Srimani (2002)
Motivation • Two distributed algorithms are proposed • Shortest path spanning tree (SPST) • SPST is a distributed self-stabilizing algorithm which maintains a shortest-path tree rooted at the center node (r) • Minimal spanning tree (MST) • MST is a distributed self-stabilizing algorithm which maintains minimal weight spanning tree on a uniquely weighted graph
SPST Algorithm • A center based multicast tree is shared by all the multicast group members • When a source wants to multicast a message, it sends the message to the center node (r) • A good center finding algorithm is assumed to find the center node
SPST Algorithm • Definition: • The shortest path spanning tree of a given symmetric graph is defined to be a spanning tree of the graph where the distance of each node from the given root in the tree is equal to the shortest distance of the node from the root node in the original graph • Si(r) is the length of the shortest path from node i to r • Di(r) is the current estimate of Si(r) at node i • Pi is the predecessor pointer of node i • N(i) contains neighboring nodes of i that are currently estimated shortest paths from node i to r
SPST Algorithm • In an illegitimate state, any node i, including the reference node r • Can have an arbitrary value for Di(r) between 0 and some large positive number (MAXINT) • Can point to an arbitrary node to be its predecessor in the shortest path spanning tree • The system is inthe legitimate state iff • Any state which is not legitimate is an illegitimate or unstable state
SPST Algorithm • The idea is that whenever the system is in an illegitimate state, at least one node recognizes it and takes corrective action • Each node looks at the states of its adjacent neighbors and checks the local satisfiability of the global legitimate state • Each node executes the following code
MST Algorithm • The minimal spanning tree (MST) of the graph is defined to be a spanning tree of the graph such that the sum of the weights of the edges inthe tree is less than or equal to that for all possible spanning trees of the graph • REMARK: If the weights of a graph are unique (distinct), the graph has a unique MST
MST Algorithm • Definitions: • α-cost of any path from node i to j is defined to be the maximum of the weights of the edges belonging to the path • ψij is defined to be the minimum among the α-cost of all possible paths between the nodes i and j • Minimum-α path is the path along which ψij is defined (not the shortest path) • D(i) the current estimate of ψir as known at node i • L(i) level of node i, the current estimate of the number of edges on the minimum α-cost path • First develop a self-stabilizing algorithm to find minimum-α cost path and generalize it
MST Algorithm - Minimum-α cost path • Minimum-α cost path • Each node i attempts to compute the α-cost of the shortest path to the node r • Each node maintains two data structures: D(i) and L(i) • The pair (D(i),L(i)) gives the state of the node i • Definitions: • is the set of nodes which have level values smaller than a constant C • .
MST Algorithm - Minimum-α cost path • In a legitimate state, L(r) = D(r) = 0 • In a legitimate state, any node x other than r, with L(x) < C has Nc(X) != Ø and has at least one neighbor y such that L(y) = Lmin(x) - 1 • In a legitimate state, when no node is privileged, for any arbitrary node x, L(x) < C • In a legitimate state, when no node is privileged, for any arbitrary node x, we have D(x) = ψxr • The protocol terminates, i.e., the system reaches a legitimate state after at most n rounds, where n is the number of nodes in the graph
MST Algorithm • Instead of the simple local variable D(i), each node i now maintains a local array Di[1...n] • And instead of the simple local variable L(i) each node i now maintains a local array Li[1...n] • The value of Di[j] gives the cost of the minimum-α cost path from node i to j • Similarly, the value of Li[j] is the value of the level of node i with respect to the implicit tree rooted at node j • ψij denotes the cost of the minimum-α cost path from node i to node j for all i and • Ωi at each node i keeps track of the MST edges incident on node i
MST Algorithm • Construction of the MST is completed by at most n rounds • The process of rooting the MST at the source node r takes at most n rounds, after the MST has stabilized • The MST protocol stabilizes in at most 2n rounds