160 likes | 309 Vues
This seminar, led by Mohammad Reza Akhavan at Lulea University of Technology, covers Breadth-First Search (BFS) and its applications in networking algorithms. The session provides insights into rooted trees, spanning trees, and the BFS algorithm's mechanics. Attendees will learn how BFS visits nodes to determine graph connectivity, finds shortest paths, and detects cycles. The importance of labeling nodes based on distance from a root node is emphasized. Key resources include "Introduction to Distributed Algorithms" by Gerard Tel.
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 !