# Graphs

Shared by:
Categories
-
Stats
views:
5
posted:
4/20/2011
language:
English
pages:
39
Document Sample

Discrete Structures & Algorithms

Graphs and Trees: II

EECE 320

1
Topics for the day

Some examples
Questions on graphs and solutions
Ideas for other proofs
Minimal spanning trees

2
Spanning Trees
A spanning tree of a graph G is a tree that
touches every node of G and uses only
edges from G

Every connected graph has a spanning tree

3
Example 1
Prove: A graph G is 2-colourable iff it
contains no cycle of odd length.
What does 2-colorable mean?
• We can color the vertices of the graph with at
most two colors such that two adjacent nodes do
not get the same color.
• Two vertices are adjacent if there is an edge
connecting the two vertices.
Cycle? Of odd length?
• If there is a path that starts at a vertex and
ends at the same vertex without repeating an
edge, then the graph has a cycle.
• The number of edges along the cycle is the
length of the cycle.
4
Prove: A graph G is 2-colourable iff it
contains no cycle of odd length.
First: Assume that the graph is 2-colourable
and prove that it contains no odd cycle.

• Select a 2-colouring of G. Consider an
arbitrary cycle v1, v2, …, vk, v1.
• The vertices with even subscript must be          v1
one colour and the vertices with odd
subscripts must be a different colour.                      v2
• Since v1 and vk must be coloured
differently, k must be even.
• But, k is the length of the cycle so all
cycles must be of even length.               v4

v3

5
Prove: A graph G is 2-colourable iff it
contains no cycle of odd length.
Second: Assume that the graph has no cycle of
odd length and prove that it must be 2-colourable.
• If we can 2-color every connected component of G,
then we can 2-color all of G. Thus, it suffices to show
v
that we can 2-color an arbitrary component of G.
• Consider an arbitrary component H of G.
• Consider some spanning tree T of H.                              z
• Choose any 2-colouring of T. Any tree can be coloured
with at most 2 colours because we can think of a tree                    x
as having parents and children and we colour each
generation separately.                                           H
• Let x-y be some edge not in T and consider the path
w
from some vertex v to x. Let z be the last vertex on the
path from v to x that also lies on the path from v to y.
• Of the paths from z to x and from z to y, exactly one            y
must have odd length else the these two paths together
with the edge x-y would form an odd length cycle.
• Thus x and y belong to different generations wrt z and
6
will have different colours.
Example 2
Problem: If a graph G has 15 edges and its
complementary graph G’ has 13 edges, how
many vertices does G have?
Complementary graph G’: An edge between vertices
x and y exists in G’ iff x and y are not adjacent in G.

v1
v1

v2                                 v2

G
v4                              v4   G’

v3                               v3             7
Problem: If a graph G has 15 edges and its
complementary graph G’ has 13 edges, how many
vertices does G have?

• The maximum number of edges a graph
with n vertices can have is n(n-1)/2.
• The complement of a complete graph
has no edges.
• If E is the set of edges in G and E’ the
set of edges in G’ then: |E|+|E’| = n(n-
1)/2.
• Solve for n when n(n-1)/2 = 28.
• n = 8.
8
Use elementary properties of graphs
properties that you understand easily:

degree, number of edges and number
of vertices, paths, cycles,
complements, spanning trees, dual
graph, …

9
Finding Optimal Trees

Trees have many nice properties
(uniqueness of paths, no cycles, etc.)

We may want to compute the “best”
tree approximation to a graph

If all we care about is communication, then
a tree may be enough. We want a tree with

10
Finding Optimal Trees

Problem: Find a minimum spanning tree, that
is, a tree that has a node for every node in
the graph, such that the sum of the edge
weights is minimum

11
Tree Approximations

7       8
4                           5
9   7

6                8   9

11

12
Finding a MST: Kruskal’s Algorithm
Create a forest where each node is a
separate tree

Make a sorted list of edges S

While S is non-empty:

Remove an edge with minimal weight

If it connects two different trees, add

13
Applying the Algorithm

7       4
1                        5
9   8

9   10               7
3

14
Proving Correctness of the Algorithm
The algorithm outputs a spanning tree T.
[By contradiction] Suppose that it’s not minimal.
(For simplicity, assume all edge weights in graph are distinct)

Then let M be a minimum spanning tree. M≠T

Let e be the first edge chosen by the
algorithm that is in T but not in M.
If we add e to M, it creates a cycle. Since this
cycle isn’t fully contained in T, it has (at least)
an edge f not in T.
N = M+e-f is another spanning tree.                               15
Proving Correctness of the Algorithm (cont)
N = M+e-f is another spanning tree.
Claim: e < f, and therefore N < M
Suppose not: e > f

Then f would have been visited before e by the
have formed a cycle.

Then N < M this M is not a minimal spanning
tree.
16
Greed is Good (In this case…)

