Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 26

TRAVERSAL

ALGORITHMS

D7022E - Formal methods in telecommunications engineering 

ABIOLA FAMUREWA & SAMUEL IDOWU


TABLE OF CONTENT
 Traversal algorithms
 Traversing cliques
 Traversing tori
 Traversing hypercubes
 Traversing connected networks
▪ Tarry’s algorithm
 Time complexity: depth-first search
 Classical depth-first search
 Awerbuch’s solution
 Cidon’s solution
 Depth-first search with neighbor knowledge
TRAVERSAL ALGORITHMS

Traversal algorithm is a wave algorithm with the following


properties:

 Each computation contains one initiator which starts


computation by sending one message
 when a process receives a message it either sends out one
message or decides
 The algorithm terminates in the initiator and when this
happens, each process has sent a message at least once.
F-TRAVERSAL ALGORITHM

Definition: An algorithm is an f-traversal algorithm (for


a class of networks) if ;

 It is a traversal algorithm

 In each computation at least min (N, x + 1) processes


have been visited after f (x) token passes.
IMPLEMENTATIONS OF TRAVERSAL
ALGORITHMS
The implementations of Traversal algorithm will be studied
using the followings;

 Sequential polling (Traversing cliques)


 Traversing Toris
 Traversing Hypercubes
 Tarry’s algorithm
SEQUENTIAL POLLING ALGORITHM

TRAVERSING CLIQUES
 A clique is traversed by sequential polling
 but only one neighbor of the initiator is polled at a time. i.e. only when a
reply of one neighbor has been received is the next neighbor polled

*polling process is similar to polling algorithm.

Theorem: The sequential polling algorithm is a


2x –traversal algorithm for cliques.

Topology  clique
It is centralized
Message complexity  2N - 2
Time complexity  2N – 2
TRAVERSING TORI
 The n × n torus graph is the graph G =(V, E ), where
