06.09.2021 Views

Combinatorics Through Guided Discovery, 2004a

Combinatorics Through Guided Discovery, 2004a

Combinatorics Through Guided Discovery, 2004a

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

2.3. Graphs and Trees 47<br />

2.3.6 The deletion/contraction recurrence for spanning trees<br />

There are two operations on graphs that we can apply to get a recurrence (though<br />

a more general kind than those we have studied for sequences) which will let us<br />

compute the number of spanning trees of a graph. The operations each apply to an<br />

edge e of a graph G. The first is called deletion;wedelete the edge e from the graph<br />

by removing it from the edge set. Figure 2.3.4 shows how we can delete edges from<br />

a graph to get a spanning tree.<br />

Figure 2.3.4: Deleting two appropriate edges from this graph gives a spanning tree.<br />

The second operation is called contraction.<br />

6<br />

5<br />

4<br />

6<br />

5<br />

4<br />

6<br />

5<br />

4<br />

7<br />

7<br />

e<br />

7<br />

e<br />

1 2<br />

e<br />

3<br />

1 2<br />

3<br />

1 2<br />

3<br />

7<br />

6<br />

5<br />

4<br />

7<br />

E<br />

5<br />

4<br />

7<br />

6<br />

E<br />

4<br />

1<br />

E<br />

2<br />

3<br />

1<br />

3<br />

Figure 2.3.5: The results of contracting three different edges in a graph.<br />

Contractions of three different edges in the same graph are shown in Figure 2.3.5.<br />

Intuitively, we contract an edge by shrinking it in length until its endpoints coincide;<br />

we let the rest of the graph “go along for the ride.” To be more precise, we contract<br />

the edge e with endpoints v and w as follows:<br />

1. remove all edges having either v or w or both as an endpoint from the edge<br />

set,<br />

2. remove v and w from the vertex set,<br />

3. add a new vertex E to the vertex set,<br />

4. add an edge from E to each remaining vertex that used to be an endpoint of<br />

an edge whose other endpoint was v or w, and add an edge from E to E for<br />

any edge other than e whose endpoints were in the set {v, w}.<br />

We use G − e (read as G minus e) to stand for the result of deleting e from G,<br />

and we use G/e (read as G contract e) to stand for the result of contracting e from<br />

G.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!