Spanning Trees Discrete Mathematics · 2020. 5. 3. · Spanning Trees 6. Example of Depth-First...

16
Spanning Trees Discrete Mathematics Spanning Trees 1

Transcript of Spanning Trees Discrete Mathematics · 2020. 5. 3. · Spanning Trees 6. Example of Depth-First...

Page 1: Spanning Trees Discrete Mathematics · 2020. 5. 3. · Spanning Trees 6. Example of Depth-First Search a d i j b e g h k c f f h j i g b a e c d k Grapg G Spanning tree of G We arbitrarily

Spanning Trees Discrete Mathematics

Spanning Trees 1

Page 2: Spanning Trees Discrete Mathematics · 2020. 5. 3. · Spanning Trees 6. Example of Depth-First Search a d i j b e g h k c f f h j i g b a e c d k Grapg G Spanning tree of G We arbitrarily

Example: Road System

Granby

Farnham Trois-Rivieres

CowansvilleBedford

Sherbrooke

In winter, the highway department wants to plow the fewest roadsso that there will always be cleared roads connecting any twotowns.

Spanning Trees 2

Page 3: Spanning Trees Discrete Mathematics · 2020. 5. 3. · Spanning Trees 6. Example of Depth-First Search a d i j b e g h k c f f h j i g b a e c d k Grapg G Spanning tree of G We arbitrarily

Spanning Tree

Granby

Farnham Trois-Rivieres

CowansvilleBedford

Sherbrooke

Granby

Farnham Trois-Rivieres

CowansvilleBedford

Sherbrooke

Spanning Trees 3

Page 4: Spanning Trees Discrete Mathematics · 2020. 5. 3. · Spanning Trees 6. Example of Depth-First Search a d i j b e g h k c f f h j i g b a e c d k Grapg G Spanning tree of G We arbitrarily

Spanning Tree

Definition

Let G be a simple graph. A spanning tree of G is a subgraph ofG that is a tree containing every vertex of G .

Theorem

A simple graph is connected if and only if it has a spanning tree.

Spanning Trees 4

Page 5: Spanning Trees Discrete Mathematics · 2020. 5. 3. · Spanning Trees 6. Example of Depth-First Search a d i j b e g h k c f f h j i g b a e c d k Grapg G Spanning tree of G We arbitrarily

How to Build a Spanning Tree of a Graph

Remove edges to cut simple circuits until convergence.

Granby

Farnham Trois-Rivieres

CowansvilleBedford

Sherbrooke

Granby

Farnham Trois-Rivieres

CowansvilleBedford

Sherbrooke

This algorithm is inefficient because it requires that simple circuitsbe identified.

Spanning Trees 5

Page 6: Spanning Trees Discrete Mathematics · 2020. 5. 3. · Spanning Trees 6. Example of Depth-First Search a d i j b e g h k c f f h j i g b a e c d k Grapg G Spanning tree of G We arbitrarily

Depth-First Search

We can build a spanning tree for a connected simple graph usingdepth-first search. We will form a rooted tree, and the spanningtree will be will be the underlying undirected graph of this rootedtree.

The depth-first search starting at a given vertex calls thedepth-first search of the neighbour vertices. If a vertex u has manyneighbour vertices v1, v2, v3, ..., the depth-first search at u callsthe depth-first search at v1, which calls the depth-first search of allneighbour of v1, and so on recursively, and this before thedepth-first search of v2, v3, ... The depth-first search is also calledbacktracking, because the algorithm returns to vertices previouslyvisited to add paths.

Spanning Trees 6

Page 7: Spanning Trees Discrete Mathematics · 2020. 5. 3. · Spanning Trees 6. Example of Depth-First Search a d i j b e g h k c f f h j i g b a e c d k Grapg G Spanning tree of G We arbitrarily

Example of Depth-First Search

a d i j

b

e

g

h k

c f

f

h

j

i g

b a

e

cd

k

Grapg G Spanning tree of G

We arbitrarily start with vertex f . A spanning tree is built bysuccessively adding edges incident with vertices not already in thetree, as long as this is possible, then backtracking this path to addedges and vertices not already added to the tree.

Spanning Trees 7

Page 8: Spanning Trees Discrete Mathematics · 2020. 5. 3. · Spanning Trees 6. Example of Depth-First Search a d i j b e g h k c f f h j i g b a e c d k Grapg G Spanning tree of G We arbitrarily

Algorithm of Depth-First Search

procedure visit (v : a vertex of G )for each vertex w adjacent to v

begin

if w is not yet in T then

begin

add the vertex w and the edge {v ,w} to T

visit(w)end

end

Note: T is the spanning tree in construction.Continued on next page...

Spanning Trees 8

