Notes

advertisement
Math Foundations
Week 12
Graphs (2)
Agenda
•
•
•
•
Paths
Connectivity
Euler paths
Hamilton paths
2
Paths
A path in a graph is a continuous way of getting from
one vertex to another by using a sequence of edges.
1
e3
e1
e2
3
2
e4
e6
e5
e7
4
EG: could get from 1 to 3 circuitously as follows:
1-e12-e11-e33-e42-e62-e52-e43
3
Paths
DEF: A path of length n in an undirected graph is a
sequence of n edges e1, e2, … ,en such that each
consecutive pair ei , ei+1 share a common vertex. In
a simple graph, one may instead define a path of
length n as a sequence of n+1 vertices v0, v1, v2, …
,vn such that each consecutive pair vi , vi+1 are
adjacent. Paths of length 0 are also allowed
according to this definition.
Q: Why does the second definition work for simple
graphs?
4
Paths
A: For simple graphs, any edge is unique
between vertices so listing the vertices gives
us the edge-sequence as well.
DEF: A simple path contains no duplicate
edges (though duplicate vertices are
allowed). A cycle (or circuit) is a path which
starts and ends at the same vertex.
Note: Simple paths need not be in simple
graphs. E.g., may contain loops.
5
Paths
Q: Find a longest possible simple path in the
following graph:
1
e3
e1
e2
3
e6
2
e4
e5
e7
4
6
Paths
A: The following path from 1 to 2 is a maximal simple
path because
• simple: each of its edges appears exactly once
• maximal: because it contains every edge except
the unreachable edge e7
1
e3
e1
e2
2
e4
e6
e5
3
e7
4
The maximal path: e1,e5,e6,e2,e3,e4
7
Paths in Directed Graphs
One can define paths for directed graphs by insisting
that the target of each edge in the path is the source
of the next edge:
DEF: A path of length n in a directed graph is a
sequence of n edges e1, e2, … ,en such that the target
of ei is the source ei+1 for each i. In a digraph, one
may instead define a path of length n as a sequence
of n+1 vertices v0, v1, v2, … ,vn such that for each
consecutive pair vi , vi+1 there is an edge from vi to
vi+1 .
8
Paths in Directed Graphs
Q: Consider digraph adjacency matrix:
1 0 1 0


0 1 0 1
1 1 0 0


0 1 0 0


1. Find a path from 1 to 4.
2. Is there a path from 4 to 1?
9
Paths in Directed Graphs
A:
1 0 1 0


0 1 0 1
1 1 0 0


0 1 0 0


