160 likes | 281 Views
Breadth-First Search. Seminar – Networking Algorithms CS and EE Dept. Lulea University of Technology 27 Jan. 2005 Mohammad Reza Akhavan. Outline (BFS). Rooted Tree Spanning Tree Breadth-First Search BFS Algorithm Example. Rooted Tree.
E N D
Breadth-First Search Seminar – Networking Algorithms CS and EE Dept. Lulea University of Technology 27 Jan. 2005 Mohammad Reza Akhavan
Outline (BFS) • Rooted Tree • Spanning Tree • Breadth-First Search • BFS Algorithm • Example
Rooted Tree • A rooted tree is a tree in which a special node is singled out. This node is called the "root“. A tree which is not rooted is sometimes called a free tree. Rooted Tree Free Tree
Spanning Tree A spanning tree in a graph G with n nodes and m edges: • A sub-graph that connects all the nodes. • A sub-graph with no cycles. • A sub-graph with m=n-1 edges.
Breadth-First Search • Visits all the nodes and edges of G • Determines whether G is connected • Computes the connected components of G • Find and report a path with the minimum number of edges between two given nodes • Find a simple cycle, if there is one • Provide the shortest path from a given root to all other nodes of the network
BFS for Shortest Path (i=0) s 0 • The algorithm uses a mechanism for setting and getting “labels” of nodes and edges. • Nodes whose distance from s is 0 are labeled.
BFS for Shortest Path (i=1) s 1 0 1 1 Nodes whose distance from s is 1 are labeled.
BFS for Shortest Path (i=2) 1 s 0 2 2 1 2 1 Nodes whose distance from s is 2 are labeled.
1 s 0 2 2 3 1 2 1 BFS for Shortest Path (i=3) Nodes whose distance from s is 3 are labeled. The next iteration finds out that the whole graph is labeled and therefore the procedure stops.
1 s 0 2 2 3 1 2 1 s 1 0 2 2 3 1 2 1 The BFS Tree
BFS Algorithm • The algorithm uses a mechanism for setting and getting “labels” of nodes and edges • Search a graph by increasing distance from the starting vertex (or from the starting vertices in case of several connected components). • Can think of creating one level after the other (by increasing depth).
BFS – Asynchronies Mode 0 1 1 1 3 2 3 2 2 2 4 2 3 3 4 3 4 2 3 4 4 5 4 3 7 5 7 7 4 6 6
References: • Introduction to Distributed Algorithms by Gerard Tel. • Google !