Page 9: Spanning Trees Discrete Mathematics · 2020. 5. 3. · Spanning Trees 6. Example of Depth-First Search a d i j b e g h k c f f h j i g b a e c d k Grapg G Spanning tree of G We arbitrarily

Algorithm of Depth-First Search (cont.)

The depth-first search algorithm consists to do the recursive call tothe algorithm visit with initial argument an arbitrarily vertex vi

chosen to be the root.

procedure depth-first search

(G : simple connected graph G with vertices v1, ..., vn)T := an initial tree with vi as root and no more verticesvisit(vi){T is a spanning tree of G}

Spanning Trees 9

Page 10: Spanning Trees Discrete Mathematics · 2020. 5. 3. · Spanning Trees 6. Example of Depth-First Search a d i j b e g h k c f f h j i g b a e c d k Grapg G Spanning tree of G We arbitrarily

Breadth-First Search

First, a vertex of the graph G is arbitrarily chosen as the root ofthe spanning tree. Then all the neighbours of the root are addedto the spanning tree, then all the neighbours of the neighbours ofthe root are added to the spanning tree, and so on until there isare more vertices of the graph G to add to the spanning tree.

Spanning Trees 10

Page 11: Spanning Trees Discrete Mathematics · 2020. 5. 3. · Spanning Trees 6. Example of Depth-First Search a d i j b e g h k c f f h j i g b a e c d k Grapg G Spanning tree of G We arbitrarily

Example of Breadth-First Search

a b c

m k

j

l

d e f g

ih

a c

l m

h g jk

b d f i

e

Simple graph G Spanning tree

The vertex e is arbitrarily chosen as root. The breadth-first searchvisits neighbour vertices b, d , f and i of e, then neighboursvertices a, c , h, g , j and k of the neighbours b, d , f and i , andfinally the neighbours l and m of the neighbours of the neighbours.

Spanning Trees 11

Page 12: Spanning Trees Discrete Mathematics · 2020. 5. 3. · Spanning Trees 6. Example of Depth-First Search a d i j b e g h k c f f h j i g b a e c d k Grapg G Spanning tree of G We arbitrarily

Breadth-First Search Iterative Algorithm

procedure Breadth-First Search

(G : simple graph with vertices v1, ..., vn)T := a tree initialized with vi as rootold list := list initialized with the root vi

new list := list initialized to the empty list

Continued on next page...

Spanning Trees 12

Page 13: Spanning Trees Discrete Mathematics · 2020. 5. 3. · Spanning Trees 6. Example of Depth-First Search a d i j b e g h k c f f h j i g b a e c d k Grapg G Spanning tree of G We arbitrarily

Breadth-First Search Iterative Algorithm (cont.)

while old list is not emptybegin

remove the first vertex v from old list

for each neighbour w of v

begin

if w is not in T then

begin

add w and the edge {v ,w} in T

add w in new list

end

end

old list := new list

new list := ∅end

{T is a spanning tree of G}

Spanning Trees 13

Page 14: Spanning Trees Discrete Mathematics · 2020. 5. 3. · Spanning Trees 6. Example of Depth-First Search a d i j b e g h k c f f h j i g b a e c d k Grapg G Spanning tree of G We arbitrarily

Backtracking Applications

There are problems that can be solved only by performing anexhaustive search of all possible solutions.

One way to to search systematically for a solution is to use adecision tree.

Each internal vertex represent a decision and each leaf a possiblesolution.

A problem may have many solutions. We perform a depth-firstsearch of the decisions tree and stop when a solution is found. Ifno solution is found, as we looked at all possibilities, then we canassert than there is no solution.

Spanning Trees 14

Page 15: Spanning Trees Discrete Mathematics · 2020. 5. 3. · Spanning Trees 6. Example of Depth-First Search a d i j b e g h k c f f h j i g b a e c d k Grapg G Spanning tree of G We arbitrarily

Example of Backtracking

Problem: Find a subset of the set {11, 7, 5, 9} such that the sumof the elements of the subset is 14. Here is the exhaustive list, as adecision tree, of all possible subsets (and solutions).

11 7 5 9

7 5 9 11 5 9 11 7 9 11 7 5

5 9 7 9 5 9 11 9 11 5 7 9 11 9 11 7 7 5 11 5 11 77 5

Spanning Trees 15

Page 16: Spanning Trees Discrete Mathematics · 2020. 5. 3. · Spanning Trees 6. Example of Depth-First Search a d i j b e g h k c f f h j i g b a e c d k Grapg G Spanning tree of G We arbitrarily

Example of Backtracking

11 7 5

7 5 9 11 5 9 11 7 9

11 9 11 9

This subtree, of the decision tree with all possible solutions,represent the depth-first search done until the first solution {5, 9}were found.

Spanning Trees 16