V = Zn ×Zn ={(i, j) : 0 < i, j < n} &
E = {(i, j) (i', j’) : (i = i’∧ j’ = j’ ± 1) ∨ ( i= i’ ± 1∧j= j)}

 The torus is an halmitonian graph


It has sense of direction
The coordinate pair (i, j) are used in defining topology and its
sense f of direction
Message complexity  N
Time complexity  N

Theorem: The torus algorithm is an x -traversal algorithm for the


torus.
TRAVERSING TORI
Scenario: token moves from process p to process q by making UP-
moves and RIGHT-moves.

Algorithm details:
 The initiator initiates the process by sending token<num, 1> to
UP
 Each process receives the token <num, k>
 If k = n2 then the process decides, else
 If n/k (i.e. a multiple of k) then send <num, k+1> to UP
 Else send <num, k+1> to RIGHT

 Decision Is taken after n2 times


TRAVERSING HYPERCUBES
 The n –dimensional hypercube is a graph G = (V ,E )
 Hypercube has sense of direction
 The topological knowledge is restricted to the channel labels, and
not known to the processes

 Theorem: The hypercube algorithm is an x-traversal algorithm for


the hypercube.

 Message Complexity  N
 Time complexity  N
 Topology  Hypercube
TRAVERSING HYPERCUBES

Algorithm details

The initiator send <num, 1> token through channel n-1


For each process, upon receipt of the token <num, k>
Check if k=2n then decide
If k ≠ 2n let l be the largest number : 2l / k
Send (num, k+1) through channel l
TRAVERSING CONNECTED NETWORKS
(TARRY’S ALGORITHM)

 Tarry’s algorithm is an important algorithms for traversing


connected networks.
 Works for arbitrary networks.
 Initiator forwards token to one of neighbors, each neighbor
forwards token to all other nodes and when done returns the
token.
 A node is free to chose any node to forward token to.
 The time complexity  2|E|
 message complexity  2|E|
 Topology  Arbitrary
TARRY’S TRAVERSAL ALGORITHM

The algorithm is formulated in the following two rules:

 R1. A node never forwards the token through the same


channel twice.
 R2. A node only forwards the token to its father when there
is no other option.
TARRY’S ALGORITHM

Tarry’s algorithm is a traversal algorithm and it terminates which


can be proved with the following steps.
 The channels incident to an initiator are used once in each
direction
 For each visited process (p), all channels incident to (p) have
been used once in each direction.
 All processes have been visited and each channel has been
used once in both directions.
DEPTH-FIRST SEARCH
ALGORITHMS

Classical Depth First Search


Awerbuch’s Solution
Cidon’s Solution
Depth First Search with neighbor
Knowledge
DEPTH-FIRST SEARCH
 A minor modification of Tarry’s algorithm i.e. restriction of the
freedom of choice of the process enables the algorithm to compute
DFS.
 DFS algorithms are those that compute spanning trees with additional
property:
Each frond edge connects two node, one of which is an ancestor of the
other.
 Frond Edge: An edge that does not belong to the spanning tree.
 Given a rooted spanning tree T of G, for each process P, ∃ T[p] denotes
the set of processes in the sub-tree of P, and ∃ A[p] denotes the
ancestors of p
q ∈ T[p] ⇔ p ∈ A[q]
DEPTH-FIRST SEARCH

 A spanning tree T of G is a DFS tree if, for each frond edge pq, q ∈
T[p] v q ∈ A[p]
 Uses: used in many graph algorithms. E.g. graphs for testing
planarity, bi-connectivity and for the construction of interval
labeling schemes.
 The resulting algorithm after the tweak on Tarry’s algorithm 
Classical Depth-first Search algorithm
 Topology of DFS is Arbitrary
 DSF algorithms are centralized since ∃ only one initiator at each
computation
Classical Depth-first Search

 Time complexity of distributed algorithms:


The maximum time taken by a computation of an algorithm
 Assumption: (correctness of algorithm doesn’t depend on
assumptions)
 T1: A process can execute any finite number of events in Zero time.
 T2: The time between sending and receipt of a message is at most
one time unit.
 Message complexity  2|E|
 Time complexity  2 |E|

 NOTE: for traversal algorithm, the time complexity equals the


message complexity since messages are exchanged serially, and
each may take one time unit.
Distributed Depth-first Search
 Classical DFS algorithm is obtained when freedom in Tarry’s
algorithm is restricted by adopting the following third rule:
R3: When a process receives the token it sends it back through
the same channel if this is allowed by R1 and R2

R1. A node never forwards the token through the same channel twice.
R2. A node only forwards the token to its father when there is no other
option.

 Theorem: The classical depth-first search algorithm computes a


depth-first search spanning tree using 2|E| messages and 2|E| time
units.
DFS Algorithm (Linear Time)

 Classical DFS is characterized by high time complexity because all


edges, tree edges and fronds are traversed serially.
 Token <tok> message traverse all frond edges and return
immediately in classical DFS
 To achieve lower time complexity:
 Token <tok> only traverses tree edges. This gives a linear time
since there are only N- 1 edges
Awerbuch’s Solution
 Algorithm include mechanism that prevents the transmission of
the token through a frond edge.

 Ensures that each process knows


 at the moment when it must forward the token.
 Which of its neighbors have been visited already.

 A process chooses an unvisited neighbor or sends the token to its


own father if no such neighbor exists.

 When process p is first visited by a <tok>, p informs each neighbor


r, except its father of the visit by sending a <vis> message to r.
Awerbuch’s Solution
 The forwarding of the token is suspended until p has received and
<ack> message from each neighbor.

 When later, the token arrives at r, r will not forward the token to P,
unless P is r’s father.

 Awerbuch’s algorithm computes a depth-first search tree in 4N – 2


time units and uses 4.|E| messages

 The sending of <vis> message can be omitted for the neighbor to


which a process forwards the token. This improvement saves 2
messages per tree edge and hence reduces the message
complexity by 2N-2 messages
Cidon’s Solution
 AIM: To improve on the time complexity of Awerbuch’s algorithm
by not sending the <ack> message used in Awerbuch.
Algorithm description
 In Cidon’s modified algorithm, the token is forwarded immediately
i.e. it cancelled the two time unit delay introduced in Awerbuch’s
algorithm(by waiting for <ack>)
Special Situation
 A process p sent a <vis> message to its neighbor r after receiving a
<tok> message
 The token later visits r, but at the moment r receives the token,
the <vis> message of p has not yet reached r.
Cidon’s Solution
 In this case, r may forward the token to p via the frond edge
(differs from Awerbuch’s because, there is a need for <ack> to be
received in Awerbuch’s solution).
 Process p records neighbors it most recently sent the token in a
variable mrsp.
 Process r receives p’s <vis> message after sending the token to p,
i.e. r, receives a <vis> message from neighbour mrsr.
 In the above case, r acts as if no token has been sent to p; r selects
a next neighbor and forwards the token.
 Cidon’s Algorith computes a DFS tree in 2N-2 time units using 4.|E|
messages.
Cidon’s Solution
 Analysis: Cidon’s algorithm sends fewer messages than
Awerbuch’s algorithm in many cases
 The above analysis of the number of messages assumes the most
pessimistic case:
 Token message is sent through each frond in both directions
 Observation: Cidon observes that even though the algorithm may
send the token to previously visited nodes, it has a better time,
communication complexity than Awerbuch’s algorithm, which
prevents such undesireable transmission.
 Suggestion: less time and fewer messages may be spent in
recovering from unnecessary actions than in avoiding these
actions.
DFS with Neighbor Knowledge

 A list L of visited processes included in a token can be used to avoid


traversal of fronds by token ⇔processes know the identity of their
neighbors.
 A process p, receiving the token with list L, does not forward the
token to a process in list L.
 The DFS algorithm with neighbor knowledge is a traversal algorithm
and computes a depth-first search tree using 2N-2 messages in 2N-2
time units.
 Observation: bit complexity is high ; if w is the no. of bits needed to
represent one identity  list L may require up to N.w bits.
summary

You might also like