1. 1324.
2. There’s no path from 4 to 1. From 4 must
go to 2, from 2 must stay at 2 or return to
4. In other words 2 and 4 are disconnected
from 1.
10
Connectivity
DEF: Let G be a pseudograph. Let u and v be
vertices. u and v are connected to each
other if there is a path in G which starts at u
and ends at v. G is said to be connected if all
vertices are connected to each other.
1. Note: Any vertex is automatically connected
to itself via the empty path.
2. Note: A suitable definition for directed
graphs will follow later.
11
Connectivity
Q: Which of the following graphs are
connected?
1
2
3
4
12
Connectivity
A: First and second are disconnected. Last is
connected.
1
2
3
4
13
English Connectivity Puzzle
Can define a puzzling graph G as follows:
V = {3-letter English words}
E : two words are connected if can get one
word from the other by changing a single
letter.
One small subgraph of G is:
rob
job
jab
Q: Is “fun” connected to “car” ?
14
English Connectivity Puzzle
A: Yes:
funfanfarcar
Or: funfinbinbanbarcar
15
Connected Components
DEF: A connected component (or just
component) in a graph G is a set of vertices
such that all vertices in the set are
connected to each other and every possible
connected vertex is included.
Q: What are the connected components of
1
the following graph?
6
5
2
7
8
3
4
16
Connected Components
A: The components are {1,3,5},{2,4,6},{7} and
{8} as one can see visually by pulling
components apart:
1
6
5
2
8
3
7
4
17
N-Connectivity
Not all connected graphs are created equal!
Q: Rate following graphs in terms of their
design value for computer networks:
1)
2)
3)
4)
18
N-Connectivity
A: Want all computers to be connected, even if
1 computer goes down:
1) 2nd best. However, there’s
a weak link— “cut vertex”
2) 3rd best. Connected
but any computer can disconnect
3) Worst!
Already disconnected
4) Best! Network dies
only with 2 bad computers
19
N-Connectivity
The network
is best because it can only
become disconnected when 2 vertices are removed.
In other words, it is 2-connected. Formally:
DEF: A connected simple graph with 3 or more
vertices is 2-connected if it remains connected
when any vertex is removed. When the graph is not
2-connected, we call the disconnecting vertex a cut
vertex.
Q: Why the condition on the number of vertices?
20
N-Connectivity
A: To avoid
being 2-connected.
There is also a notion of N-Connectivity where
we require at least N vertices to be removed
to disconnect the graph.
21
Connectivity in
Directed Graphs
1)
Weakly connected : can get from a to b in
underlying undirected graph
2) Semi-connected (my terminology): can get from
a to b OR from b to a in digraph
3) Strongly connected : can get from a to b AND
from b to a in the digraph
DEF: A graph is strongly (resp. semi, resp. weakly)
connected if every pair of vertices is connected
in the same sense.
22
Connectivity in
Directed Graphs
Q: Classify the connectivity of each graph.
23
Connectivity in
Directed Graphs
A:
semi
weak
strong
24
Euler and Hamilton Paths
-Motivation
An pictorial way to motivate the graph theoretic
concepts of Eulerian and Hamiltonian paths
and circuits is with two puzzles:
• The pencil drawing problem
• The taxicab problem
25
Pencil Drawing Problem
-Euler Paths
Which of the following pictures can be drawn
on paper without ever lifting the pencil and
without retracing over any segment?
26
Pencil Drawing Problem
-Euler Paths
Graph Theoretically: Which of the following
graphs has an Euler path?
27
Pencil Drawing Problem
-Euler Paths
Answer: the left but not the right.
1
2
3
start
4
finish
6
5
28
Euler Paths and Circuits
Definition
DEF: An Euler path in a graph G is a simple path
containing every edge in G. An Euler circuit
(or Euler cycle) is a cycle which is an Euler
path.
NOTE: The definition applies both to undirected
as well as directed graphs of all types.
29
Taxicab Problem
-Hamilton Paths
Can a taxicab driver milk his hapless customer
by visiting every intersection exactly once,
when driving from point A to point B ?
A
B
30
Taxicab Problem
-Hamilton Paths
Graph Theoretically: Is there a Hamilton path
from A to B in the following graph?
(NO in this case)
A
B
31
Hamilton Paths and Circuits
Definition
DEF: A Hamilton path in a graph G is a path
which visits ever vertex in G exactly once. A
Hamilton circuit (or Hamilton cycle) is a cycle
which visits every vertex exactly once, except
for the first vertex, which is also visited at the
end of the cycle.
NOTE: Again, the definition applies both to
undirected as well as directed graphs of all
types.
32
Implications to CS
Finding Hamilton paths is a very important
problem in CS.
EG: Visit every city (vertex) in a region using the
least trips (edges) as possible.
EG: Encode all bit strings of a certain length as
economically as possible so that only change
one bit at a time. (Gray codes).
33
Implications to CS
Analyzing difficulty of Euler vs. Hamilton paths is
a great CS case study.
• Finding Euler paths can be done in O (n)
time
• Finding Hamilton paths is NP-complete!
Slight change in definition can result in dramatic
algorithmic bifurcation!
34
Finding Euler Paths
To find Euler paths, we’ll first give an algorithm
for finding Euler cycles and then modify it to
give Euler paths.
THM: An undirected graph G has an Euler
circuit iff it is connected and every vertex has
even degree.
NOTE: for directed graphs the condition is that G
be weakly connected and that every vertex
has same in-degree as out-degree.
35
Finding Euler Circuits
Q: Why does the following graph have no Euler
circuit?
36
Finding Euler Circuits
A: It contains a vertex of odd degree.
37
Finding Euler Circuits
Let’s prove the theorem constructively. Constructive
means that the proof will actually contain an
algorithm for constructing the Euler path, when it
exists.
Part 1) Suppose G is connected and each vertex has
even degree. Construct an Euler cycle. We prove
this by strong induction on m –the number of edges
in G.
Base case m = 0: Since G is connected and contains no
edges, it must consist of a single vertex. The empty
path is an Euler cycle.1
38
Finding Euler Circuits
Induction step for m+1 edges, assuming proved
this up to m  0.
CLAIM: G contains a simple cycle. Consider an
edge e (since m+1 > 0). If e is a self-loop, then
is a simple cycle. So can assume that e is a
loopless edge:
v
v’
e
Since deg(v’ ) > 1 (all degrees are even), another
edge e’ must be incident with v’ :
v’
v’’
39
Finding Euler Circuits
So can continue adding edges until we find an
edge whose new endpoint has already been
encountered during the process. This
endpoint is a vertex which is seen twice so at
which a simple cycle is based!
(This proves claim)
Simple
cycle
40
Finding Euler Circuits
Gives rise to a recursive proof/algorithm:
1) Find a simple cycle in connected graph with m+1
edges.
2) Delete all the edges from the cycle and find Euler
cycles in each resulting component
3) Amalgamate Euler cycles together using the simple
cycle obtaining wanted Euler cycle.
Let’s see how the amalgamation process works:
41
Finding Euler Circuits
Mohammed’s Scimitars
42
Finding Euler Circuits
Mohammed’s Scimitars
Found a cycle after starting from middle vertex.
Delete the cycle:
43
Finding Euler Circuits
Mohammed’s Scimitars
Found a cycle after starting from middle vertex.
Delete the cycle:
44
Finding Euler Circuits
Mohammed’s Scimitars
Found a cycle after starting from middle vertex.
Delete the cycle:
45
Finding Euler Circuits
Mohammed’s Scimitars
Found a cycle after starting from middle vertex.
Delete the cycle:
46
Finding Euler Circuits
Mohammed’s Scimitars
Found a cycle after starting from middle vertex.
Delete the cycle:
47
Finding Euler Circuits
Mohammed’s Scimitars
Now try again (say from middle vertex):
48
Finding Euler Circuits
Mohammed’s Scimitars
This time, found a cycle starting and ending at
middle vertex:
Amalgamate these cycles together from a
point of intersection, and delete from
graph:
49
Finding Euler Circuits
Mohammed’s Scimitars
1
Find another cycle from middle vertex:
50
Finding Euler Circuits
Mohammed’s Scimitars
2
1
Find another cycle from middle vertex:
51
Finding Euler Circuits
Mohammed’s Scimitars
1
2
3
Find another cycle from middle vertex:
52
Finding Euler Circuits
Mohammed’s Scimitars
1
2
3
4
Find another cycle from middle vertex:
53
Finding Euler Circuits
Mohammed’s Scimitars
1
2
3
4
5
Find another cycle from middle vertex:
54
Finding Euler Circuits
Mohammed’s Scimitars
1
2
3
4
5
6
Find another cycle from middle vertex:
55
Finding Euler Circuits
Mohammed’s Scimitars
7
1
2
3
4
5
6
Find another cycle from middle vertex:
56
Finding Euler Circuits
Mohammed’s Scimitars
8
7
1
2
3
4
5
6
Find another cycle from middle vertex:
57
Finding Euler Circuits
Mohammed’s Scimitars
9
8
7
1
2
3
4
5
6
Find another cycle from middle vertex:
58
Finding Euler Circuits
Mohammed’s Scimitars
9
8
10
7
1
2
3
4
5
6
Find another cycle from middle vertex:
59
Finding Euler Circuits
Mohammed’s Scimitars
9
1
2
3
8
10
7
11
6
4
5
Find another cycle from middle vertex:
60
Finding Euler Circuits
Mohammed’s Scimitars
9
1
2
3
8
10
7
11
6
4
5
Amalgamate it to Euler cycle of deleted
graph, and delete it. Need to insert cycle
between former edges 10 & 11:
61
Finding Euler Circuits
Mohammed’s Scimitars
Finally, need to add the triangle.
9
1
2
3
8
10
7
??
6
4
5
Use same naïve approach looking for cycle in
remaining component:
62
Finding Euler Circuits
Mohammed’s Scimitars
Finally, need to add the triangle.
9
8
10
1
2
3
7
11
??
4
5
6
Use same naïve approach looking for cycle in
remaining component:
63
Finding Euler Circuits
Mohammed’s Scimitars
Finally, need to add the triangle.
9
8
10
1
2
3
7
11
??
4
12
5
6
Use same naïve approach looking for cycle in
remaining component:
64
Finding Euler Circuits
Mohammed’s Scimitars
Finally, need to add the triangle.
9
8
10
1
2
3
11
??
4
13
12
5
7
6
Use same naïve approach looking for cycle in
remaining component:
65
Finding Euler Circuits
Mohammed’s Scimitars
Finally, need to add the triangle.
9
10
1
2
3
8
14
11
??
4
13
12
5
7
6
Use same naïve approach looking for cycle in
remaining component:
66
Finding Euler Circuits
Mohammed’s Scimitars
Finally, need to add the triangle.
9
10
1
2
3
8
14
11
15
4
13
12
5
7
6
Use same naïve approach looking for cycle in
remaining component:
67
Finding Euler Circuits
Mohammed’s Scimitars
9
10
1
2
3
8
14
11
15
4
13
12
5
7
6
Amalgamate the triangle cycle between
edges formerly labeled 9 & 10:
68
Finding Euler Circuits
Mohammed’s Scimitars
9
??
1
2
3
8
??
??
??
4
??
??
5
7
6
Amalgamate the triangle cycle between
edges formerly labeled 9 & 10:
69
Finding Euler Circuits
Mohammed’s Scimitars
We found the Euler circuit!
9
10
11
12
1
2
3
13
8
17
14
18
4
16
15
5
7
6
70
Euler Circuit 
All Degrees Even
2nd half of theorem says that an Euler circuit in a
graph implies that all degrees are even:
In a simple cycle, whenever path enters vertex, must
come out on different edge. Thus every visit of v
contributes 2 to deg(v). Thus, if keep only edges
which were on the simple cycle, degrees of
resulting graph are all even. But in an Eulerian
graph G, can find a simple cycle containing all
vertices and consequently graph resulting from
cycle is G itself! •
71
Generalizing to Euler Paths
Q: Does the following have an Euler circuit?
72
Generalizing to Euler Paths
A: No, vertices of odd degree:
Q: But why does it have an Euler path?
73
Generalizing to Euler Paths
A: YES! Because exactly 2 vertices of odd degree.
So can add a phantom edge between odd degree
vertices:
74
Generalizing to Euler Paths
All degrees now even so find Euler cycle:
75
Generalizing to Euler Paths
1
2
3
4
7
6
5
Now remove phantom edge obtaining:
L25
76
Generalizing to Euler Paths
1
2
3
4
6
5
Generalize:
77
Generalizing to Euler Paths
THM: An undirected connected graph has an
Euler path iff there are exactly two vertices
of odd degree.
78
Blackboard Exercises
1) Prove by induction that Qn always has a
Hamilton cycle for n > 1. (This gives a Gray
code).
2) Prove that the following graph has no
Hamilton cycle:
79
Download