The greedy algorithm, by adding the least
costly edges in each stage, succeeds in
finding an MST

Obviously greedy approaches do not work
for all problems …

Some examples where they do work?

17
TSP: Traveling Salesman Problem
Given: a number of cities and the costs of
traveling from any city to any other city,

Q: What is the cheapest round-trip route
that visits each city exactly once and then
returns to the starting city?

The problem is in NP

18
TSP from Trees
Modified TSP: We assume that all pairs of
nodes are connected, and edge weights
satisfy the triangle inequality
d(x,y)  d(x,z) + d(z,y)
 Complexity still NP

We can use an MST to derive a TSP tour that is
no more expensive than twice the optimal tour.
Idea: walk “around” the MST and take
shortcuts if a node has already been visited.

19
Tours from Trees

Shortcuts only decrease the cost, so
Cost(Greedy Tour)  2 Cost(MST)
 2 Cost(Optimal Tour)

This is a 2-competitive algorithm

20
Shortest-paths in a graph

21
Shortest path problem
Input data:
Directed graph: G= (V, E)
Start and end node: s, t
Length le for each edge e
Output: shortest path from s to t
[cost of path = sum of all edges]

22
Dijkstra’s algorithm
Idea: Maintain a set of explored nodes S for which we have
determined the shortest path distance d(u) from s to u.
 Initialize S = {s}, d(s) = 0.
 Repeatedly choose unexplored node v
to minimize                               Shortest path
from a node in u
add v to S, and set d(v) = π(v).           to any other
 Until all nodes are chosen                    unexplored node

23
Dijkstra’s algorithm
Idea: Maintain a set of explored nodes S for which we have
determined the shortest path distance d(u) from s to u.
 Initialize S = {s}, d(s) = 0.
 Repeatedly choose unexplored node v
to minimize                               Shortest path
from a node in u
add v to S, and set d(v) = π(v).           to any other
 Until all nodes are chosen                    unexplored node

24
Example

25
Dijkstra: Complexity analysis
 Initialize S = {s}, d(s) = 0.
 Repeatedly choose unexplored node v
to minimize
add v to S, and set d(v) = π(v).

26
Bipartite Graph

A graph is bipartite if the nodes can be
partitioned into two sets V1 and V2 such that
all edges go only between V1 and V2 (no
edges go from V1 to V1 or from V2 to V2)

27
Dancing Partners

A group of 100 boys and girls attend a
dance. Every boy knows 5 girls, and every
girl knows 5 boys. Can they be matched
into dance partners so that each pair
knows each other?

28
Dancing Partners

29
Perfect Matchings
Perfect Matching: A matching that covers
all nodes in the graph with one edge going
to each node.

Theorem: If every node in a bipartite graph
has the same degree d  1, then the graph
has a perfect matching.
Note: if degrees are the same then |A| = |B|,
where A is the set of nodes “on the left” and
B is the set of nodes “on the right”
30
A Matter of Degree
Claim: If all nodes have the same degree
then |A| = |B|
Proof:
If there are m boys, there are md edges
If there are n girls, there are nd edges

31
The Marriage Theorem
Theorem: A bipartite graph has a perfect
matching if and only if
•   |A| = |B|
and
•      for all k  [1,n]: for any subset of k
nodes of A there are at least k nodes
of B that are connected to at least one
of them.

32
The Marriage Theorem

For any subset of (say)
k nodes of A there are
at least k nodes of B
that are connected to
at least one of them

The condition fails
for this graph

33
The Feeling is Mutual

At least k                     k

At most n-k                     n-k

The condition of the theorem still holds if we
swap the roles of A and B: If we pick any k nodes
in B, they are connected to at least k nodes in A 34
Proof of Marriage Theorem
Call a bipartite graph “matchable” if it has
the same number of nodes on left and right,
and any k nodes on the left are connected
to at least k on the right

Strategy: Break up the graph into two
matchable parts, and recursively partition each
of these into two matchable parts, etc., until
each part has only two nodes

35
Proof of Marriage Theorem
Select two nodes a  A and b  B connected
by an edge

Idea: Take G1 = (a,b) and G2 = everything else

Problem: G2 need not be matchable. There
could be a set of k nodes that has only k-1
neighbors.

36
Sketch of Marriage Theorem Proof

The only way this
a         b
could fail is if one of
k-1 the missing nodes is b
k
G1, and take G2 to be
everything else.

This is a matchable
partition!

37
More formally …

38
Minimum Spanning Tree
- Definition
Kruskal’s Algorithm
- Definition
- Proof of Correctness
Traveling Salesman Problem
- Definition
Here’s What        - Using MST to get an
You Need to        approximate solution
Know…
The Marriage Theorem
41

Related docs
Other docs by gjjur4356
Chapter 82011455721