Graph Theory and Applications: Paul Van Dooren Université Catholique de Louvain Louvain-la-Neuve, Belgium
Graph Theory and Applications: Paul Van Dooren Université Catholique de Louvain Louvain-la-Neuve, Belgium
and
Applications
-6pt-6pt Graph Theory and
Applications
-6pt-6pt
1 / 112
Graph Theory and Applications
Paul Van Dooren
Universit catholique de Louvain
Louvain-la-Neuve, Belgium
Dublin, August 2009
Inspired from the course notes of V. Blondel and L. Wolsey (UCL)
Appetizer -6pt-6pt Appetizer
-6pt-6pt
2 / 112
Graph theory started with Euler who was asked to nd a
nice path across the seven Kningsberg bridges
The (Eulerian) path
should cross over
each of the seven
bridges exactly once
Appetizer -6pt-6pt Appetizer
-6pt-6pt
3 / 112
Another early bird was Sir William Rowan Hamilton (1805-1865)
In 1859 he developed a toy based on nding a path visiting all
cities in a graph exactly once and sold it to a toy maker in Dublin.
It never was a big success.
Appetizer -6pt-6pt Appetizer
-6pt-6pt
4 / 112
But now graph theory is used for nding communities in networks
where we want to detect hierarchies of substructures
Appetizer -6pt-6pt Appetizer
-6pt-6pt
5 / 112
and their sizes can become quite big ...
Appetizer -6pt-6pt Appetizer
-6pt-6pt
6 / 112
It is also used for ranking (ordering) hyperlinks
Appetizer -6pt-6pt Appetizer
-6pt-6pt
7 / 112
or by your GPS to nd the shortest path home ...
Appetizer -6pt-6pt Appetizer
-6pt-6pt
8 / 112
or by your GPS to nd the shortest path home ...
Contents -6pt-6pt Contents
-6pt-6pt
9 / 112
What we will cover in this course
Connectivity
Paths
Trees
Coloring problems
Complexity issues
0 0 0 1 0
0 0 1 0 1
0 1 0 1 1
1 0 1 0 1
0 1 1 1 0
A
2
=
0 0 1 0
1 0 0 0
0 1 0 0
0 1 1 0
Representing
graphs
-6pt-6pt Representing graphs
-6pt-6pt
28 / 112
A graph can also be represented by its n m incidence matrix T.
For an undirected graph T(i , k) = T(j , k) = 1 iff e
k
= (v
i
, v
j
).
For a directed graph T(i , k) = 1; T(j , k) = 1 iff e
k
= (v
i
, v
j
).
For the graphs
the incidence matrices are
T
1
=
1 0 0 0 0 0
0 1 1 0 0 0
0 0 1 1 1 0
1 0 0 0 1 1
0 1 0 1 0 1
T
2
=
1 0 0 0 1
0 1 0 1 1
1 0 1 1 0
0 1 1 0 0
Representing
graphs
-6pt-6pt Representing graphs
-6pt-6pt
29 / 112
One can also use a sparse matrix representation of A and T.
This is in fact nothing but a list of edges, organized e.g. by nodes.
Notice that the size of the representation of a graph is thus linear
in the number of edges in the graph (i.e. in m = [E[).
To be more precise, one should count the number of bits needed
to represent all entries :
L = (n + m) logn
since one needs logn bits to represent the vertex pointers.
Representing
graphs
-6pt-6pt Representing graphs
-6pt-6pt
30 / 112
Counting degrees
Let 1 be the vector of all ones, then d
in
= A
T
1 and d
out
= A1
are the vectors of in-degrees and out-degrees of the nodes of A
and d
out
= d
in
= d for undirected graphs.
How should we then take self-loops into account ?
In an adjacency matrix of an undirected graph A(i , i ) = 2
In an adjacency matrix of a directed graph A(i , i ) = 1
For an undirected graph, we have d = T1.
For a directed graph one can dene T
t
and T
s
as the matrices
containing the terminal and source nodes : T = T
t
T
s
with
T
t
:=
0 0 0 0 1
0 1 0 1 0
1 0 1 0 0
0 0 0 0 0
, T
s
:=
1 0 0 0 0
0 0 0 0 1
0 0 0 1 0
0 1 1 0 0
0 1 0
0 0 1
1 1 0
, A
2
=
0 0 1
1 1 0
0 1 1
(u)
The exploration algorithm applied to the inverse graph, starting
from u nds the set R
(u)
Here R
+
(v
6
) = 4, 6 while R
(v
6
) = V hence C(v
6
) = 4, 6
Find the other connected components.
Shortest path -6pt-6pt Shortest path
-6pt-6pt
43 / 112
Shortest path problems
Find the shortest total length of a path between two nodes of a
directed graph with lengths associated with each edge.
E.g. Find the best piecewise linear approximation of a function
A cost c
ij
= +
j
k=i
(f (x
k
) g(x
k
))
2
is associated with each
linear section. This amounts to nding the shortest path in
Shortest path -6pt-6pt Shortest path
-6pt-6pt
44 / 112
Other example : Find the best production policy for a plant with a
monthly demand d
i
, a launching cost f
i
, a storage cost h
i
and a
unit price p
i
, for each period i = 1, . . . , n.
In the path below, we are e.g. producing in stages 1, 4 and 5.
A cost is associated with each section. For the path (1,4) it is e.g.
c
14
= f
1
+ p
1
(d
1
+ d
2
+ d
3
) + h
1
(d
2
+ d
3
) + h
2
(d
3
) which is the
xed cost + the production cost in periods 1, 2 and 3 + storage
costs at the end of periods 1 and 2.
The minimization of the total cost amounts to a shortest path
problem in a graph combining paths as above.
Shortest path -6pt-6pt Shortest path
-6pt-6pt
45 / 112
Proposition If there is a shortest walk from s to t , there is also a
shortest path from s to t
Proof
Assume the walk is not a path;
hence there is a recurring node.
Eliminate the cycle between the
rst and last occurrence of this
node. Repeat this procedure.
In the above graph the path (7, 8, 6, 3, 1, 5, 6, 10, 4, 6, 9) has a
cycle (6, 3, 1, 5, 6, 10, 4, 6). After its elimination we have a path
(7, 8, 6, 9).
Corollary If G does not contain cycles of negative length, the
resulting path is one of lower cost.
Proof Trivial
Shortest path -6pt-6pt Shortest path
-6pt-6pt
46 / 112
Dijkstras algorithm
This method is for a digraph G that has positive edge lengths.
For undirected graphs one can duplicate each edge as follows
Below, V
+
(u) denotes the set of children of u.
Algorithm Dijkstra(G,u)
S := u; d(u) := 0; d(v) := c(u, v) v ,= u;
while S ,= V do
choose v
/ S : d(v
) d(v) v / S;
S := S v
;
for each v V
+
(v
) do
d(v) = mind(v), d(v
) + c(v
, v)
end for
end while
Shortest path -6pt-6pt Shortest path
-6pt-6pt
47 / 112
Idea : Update a set S for which we know all shortest paths from u
Let us see the behavior of this
algorithm on an example.
The table below indicates the
steps and the distances
computed for each node
Iter S d(u) d(1) d(2) d(3) d(4)
0 u 0 1 3 6
1 u, 1 0 1 2 4 6
2 u, 1, 2 0 1 2 3 6
3 u, 1, 2, 3 0 1 2 3 5
4 u, 1, 2, 3, 4 0 1 2 3 5
We indicate in more detail the exploration of the graph
Shortest path -6pt-6pt Shortest path
-6pt-6pt
48 / 112
S d(u) d(1) d(2) d(3) d(4)
{u} 0 1 3 6
{u, 1} 0 1 2 4 6
{u, 1, 2} 0 1 2 3 6
{u, 1, 2, 3} 0 1 2 3 5
{u, 1, 2, 3, 4} 0 1 2 3 5
Below, the node u is blue and the explored nodes are red
Shortest path -6pt-6pt Shortest path
-6pt-6pt
49 / 112
Proposition Dijkstras algorithm nds in O(n
2
) time the shortest
path from u to all other nodes of V.
Proof By induction on the size of S, we show that
1. v S, d(v) is the length of the shortest path from u to v
2. v S
+
(children of nodes of S), d(v) is the length of the
shortest path from u to v not passing exclusively via nodes of S
Trivial for S = u, d(u) = 0, d(v) = c(u, v).
Let v
/ S : d(v
) = min
v / S
d(v) then the
shortest path to v
) + c(v
, v)).
This gives the length of the shortest path to all v S
+
.
The other distances are unknown as yet and hence set to .
Shortest path -6pt-6pt Shortest path
-6pt-6pt
50 / 112
Variants
For a graph with edge lengths 1 it sufces to do a BFSearch and
to keep track of the path lengths by incrementing them with 1
during the exploration phase. This is thus an O(m) time algorithm.
Algorithm ShortestPathBFS(G,v)
mark(v); S := v; d(v) = 0;
while not S = do
v := rst (S)
if (v, v
) such that v
is unmarked then
choose (v, v
) with v
of smallest index;
mark(v
); S := S v
; d(v
) = d(v) + 1;
else
S := Sv
end if
end while
Shortest path -6pt-6pt Shortest path
-6pt-6pt
51 / 112
Proposition All nodes at distance exactly k are correctly
identied before proceeding further.
Proof For k = 0 this is trivial (S is the original node u).
Induction step : suppose the statement is correct up to k.
After all nodes at distance k have been found, one nds nodes
that are at a distance larger than k but since they are all
neighboring nodes, they must be at distance exactly k + 1.
Shortest path -6pt-6pt Shortest path
-6pt-6pt
52 / 112
For an acyclic graph, one can just compute the topological order in
O(m) time (see earlier).
To solve the shortest path problem one then uses the algorithm
Algorithm ShortestPathAcyclic(G,v)
d(1) = 0; d(i ) := for i = 2, . . . , n;
for i = 1 : n 1 do
for j V
+
(i ) do
d(j ) := min
j
d(j ), d(i ) + c(i , j );
end for
end for
What is the complexity of this second step ?
One can also see the shortest path problem as a ow problem or
as a linear programming problem.
This leads to other algorithms like the Bellman-Ford Algorithm.
Trees -6pt-6pt Trees
-6pt-6pt
53 / 112
Trees and forests
A tree is an acyclic and
connected graph
A forest is an acyclic
graph (and hence a union
of trees)
Proposition For a graph G = (V, E) of order n = [V[, the
following are equivalent
1. G is connected and has n 1 edges
2. G is acyclic and has n 1 edges
3. G is connected and acyclic
4. u, v V there is one and only one path from u to v
5. G is acyclic and adding an edge creates one and only one cycle
6. G is connected and removing an arbitrary edge disconnects it
Proofs ?
Trees -6pt-6pt Trees
-6pt-6pt
54 / 112
The following denitions are especially relevant for trees.
The eccentricity (u) = max
vV
d(u, v) of a node is the maximum
distance to any node v V. The eccentricity of each node is
indicated in the graph below
The radius rad(G) = min
uV
(u) of a graph G is the minimal
eccentricity of all nodes in V
The diameter diam(G) = max
uV
(u) of a graph G is the maximal
eccentricity of all nodes in V. It is also the maximal distance
between any two nodes in V
The center of a graph G is the set of nodes in V of minimal
eccentricity (the black node)
Trees -6pt-6pt Trees
-6pt-6pt
55 / 112
A leaf of a tree T is a node of degree 1
Proposition Let T be a tree and let T
.
Proof ?
Proposition The center of a tree is a single node or a pair of
adjacent nodes.
Proof By induction using the previous proposition.
Show that the center does not change.
Trees -6pt-6pt Trees
-6pt-6pt
56 / 112
Counting trees
How many different (labeled) trees are there with n nodes ?
The following table gives the count for small n
The following theorem of Cayley gives the exact formula.
Proposition
The number of distinct labeled trees of order n equals n
n2
Trees -6pt-6pt Trees
-6pt-6pt
57 / 112
We construct a bijection of T
n
with a sequence via the algorithm
Algorithm PrferSequence(T)
s := (); t := ();
while [E[ > 1 do
choose the leaf of smallest index i ;
T := Ti ; s := (s, i ); t := (t , neighbour (i ));
end while
On the graph below, it yields the table next to it
One shows that the graph can be reconstructed from the
sequence t
i
which are n 2 numbers from 1, . . . , n
and there are exactly n
n2
such sequences.
Trees -6pt-6pt Trees
-6pt-6pt
58 / 112
Spanning tree
Remove from a connected graph as many edges as possible while
remainig connected; this should yield a tree with n 1 edges.
This is the minimal spanning tree problem solved by the following
algorithm, of time complexity O(mlogm)
Algorithm KruskalMST(G)
E
ord
:= sort (E); E
:= ; E
rest
:= E
ord
;
while [E
[ > n 1 do
:= rst (E
rest
); E
rest
:= E
rest
;
if (V, E
) is acyclic then
E
:= E
;
end if
end while
The sorting is done efciently
in O(mlogm) time as well.
Let us look at an example
Trees -6pt-6pt Trees
-6pt-6pt
59 / 112
The different steps of the algorithm are
This constructs a tree which is a subgraph with n 1 edges.
Trees -6pt-6pt Trees
-6pt-6pt
60 / 112
Now we look at an alternative algorithm of time complexity
O((m + n) logn)
The idea is to pick a random node and then grow a minimal tree
from there
Algorithm PrimMST(G)
Choose u V; V
:= u; E
:= ;
for i = 1 : n 1 do
E
:= edges linking V to V
;
choose e = (u, v) E
v, E
e is acyclic;
V
:= V
v; E
:= E
e;
end for
Let us look at the same example
Trees -6pt-6pt Trees
-6pt-6pt
61 / 112
The different steps of the algorithm are
The graph (V, E
) = f (G) 1; e(G
) = e(G) 1 and
n(G
= (V w, E e
1
, e
2
e).
Two graphs are said to be homeomorphic to each other iff one can
be derived from the other via a sequence of subdivisions.
Corollary Homeomorphism is an equivalence relation.
Planar graphs -6pt-6pt Planar graphs
-6pt-6pt
70 / 112
A graph G
= (V
, E
V and E
is thus
G
= (Vu, v w, Ee)
Proposition (Wagner, 1937) A graph is planar iff it does not have
K
3,3
or K
5
as a minor.
Example :
the Petersen
graph again
Planar graphs -6pt-6pt Planar graphs
-6pt-6pt
72 / 112
Proposition (Robertson-Seymour)
For a graph G, determining if a given graph H is a minor of H, can
be solved in polynomial time (with respect to n(G) and m(G)).
A dual graph G
(v)
f (u, v) =
uV
+
(v)
f (v, u) match
The total ow F of the network is then what leaves s or reaches t
F(N) :=
uV
f (s, u)
uV
f (u, s) =
uV
f (u, t )
uV
f (t , u)
Flows -6pt-6pt Flows
-6pt-6pt
74 / 112
Here is an example of a ow
It has a value of F(N) = 7 and the conservation law is veried
inside.
But the ow is not maximal, while the next one is (F(N) = 9) as
we will show later. Notice that one edge is not being used (f = 0)
Flows -6pt-6pt Flows
-6pt-6pt
75 / 112
Cut of a network
A cut of a network is a partition of the vertex set V = P P into
two disjoint sets P (containing s ) and P (containing t )
The capacity of a cut is the sum of the capacities of the edges
(u, v) between P and P
(P, P) =
uP;vP
c(u, v)
which in the above example equals 5 + 3 + 3 + 1 = 9.
We now derive important properties of this capacity.
Flows -6pt-6pt Flows
-6pt-6pt
76 / 112
Proposition Let (P, P) be any cut of a network N = (V, E)
then the associated ow is given by
F(N) =
uP;vP
f (u, v)
uP;vP
f (v, u)
Proof First show that F(N) =
uP
(
v
f (u, v)
v
f (v, u))
by summing all contributions in P and using conservation.
For all v P the term between brackets is zero (conservation).
Hence we only need to keep the edges across the partition.
Corollary A ow is bounded by the capacity of any cut
F(N) (P, P)
A minimal cut (with minimal capacity) also bounds F(N)
(we will construct one and will see it is in fact equal to F(N))
Flows -6pt-6pt Flows
-6pt-6pt
77 / 112
Applications
The dining problem
Can we seat 4 families with number of members (3,4,3,2) at 4
tables with number of seats (5,2,3,2) so that no two members of a
same family sit at the same table ?
The central edges are the table assignments (a capacity of 1).
The cut shown has a capacity 11 which upper bounds F(N).
We can therefore not seat all 12 members of the four families.
Flows -6pt-6pt Flows
-6pt-6pt
78 / 112
The marriage problem
One wants to nd a maximimum number of couplings between
men and women where each couple has expressed whether or
not this coupling was acceptable (central edges that exist or not)
One wants to nd a maximum number of disjoint paths in this
directed graph. All the capacities of the existing edges are 1.
Flows -6pt-6pt Flows
-6pt-6pt
79 / 112
Given a network N(V, E) and a ow f then its residual network N
f
is a network with the same nodes V but with new capacities
c
f
(u, v) =
i
= c(v
i
, v
i +1
) f (v
i
, v
i +1
) > 0 (v
i
, v
i +1
) E or
i
= c(v
i
, v
i +1
) f (v
i +1
, v
i
) > 0 (v
i +1
, v
i
) E
This path is not optimal since the original ow can be increased.
Flows -6pt-6pt Flows
-6pt-6pt
80 / 112
Max-ow Min-cut
Proposition
The ow is optimal if there exists no augmentation path from s to t
Proof Construct a cut (P, P) where u P if there is an
augmentation path from s to u and u P otherwise.
Show that (P, P) is a valid cut for which F(N) = (P, P).
Proposition In a network N the following are equivalent
1. A ow is optimal
2. The residual graph does not contain an augmenting path
3. F(N) = (P, P) for some cut (P, P)
The value of the optimal ow thus equals F(N) = min(P, P)
Proof Left to the reader (combine earlier results)
This becomes an LP problem in the ows x
ij
on the edges (i , j )
max
i :(s,i )
x
si
=
i :(i ,s)
x
is
subject to
i
x
ij
=
i
x
ji
and 0 x
ij
c
ij
Flows -6pt-6pt Flows
-6pt-6pt
81 / 112
The Ford-Fulkerson algorithm (1956) calculates this optimal ow
using augmentation paths.
Algorithm MaxFlowFF(N,s,t)
f (u, v) := 0 (u, v) E;
while N
f
contains a path from s to t do
choose an augmentation path A
p
from s to t
:= min
(u,v)A
p
i
Augment the ow by along A
p
Update N
f
end while
Finding a path in the residual graph can be implemented with a
BFS or DFS exploration as shown below
At each step we show the graph (left) and the residual graph (right)
Augmentation paths are in red. In 5 steps we nd F(N) = 14
Flows -6pt-6pt Flows
-6pt-6pt
82 / 112
Euler -6pt-6pt Euler
-6pt-6pt
83 / 112
Eulerian tour (1756)
An Eulerian cycle (path) is a subgraph G
e
= (V, E
e
) of G = (V, E)
which passes exactly once through each edge of G.
G must thus be connected and all vertices V are visited
(perhaps more than once). One then says that G is Eulerian
Proposition A graph G has an Eulerian cycle iff it is connected
and has no vertices of odd degree
A graph G has an Eulerian path (i.e. not closed) iff it is connected
and has 2 or no vertices of odd degree
This would prove that the above graph is not Eulerian.
Euler -6pt-6pt Euler
-6pt-6pt
84 / 112
Proof (of the rst part regarding cycles)
Necessity Since G is Eulerian there is a cycle visiting all nodes.
Each time we visit v V, we leave it again, hence d(v) is even.
Sufciency For a single isolated node, it is trivial. For [V[ > 1
there must be a cycle in the graph. Consider the subgraph H
with the same nodes but with the edges of removed.
Each of its components H
i
satisfy the even degree condition and
again have an Eulerian cycle
i
. By recurrence we then reduce G
to its isolated vertices.
To reconstruct the Eulerian cycle, start from a basic cycle .
Each time a node of another cycle
i
is encountered, substitute
that cycle to the node (and do this recursively).
Euler -6pt-6pt Euler
-6pt-6pt
85 / 112
Proof (of the second part regarding paths) Left as an exercise
The path problem says if you can draw a graph without lifting your
pen. Apply this to the following examples.
Proposition A directed graph G = V, E
d
has an Eulerian tour G
e
iff it is connected and balanced, i.e. all its nodes have
d
in
(v) = d
out
(v).
Proof Left as an exercise
Euler -6pt-6pt Euler
-6pt-6pt
86 / 112
The following algorithm of Fleury (1883) reconstructs a cycle C if it
exists. E
:= ; C := );
for i = 1 : m do
choose e = (v
i 1
, v
i
) s.t. G
= (V, EE
:= E
e; C := C, e); v
i
:= v
i 1
;
end for
Exercise
Propose a modication addressing the Eulerian Path Problem
But what if the graph is not Eulerian ? Can we nd a mininimum
cost modication of the problem ?
Euler -6pt-6pt Euler
-6pt-6pt
87 / 112
Chinese postman (1962)
We consider a minimum cost modication of the Eulerian cycle
problem. A chinese postman needs to nd a tour passing along all
edges of a graph and minimize the length of the path.
The edges have a cost and we need to make the graph Eulerian
Exercise
1. Give a simple lower bound. 2. When can this bound be met ?
3. Is there another solution (or a better one) ?
Euler -6pt-6pt Euler
-6pt-6pt
88 / 112
Solution : nd all odd degree vertices and nd the shortest paths
between them
Now nd a perfect matching of the nodes in this graph.
A perfect matching in a graph is a set of disjoint edges of a graph
to which all vertices are incident.
This can be solved in 0(n
3
) time with the Hungarian algorithm.
Hamilton -6pt-6pt Hamilton
-6pt-6pt
89 / 112
Hamiltonian cycle (1859)
Was a game sold by Hamilton in 1859 to a toy maker in Dublin.
A Hamiltonian cycle is a cyclic subgraph G
h
= (V, E
h
) of
G = (V, E) which passes exactly once through all nodes
It is a so-called hard problem and there is no general condition
for its existence (in contrast with the Eulerian path problem).
It exists for Platonic solids and complete graphs,
but not for the Petersen graph
Hamilton -6pt-6pt Hamilton
-6pt-6pt
90 / 112
Proposition (Dirac, 1951) A graph G with n 3 nodes and
d(v) n/2, v V, is Hamiltonian
Proof
G is connected, otherwise its smallest component would have all
edges with d(v) < n/2
Then consider a longest path v
1
v
2
...v
n
(with maybe n < [V[)
Because d(v
1
), d(v
n
) n/2, it must also be covered by a cycle
(because all the neigbors of v
1
and v
n
are on that path)
Because of connectedness n = [V[ and it is a Hamiltonian cycle.
Hamilton -6pt-6pt Hamilton
-6pt-6pt
91 / 112
Exercise Construct a graph with d(v) < n/2 and yet has a
Hamiltonian cycle
Proposition
If G = (V, E) has a Hamiltonian cycle, then G V
has at most
[V
V.
Proof Let H be a Hamiltonian subgraph of G, then H V
has
less than [V
) 2.cost (T)
Exercise Explain why
Hamilton -6pt-6pt Hamilton
-6pt-6pt
93 / 112
Test for planar graph
There is a simple way to test if a Hamiltonian graph is planar
1. Draw G with the Hamiltonian graph H at the outside
The following graph is already drawn
with H = (a, b, c, d, e, f , a) outside
2. Dene K as the graph whose nodes are the edges e
1
, . . . , e
r
not in H and with an edge between e
i
and e
j
if they cross in G.
The following graph has the vertices
(a, d), (b, f ), b, e), c, e), (d, f ) and
ve edges, corresponding to the
crossings in G
Then G is planar iff K is bipartite
Exercise Explain why
Coloring -6pt-6pt Coloring
-6pt-6pt
94 / 112
Four color problem
In 1852 it was conjectured that a country map (like the USA map)
could always be colored with only four colors. There is an
underlying assumption for point borders.
This was proven in 1976 by K. Appel and W. Haken but their proof
used a computer search over 1200 so-called critical cases.
Exercise What property does the underlying graph have ?
Coloring -6pt-6pt Coloring
-6pt-6pt
95 / 112
Coloring nodes
A k-coloring of a graph G = (V, E) is a mapping f : V 1, . . . , k
such that f (v
i
) ,= f (v
j
) if (v
i
, v
j
) E.
The chromatic number of a graph is the smallest number k for
which there exists a k-coloring.
Some examples of known chromatic numbers are :
Bipartite graph
(G) = 2
Even cycle
(G) = 2
Odd cycle
(G) = 3
Clique
(K
n
) = n
Petersen Graph
(G) = 3
Planar graph
(G) = 4
Coloring -6pt-6pt Coloring
-6pt-6pt
96 / 112
The coloring problem for general graphs is NP-complete but
such problems often lead to more interesting applications
Exam scheduling problem
The table on the left gives the exams each student takes
The chromatic number (G) of the corresponding graph
gives the minimum numbers of time slots for the exams
Exercise Can you formulate such a slot problem with students
choosing out of k pre-set programs ?
Coloring -6pt-6pt Coloring
-6pt-6pt
97 / 112
Bounds
Proposition
Let G be connected and m = [E[, then (G)
1
2
+
2m +
1
4
Proof Let C = C
1
, . . . , C
k
be the partition of V according to
colors. There is at least one edge between two colors, which
implies m > B(k, 2) and hence k
2
k 2m 0.
Proposition
Let (G) = maxd(v)[v V, then (G) (G) + 1 (trivial)
Proposition (Brooks, 1941)
(G) (G) for any graph different from K
n
or an odd cycle
Proposition
(G) 1 + max
i
min(d
i
, i 1) when ordering d
1
. . . d
n
.
Proof Order the nodes like the d
i
s and use the greedy algorithm
Coloring -6pt-6pt Coloring
-6pt-6pt
98 / 112
Greedy algorithm
Algorithm GreedyColor(G)
L := sort (V); c := sort (colors)
for v V do
choose smallest c
i
not used by colored neigbors
end for
On a bipartite graph this greedy algorithm is optimal when
numbering the nodes per part but it can be bad for other
numberings, such as u
1
, v
1
, u
2
, v
2
, u
3
, v
3
, u
4
, v
4
Exercise
Does each graph have a good numbering for the greedy algorithm
Coloring -6pt-6pt Coloring
-6pt-6pt
99 / 112
Let us come back to the map coloring problem
and try to prove the following (simpler) result
Exercise Every planar graph can be colored with 6 colors
Show that e 3n 6
Show then that for planar graphs average(d(v)) 6 12/n
Finally prove that there exists a v such that d(v) 5
Now use induction to prove the proposition (remove nodes)
Coloring -6pt-6pt Coloring
-6pt-6pt
100 / 112
Chromatic polynomial (Birkhoff-Lewis 1918)
The chromatic polynomial of a graph p
G
(k) indicates how many
different ways a graph can be colored with k colors. E.g.
Exercise Prove the above formulas
Notice that (G) = minp(G)(k) > 0. Does this help ?
There is a powerful induction theorem using the simpler graphs
G (u, v) (remove an edge) and G (u, v) (contract an edge)
Proposition If (u, v) E then p
G
(k) = p
G(u,v)
(k) p
G(u,v)
(k)
Proof u and v have different colors in G and the same in G (u, v)
Coloring -6pt-6pt Coloring
-6pt-6pt
101 / 112
This can be used to compute the chromatic polynomial of more
complex networks
but the problem remains combinatorial and thus hard
Exercise Derive this quicker using the result for a tree
Coloring -6pt-6pt Coloring
-6pt-6pt
102 / 112
Stable sets
An independent or stable set S in a graph G = (V, E) is a
subgraph of G without any edges, i.e. u, v S : (u, v) E
The two sets of black nodes are stable sets of the left graph
Such sets can clearly be colored with only one color, which proves
Proposition If a graph is k-colorable then V can be partitioned as
k stable sets
The independence number (G) is the size of the largest possible
stable set.
Proposition One has (G) (G) n (trivial)
Coloring -6pt-6pt Coloring
-6pt-6pt
103 / 112
The following example requires nding a maximal stable set.
Find the maximum number of projects one can realize when
the table indicates which students are needed for each project.
Notice that it is equivalent
to nding a maximal clique
(or complete subgraph) in
the complementary graph
G
c
= (V, E
c
), where E
c
is
the complement of E
Complexity -6pt-6pt Complexity
-6pt-6pt
104 / 112
Algorithm complexity
We distinguish problems from algorithms used to solve them.
There is also the issue of time complexity and space complexity.
The function C
A
(s) of an algorithm is the number of time steps
needed to solve a problem of size s with that algorithm.
A problem is called polynomial if there exists an algorithm with
C
A
(s) = O(p(n)) for some polynomial p(), meaning
n
0
: C
A
(s) p(n) n n
0
.
The relative times needed to solve problems of different complexity
This shows the importance of having a polynomial problem
Complexity -6pt-6pt Complexity
-6pt-6pt
105 / 112
Better is to look at the size of
the problems one can solve
when the machines speed up
100 or 1000 times
Here are a number of polynomial time problems
Finding the shortest path between 2 vertices
Testing if a graph is planar
Testing if a graph is Eulerian
Finding a spanning tree
Solving the perfect marriage problem
Here are a number of problems that are not polynomial
Finding the chromatic number of a graph
Finding a Hamiltonian cycle in a graph
Finding the largest stable set in a graph
Solving the travelling salesman problem
Testing if two graphs are isomorphic (not known)
Complexity -6pt-6pt Complexity
-6pt-6pt
106 / 112
Comparing problems
A problem Y is reducible (in polynomial time) to a problem X if
X is at least as difcult to solve as Y, denoted as X
p
Y. Then
X
p
Y and X T implies Y T
X
p
Y and Y / T implies X / T
Dene the problem [LongestPath(u, v, w, N)] of nding a path
of length any N from u to v in a graph with integer weights w
Proposition [HamiltonianCycle]
p
[LongestPath(u, v, w, N)]
Proof Choose unit weights w. Pick an edge e = (u, v).
If there is a longest path of length N = n 1 in G
= Ge,
then G is Hamiltonian. Try out all m < n
2
/2 edges.
Since we know that the Hamiltonian cycle problem in not in T
the longest path problem is also not in T.
Complexity -6pt-6pt Complexity
-6pt-6pt
107 / 112
A Boolean clause is a disjunction of Boolean terms X
i
0, 1 and
their negation X
i
0, 1, e.g. X
1
X
2
X
4
X
7
is a 4-term.
Dene the problem [SAT] as checking if a set of Boolean clauses
can be simultaneously satised ([3SAT] involves only 3-terms).
E.g. X
2
X
2
, X
2
X
3
X
4
, X
1
X
4
can be satised by choosing
X
1
= 1, X
2
= 0, X
3
= 1, X
4
= 0.
Proposition [SAT]
p
[3SAT] and [3SAT]
p
[StableSet ]
Proof We do not prove the rst part involving only 3-terms.
Construct a triangle for
each 3-term and then
connect the negations
across triangles
For a stable set, I can choose only one node in each triangle.
Then there is a stable set of size n/3 iff [3SAT] is satisable.
Complexity -6pt-6pt Complexity
-6pt-6pt
108 / 112
^T and ^T-complete
A problem is Non-deterministic Polynomial (^T) if the validity of a
solution can be checked in polynomial time.
Checking if a given cycle is Hamiltonian can be solved in
polynomial time, but nding it is difcult.
In T the problem can be solved in polynomial time,
in ^T a solution can be checked in polynomial time.
It is still an open question of T = ^T (Cray prize = 1 million dollar)
A problem X is ^T-complete if X ^T and Y ^T, Y
p
X.
Corollary If one ^T-complete problem is in T then T = ^T
Corollary If one ^T-complete problem is not in T then T , = ^T
Complexity -6pt-6pt Complexity
-6pt-6pt
109 / 112
[3SAT] is known to be ^T-complete.
We now prove that also the [CLIQUE] problem is ^T-complete
The [CLIQUE] problem is checking if there exists a clique
(complete subgraph) of size k in a graph G = (V, E)
Proof Consider X
1
X
2
X
3
, X
1
X
2
X
3
, X
1
X
2
X
3
.
Construct a graph with the terms of each clause as nodes.
Then connect all pairs of variable except their negation (partially
done below)
If this graph contains a clique of size 3, the clause is satisable.
References -6pt-6pt References
-6pt-6pt
110 / 112
Some useful literature
J.A. Bondy and U.S.R. Murty, Graph Theory with Applications,
(2nd Edition), North Holland, 1976.
Reinhard Diestel, Graph Theory, Graduate Texts in Mathematics,
Vol. 173, Springer Verlag, Berlin, 1991.
Douglas West, Introduction to Graph Theory, (2nd Edition),
Prentice Hall, 2000.
B. Bollobas, Modern Graph Theory, Springer-Verlag.
Fan Cheung and Linyuan Lu, Complex Graphs and Networks,
Regional Conference Series in Mathematics, Vol. 107, AMS, 2004
Dieter Jungnickel, Graphs, Networks and Algorithms, Algorithms
and Computation in Mathematics, Vol. 5, Springer Verlag, Berlin,
2005.