Spanning Trees Longin Jan Latecki Temple University based on slides by

Slides:



Advertisements
Similar presentations
BackTracking Algorithms
Advertisements

10.4 Spanning Trees. Def Def: Let G be a simple graph. A spanning tree of G is a subgraph of G that is a tree containing every vertex of G See handout.
3.3 Spanning Trees Tucker, Applied Combinatorics, Section 3.3, by Patti Bodkin and Tamsen Hunter.
Graph Search Methods A vertex u is reachable from vertex v iff there is a path from v to u
Graph Search Methods A vertex u is reachable from vertex v iff there is a path from v to u
Breadth-First and Depth-First Search
Graph Search Methods Spring 2007 CSE, POSTECH. Graph Search Methods A vertex u is reachable from vertex v iff there is a path from v to u. A search method.
Graph Algorithms: Minimum Spanning Tree We are given a weighted, undirected graph G = (V, E), with weight function w:
Spanning Trees.
Spanning Trees. 2 Spanning trees Suppose you have a connected undirected graph Connected: every node is reachable from every other node Undirected: edges.
Module #1 - Logic 1 Based on Rosen, Discrete Mathematics & Its Applications. Prepared by (c) , Michael P. Frank and Modified By Mingwu Chen Trees.
Spanning Trees. Spanning trees Suppose you have a connected undirected graph –Connected: every node is reachable from every other node –Undirected: edges.
Backtracking.
1 Minimum Spanning Trees Longin Jan Latecki Temple University based on slides by David Matuszek, UPenn, Rose Hoberman, CMU, Bing Liu, U. of Illinois, Boting.
Minimum Spanning Trees. Subgraph A graph G is a subgraph of graph H if –The vertices of G are a subset of the vertices of H, and –The edges of G are a.
1 Minimum Spanning Trees Longin Jan Latecki Temple University based on slides by David Matuszek, UPenn, Rose Hoberman, CMU, Bing Liu, U. of Illinois, Boting.
Chapter 14 Graphs. © 2004 Pearson Addison-Wesley. All rights reserved Terminology G = {V, E} A graph G consists of two sets –A set V of vertices,
1 Spanning Trees Longin Jan Latecki Temple University based on slides by David Matuszek, UPenn, Rose Hoberman, CMU, Bing Liu, U. of Illinois, Boting Yang,
Graphs. Definitions A graph is two sets. A graph is two sets. –A set of nodes or vertices V –A set of edges E Edges connect nodes. Edges connect nodes.
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley. Ver Chapter 13: Graphs Data Abstraction & Problem Solving with C++
1 Spanning Trees Longin Jan Latecki Temple University based on slides by David Matuszek, UPenn, Rose Hoberman, CMU, Bing Liu, U. of Illinois, Boting Yang,
COSC 2007 Data Structures II
© 2006 Pearson Addison-Wesley. All rights reserved 14 A-1 Chapter 14 Graphs.
Graph Searching CSIT 402 Data Structures II. 2 Graph Searching Methodology Depth-First Search (DFS) Depth-First Search (DFS) ›Searches down one path as.
Backtracking. 2 Suppose you have to make a series of decisions, among various choices, where You don’t have enough information to know what to choose.
© 2006 Pearson Addison-Wesley. All rights reserved14 B-1 Chapter 14 (continued) Graphs.
Brute Force and Exhaustive Search Brute Force and Exhaustive Search Traveling Salesman Problem Knapsack Problem Assignment Problem Selection Sort and Bubble.
Review Graph Directed Graph Undirected Graph Sub-Graph Spanning Sub-Graph Degree of a Vertex Weighted Graph Elementary and Simple Path Link List Representation.
Data Structures & Algorithm Analysis lec(8):Graph T. Souad alonazi
Graphs A New Data Structure
Graphs Chapter 20.
Backtracking.
Thinking about Algorithms Abstractly
A vertex u is reachable from vertex v iff there is a path from v to u.
Data Structures Graphs - Terminology
Discrete Mathematicsq
Searching Graphs ORD SFO LAX DFW Spring 2007
Csc 2720 Instructor: Zhuojun Duan
Lecture 12 Graph Algorithms
CC 215 Data Structures Graph Searching
CS202 - Fundamental Structures of Computer Science II
CS120 Graphs.
Graph.
CSE 421: Introduction to Algorithms
Graphs Chapter 13.
Search Related Algorithms
Spanning Trees.
What is a Graph? a b c d e V= {a,b,c,d,e} E= {(a,b),(a,c),(a,d),
Chapter 11 Graphs.
Graphs Part 2 Adjacency Matrix
CSE 373 Data Structures Lecture 16
Spanning Trees Longin Jan Latecki Temple University based on slides by
Subgraphs, Connected Components, Spanning Trees
Depth-First Search D B A C E Depth-First Search Depth-First Search
Searching Graphs ORD SFO LAX DFW Spring 2007
Minimum Spanning Trees
Backtracking.
COMP171 Depth-First Search.
Backtracking.
Graph Algorithms "A charlatan makes obscure what is clear; a thinker makes clear what is obscure. " - Hugh Kingsmill CLRS, Sections 22.2 – 22.4.
Depth-First Search CSE 2011 Winter April 2019.
Algorithms: Design and Analysis
Graphs Chapter 7 Visit for more Learning Resources.
A vertex u is reachable from vertex v iff there is a path from v to u.
Spanning Trees Longin Jan Latecki Temple University based on slides by
Chapter 14 Graphs © 2011 Pearson Addison-Wesley. All rights reserved.
Lecture 11 Graph Algorithms
Prof. Ramin Zabih Graph Traversal Prof. Ramin Zabih
Backtracking.
INTRODUCTION A graph G=(V,E) consists of a finite non empty set of vertices V , and a finite set of edges E which connect pairs of vertices .
Presentation transcript:

Spanning Trees Longin Jan Latecki Temple University based on slides by David Matuszek, UPenn, Rose Hoberman, CMU, Bing Liu, U. of Illinois, Boting Yang, U. of Regina

Spanning trees Suppose you have a connected undirected graph Connected: every node is reachable from every other node Undirected: edges do not have an associated direction ...then a spanning tree of the graph is a connected subgraph with the same nodes in which there are no cycles A connected, undirected graph Four of the spanning trees of the graph

Theorem A simple graph is connected iff it has a spanning tree. Proof. We assume that a graph G is connected. If G has a simple circuit, we remove one edge from it. We repeat this step, until there is no more circuits in G. Let T be the obtained subgraph. T has the same nodes as G, since we did not remove any node. T has no circuits, since we removed all circuits. T is connected, since in every circuit there was an alternative path. The proof in the opposite direction is very simple. Since the presented algorithm to construct a spanning tree is very inefficient, we need a better one.

Finding a spanning tree To find a spanning tree of a graph, pick an initial node and call it part of the spanning tree do a search from the initial node: each time you find a node that is not in the spanning tree, add to the spanning tree both the new node and the edge you followed to get to it An undirected graph One possible result of a BFS starting from top One possible result of a DFS starting from top

Graph Traversal Algorithm To traverse a tree, we use tree traversal algorithms like pre-order, in-order, and post-order to visit all the nodes in a tree Similarly, graph traversal algorithm tries to visit all the nodes it can reach. If a graph is disconnected, a graph traversal that begins at a node v will visit only a subset of nodes, that is, the connected component containing v.

Two basic traversal algorithms Two basic graph traversal algorithms: Depth-first-search (DFS), also called backtracking After visiting node v, DFS proceeds along a path from v as deeply into the graph as possible before backing up Based on stack Breadth-first-search (BFS) After visit node v, BFS visits every node adjacent to v before visiting any other nodes Based on queue

Depth-first search (DFS) DFS strategy looks similar to pre-order. From a given node v, it first visits itself. Then, recursively visit its unvisited neighbors one by one. DFS can be defined recursively as follows. procedure DFS(G: connected graph with vertices v1, v2, …, vn) T:=tree consisting only of the vertex v1 visit(v1) mark v1 as visited; procedure visit(v: vertex of G) for each node w adjacent to v not yet in T begin mark w as visited; add vertex w and edge {v, w} to T visit(w); end

x x x x x DFS example v3 v2 v2 v3 v1 v1 v4 v5 v4 G v5 Start from v3 1

Backtracking (animation) dead end ? dead end dead end ? start ? ? dead end dead end ? success!

Coloring a map You wish to color a map with not more than four colors red, yellow, green, blue Adjacent countries must be in different colors You don’t have enough information to choose colors Each choice leads to another set of choices One or more sequences of choices may (or may not) lead to a solution Many coloring problems can be solved with backtracking

Full example: Map coloring The Four Color Theorem states that any map on a plane can be colored with no more than four colors, so that no two countries with a common border are the same color For most maps, finding a legal coloring is easy For some maps, it can be fairly difficult to find a legal coloring

Backtacking We go through all the countries recursively, starting with country zero At each country we decide a color It must be different from all adjacent countries If we cannot find a legal color, we report failure If we find a color, we use it and recurred with the next country If we ran out of countries (colored them all), we reported success When we returned from the topmost call, we were done

Solution for this map Solution found = true map[0] is red map[1] is yellow map[2] is green map[3] is blue map[4] is yellow map[5] is green map[6] is blue map[7] is red

Breadth-first search (BFS) BFS strategy looks similar to level-order. From a given node v, it first visits itself. Then, it visits every node adjacent to v before visiting any other nodes. 1. Visit v 2. Visit all v’s neighbors 3. Visit all v’s neighbors’ neighbors … Similar to level-order, BFS is based on a queue.

Algorithm for BFS procedure BFS(G: connected graph with vertices v1, v2, …, vn) T:= tree consisting only of vertex v1 L:= empty list put v1 in the list L of unprocessed vertices; while L is not empty begin remove the first vertex v from L for each neighbor w of v if w is not in L and not in T then add w to the end of the list L add w and edge {v, w} to T end

x x x x x BFS example v5 v2 v3 v1 v3 v4 v4 v2 v5 G v1 Start from v5 1 Visit Queue (front to back) v5 empty v3 v4 v3, v4 v2 v4, v2 v1 1 v5 v1 v4 v3 v5 v2 G v3 2 v4 3 x x x v2 4 x x v1 5

Backtracking Applications Use backtracking to find a subset of {31, 27, 15, 11, 7, 5} with sum equal to 39.