Successfully reported this slideshow.
Discrete Mathematics
Graphs
H. Turgut Uyar Ay¸seg¨ul Gen¸cata Yayımlı Emre Harmancı
2001-2016
License
c 2001-2016 T. Uyar, A. Yayımlı, E. Harmancı
You are free to:
Share – copy and redistribute the material in any me...
Topics
1 Graphs
Introduction
Walks
Traversable Graphs
Planar Graphs
2 Graph Problems
Connectivity
Graph Coloring
Shortest ...
Topics
1 Graphs
Introduction
Walks
Traversable Graphs
Planar Graphs
2 Graph Problems
Connectivity
Graph Coloring
Shortest ...
Graphs
Definition
graph: G = (V , E)
V : node (or vertex) set
E ⊆ V × V : edge set
e = (v1, v2) ∈ E:
v1 and v2 are endnodes...
Graphs
Definition
graph: G = (V , E)
V : node (or vertex) set
E ⊆ V × V : edge set
e = (v1, v2) ∈ E:
v1 and v2 are endnodes...
Graph Example
V = {a, b, c, d, e, f }
E = {(a, b), (a, c),
(a, d), (a, e),
(a, f ), (b, c),
(d, e), (e, f )}
Directed Graphs
Definition
directed graph (digraph): D = (V , A)
V : node set
A ⊆ V × V : arc set
a = (v1, v2) ∈ A:
v1: ori...
Directed Graph Example
Weighted Graphs
weighted graph: labels assigned to edges
weight
length, distance
cost, delay
probability
. . .
Multigraphs
parallel edges: edges between same node pair
loop: edge starting and ending in same node
plain graph: no loops...
Multigraph Example
parallel edges: (a, b)
loop: (e, e)
Subgraph
Definition
G = (V , E ) is a subgraph of G = (V , E):
V ⊆ V ∧ E ⊆ E ∧ ∀(v1, v2) ∈ E [v1, v2 ∈ V ]
Incidence Matrix
rows: nodes, columns: edges
1 if edge incident on node, 0 otherwise
example
e1 e2 e3 e4 e5 e6 e7 e8
v1 1 ...
Adjacency Matrix
rows: nodes, columns: nodes
1 if nodes are adjacent, 0 otherwise
example
v1 v2 v3 v4 v5
v1 0 1 1 1 1
v2 1...
Adjacency Matrix
multigraph: number of edges between nodes
example
a b c d
a 0 0 0 1
b 2 1 1 0
c 0 0 0 0
d 0 1 1 0
Adjacency Matrix
weighted graph: weight of edge
Degree
degree of node: number of incident edges
Theorem
di : degree of vi
|E| = i di
2
Degree
degree of node: number of incident edges
Theorem
di : degree of vi
|E| = i di
2
Degree Example
da = 5
db = 2
dc = 2
dd = 2
de = 3
df = 2
16
|E| = 8
Multigraph Degree Example
da = 6
db = 3
dc = 2
dd = 2
de = 5
df = 2
20
|E| = 10
Degree in Directed Graphs
in-degree: dv
i
out-degree: dv
o
node with in-degree 0: source
node with out-degree 0: sink
v∈V ...
Degree in Directed Graphs
in-degree: dv
i
out-degree: dv
o
node with in-degree 0: source
node with out-degree 0: sink
v∈V ...
Degree in Directed Graphs
in-degree: dv
i
out-degree: dv
o
node with in-degree 0: source
node with out-degree 0: sink
v∈V ...
Degree
Theorem
In an undirected graph, there is an even number of nodes
which have an odd degree.
Proof.
ti : number of no...
Degree
Theorem
In an undirected graph, there is an even number of nodes
which have an odd degree.
Proof.
ti : number of no...
Degree
Theorem
In an undirected graph, there is an even number of nodes
which have an odd degree.
Proof.
ti : number of no...
Degree
Theorem
In an undirected graph, there is an even number of nodes
which have an odd degree.
Proof.
ti : number of no...
Degree
Theorem
In an undirected graph, there is an even number of nodes
which have an odd degree.
Proof.
ti : number of no...
Degree
Theorem
In an undirected graph, there is an even number of nodes
which have an odd degree.
Proof.
ti : number of no...
Isomorphism
Definition
G = (V , E) and G = (V , E ) are isomorphic:
∃f : V → V [(u, v) ∈ E ⇒ (f (u), f (v)) ∈ E ] ∧ f is bi...
Isomorphism
Definition
G = (V , E) and G = (V , E ) are isomorphic:
∃f : V → V [(u, v) ∈ E ⇒ (f (u), f (v)) ∈ E ] ∧ f is bi...
Isomorphism Example
f = (a → d, b → e, c → b, d → c, e → a)
Isomorphism Example
f = (a → d, b → e, c → b, d → c, e → a)
Petersen Graph
f = (a → q, b → v, c → u, d → y, e → r,
f → w, g → x, h → t, i → z, j → s)
Homeomorphism
Definition
G = (V , E) and G = (V , E ) are homeomorphic:
G and G isomorphic, except that
some edges in E are...
Homeomorphism Example
Regular Graphs
regular graph: all nodes have the same degree
n-regular: all nodes have degree n
examples
Completely Connected Graphs
G = (V , E) is completely connected:
∀v1, v2 ∈ V (v1, v2) ∈ E
every pair of nodes are adjacent...
Completely Connected Graph Examples
K4 K5
Bipartite Graphs
G = (V , E) is bipartite: V1 ∪ V2 = V , V1 ∩ V2 = ∅
∀(v1, v2) ∈ E [v1 ∈ V1 ∧ v2 ∈ V2]
example
complete bi...
Complete Bipartite Graph Examples
K2,3 K3,3
Topics
1 Graphs
Introduction
Walks
Traversable Graphs
Planar Graphs
2 Graph Problems
Connectivity
Graph Coloring
Shortest ...
Walk
walk: sequence of nodes and edges
from a starting node (v0) to an ending node (vn)
v0
e1
−→ v1
e2
−→ v2
e3
−→ v3 −→ ·...
Walk
walk: sequence of nodes and edges
from a starting node (v0) to an ending node (vn)
v0
e1
−→ v1
e2
−→ v2
e3
−→ v3 −→ ·...
Walk Example
c
(c,b)
−−−→ b
(b,a)
−−−→ a
(a,d)
−−−→ d
(d,e)
−−−→ e
(e,f )
−−−→ f
(f ,a)
−−−→ a
(a,b)
−−−→ b
c → b → a → d ...
Trail
trail: edges not repeated
circuit: closed trail
spanning trail: covers all edges
Trail Example
c
(c,b)
−−−→ b
(b,a)
−−−→ a
(a,e)
−−−→ e
(e,d)
−−−→ d
(d,a)
−−−→ a
(a,f )
−−−→ f
c → a → e → d → a → f
Path
path: nodes not repeated
cycle: closed path
spanning path: visits all nodes
Path Example
c
(c,b)
−−−→ b
(b,a)
−−−→ a
(a,d)
−−−→ d
(d,e)
−−−→ e
(e,f )
−−−→ f
c → b → a → d → e → f
Connected Graphs
connected: a path between every pair of nodes
a disconnected graph can be divided
into connected componen...
Connected Components Example
disconnected:
no path between a and c
connected components:
a, d, e
b, c
f
Distance
distance between vi and vj :
length of shortest path between vi and vj
diameter of graph: largest distance in gra...
Distance Example
distance between a and e: 2
diameter: 3
Cut-Points
G − v: delete v and all its incident edges from G
v is a cut-point for G:
G is connected but G − v is not
Cut-Point Example
G G − d
Directed Walks
ignoring directions on arcs: semi-walk, semi-trail, semi-path
if between every pair of nodes there is:
a se...
Directed Graph Examples
weakly unilaterally strongly
Topics
1 Graphs
Introduction
Walks
Traversable Graphs
Planar Graphs
2 Graph Problems
Connectivity
Graph Coloring
Shortest ...
Bridges of K¨onigsberg
cross each bridge exactly once
and return to the starting point
Graphs
Traversable Graphs
G is traversable: G contains a spanning trail
a node with an odd degree must be either the starting nod...
Bridges of K¨onigsberg
all nodes have odd degrees: not traversable
Traversable Graph Example
a, b, c: even
d, e: odd
start from d, end at e:
d → b → a → c → e
→ d → c → b → e
Euler Graphs
Euler graph: contains closed spanning trail
G is an Euler graph ⇔ all nodes in G have even degrees
Euler Graph Examples
Euler not Euler
Hamilton Graphs
Hamilton graph: contains a closed spanning path
Hamilton Graph Examples
Hamilton not Hamilton
Topics
1 Graphs
Introduction
Walks
Traversable Graphs
Planar Graphs
2 Graph Problems
Connectivity
Graph Coloring
Shortest ...
Planar Graphs
Definition
G is planar:
G can be drawn on a plane without intersecting its edges
a map of G: a planar drawing...
Planar Graph Example
Regions
map divides plane into regions
degree of region: length of closed trail that surrounds region
Theorem
dri
: degree...
Regions
map divides plane into regions
degree of region: length of closed trail that surrounds region
Theorem
dri
: degree...
Region Example
dr1 = 3
dr2 = 3
dr3 = 5
dr4 = 4
dr5 = 3
= 18
|E| = 9
Euler’s Formula
Theorem (Euler’s Formula)
G = (V , E): planar, connected graph
R: set of regions in a map of G
|V | − |E| ...
Euler’s Formula Example
|V | = 6, |E| = 9, |R| = 5
Planar Graph Theorems
Theorem
G = (V , E): connected, planar graph where |V | ≥ 3
|E| ≤ 3|V | − 6
Proof.
sum of region deg...
Planar Graph Theorems
Theorem
G = (V , E): connected, planar graph where |V | ≥ 3
|E| ≤ 3|V | − 6
Proof.
sum of region deg...
Planar Graph Theorems
Theorem
G = (V , E): connected, planar graph where |V | ≥ 3
|E| ≤ 3|V | − 6
Proof.
sum of region deg...
Planar Graph Theorems
Theorem
G = (V , E): connected, planar graph where |V | ≥ 3
|E| ≤ 3|V | − 6
Proof.
sum of region deg...
Planar Graph Theorems
Theorem
G = (V , E): connected, planar graph where |V | ≥ 3
|E| ≤ 3|V | − 6
Proof.
sum of region deg...
Planar Graph Theorems
Theorem
G = (V , E): connected, planar graph where |V | ≥ 3
|E| ≤ 3|V | − 6
Proof.
sum of region deg...
Planar Graph Theorems
Theorem
G = (V , E): connected, planar graph where |V | ≥ 3
|E| ≤ 3|V | − 6
Proof.
sum of region deg...
Planar Graph Theorems
Theorem
G = (V , E): connected, planar graph where |V | ≥ 3
|E| ≤ 3|V | − 6
Proof.
sum of region deg...
Planar Graph Theorems
Theorem
G = (V , E): connected, planar graph where |V | ≥ 3
|E| ≤ 3|V | − 6
Proof.
sum of region deg...
Planar Graph Theorems
Theorem
G = (V , E): connected, planar graph where |V | ≥ 3
|E| ≤ 3|V | − 6
Proof.
sum of region deg...
Planar Graph Theorems
Theorem
G = (V , E): connected, planar graph where |V | ≥ 3:
∃v ∈ V [dv ≤ 5]
Proof.
assume: ∀v ∈ V [...
Planar Graph Theorems
Theorem
G = (V , E): connected, planar graph where |V | ≥ 3:
∃v ∈ V [dv ≤ 5]
Proof.
assume: ∀v ∈ V [...
Planar Graph Theorems
Theorem
G = (V , E): connected, planar graph where |V | ≥ 3:
∃v ∈ V [dv ≤ 5]
Proof.
assume: ∀v ∈ V [...
Planar Graph Theorems
Theorem
G = (V , E): connected, planar graph where |V | ≥ 3:
∃v ∈ V [dv ≤ 5]
Proof.
assume: ∀v ∈ V [...
Planar Graph Theorems
Theorem
G = (V , E): connected, planar graph where |V | ≥ 3:
∃v ∈ V [dv ≤ 5]
Proof.
assume: ∀v ∈ V [...
Nonplanar Graphs
Theorem
K5 is not planar.
Proof.
|V | = 5
3|V | − 6 = 3 · 5 − 6 = 9
|E| ≤ 9 should hold
but |E| = 10
Nonplanar Graphs
Theorem
K5 is not planar.
Proof.
|V | = 5
3|V | − 6 = 3 · 5 − 6 = 9
|E| ≤ 9 should hold
but |E| = 10
Nonplanar Graphs
Theorem
K5 is not planar.
Proof.
|V | = 5
3|V | − 6 = 3 · 5 − 6 = 9
|E| ≤ 9 should hold
but |E| = 10
Nonplanar Graphs
Theorem
K5 is not planar.
Proof.
|V | = 5
3|V | − 6 = 3 · 5 − 6 = 9
|E| ≤ 9 should hold
but |E| = 10
Nonplanar Graphs
Theorem
K5 is not planar.
Proof.
|V | = 5
3|V | − 6 = 3 · 5 − 6 = 9
|E| ≤ 9 should hold
but |E| = 10
Nonplanar Graphs
Theorem
K3,3 is not planar. Proof.
|V | = 6, |E| = 9
if planar then |R| = 5
degree of a region ≥ 4
⇒ r∈R ...
Nonplanar Graphs
Theorem
K3,3 is not planar. Proof.
|V | = 6, |E| = 9
if planar then |R| = 5
degree of a region ≥ 4
⇒ r∈R ...
Nonplanar Graphs
Theorem
K3,3 is not planar. Proof.
|V | = 6, |E| = 9
if planar then |R| = 5
degree of a region ≥ 4
⇒ r∈R ...
Nonplanar Graphs
Theorem
K3,3 is not planar. Proof.
|V | = 6, |E| = 9
if planar then |R| = 5
degree of a region ≥ 4
⇒ r∈R ...
Nonplanar Graphs
Theorem
K3,3 is not planar. Proof.
|V | = 6, |E| = 9
if planar then |R| = 5
degree of a region ≥ 4
⇒ r∈R ...
Nonplanar Graphs
Theorem
K3,3 is not planar. Proof.
|V | = 6, |E| = 9
if planar then |R| = 5
degree of a region ≥ 4
⇒ r∈R ...
Kuratowski’s Theorem
Theorem
G contains a subgraph homeomorphic to K5 or K3,3.
⇔
G is not planar.
Platonic Solids
regular polyhedron: a 3-dimensional solid
where faces are identical regular polygons
projection of a regul...
Platonic Solid Example
Platonic Solids
|V |: number of corners (nodes)
|E|: number of sides (edges)
|R|: number of faces (regions)
n: number of f...
Platonic Solids
|V |: number of corners (nodes)
|E|: number of sides (edges)
|R|: number of faces (regions)
n: number of f...
Platonic Solids
from Euler’s formula:
2 = |V |−|E|+|R| =
2|E|
n
−|E|+
2|E|
m
= |E|
2m − mn + 2n
mn
> 0
|E|, m, n > 0:
2m −...
Platonic Solids
from Euler’s formula:
2 = |V |−|E|+|R| =
2|E|
n
−|E|+
2|E|
m
= |E|
2m − mn + 2n
mn
> 0
|E|, m, n > 0:
2m −...
Platonic Solids
from Euler’s formula:
2 = |V |−|E|+|R| =
2|E|
n
−|E|+
2|E|
m
= |E|
2m − mn + 2n
mn
> 0
|E|, m, n > 0:
2m −...
Platonic Solids
from Euler’s formula:
2 = |V |−|E|+|R| =
2|E|
n
−|E|+
2|E|
m
= |E|
2m − mn + 2n
mn
> 0
|E|, m, n > 0:
2m −...
Platonic Solids
from Euler’s formula:
2 = |V |−|E|+|R| =
2|E|
n
−|E|+
2|E|
m
= |E|
2m − mn + 2n
mn
> 0
|E|, m, n > 0:
2m −...
Tetrahedron
m = 3, n = 3
Hexahedron
m = 4, n = 3
Octahedron
m = 3, n = 4
Dodecahedron
m = 5, n = 3
Icosahedron
m = 3, n = 5
Topics
1 Graphs
Introduction
Walks
Traversable Graphs
Planar Graphs
2 Graph Problems
Connectivity
Graph Coloring
Shortest ...
Connectivity Matrix
A: adjacency matrix of G = (V , E)
Ak
ij : number of walks of length k between vi and vj
maximum dista...
Connectivity Matrix
A: adjacency matrix of G = (V , E)
Ak
ij : number of walks of length k between vi and vj
maximum dista...
Warshall’s Algorithm
very expensive to compute the connectivity matrix
easier to find whether there is a walk between two n...
Warshall’s Algorithm
very expensive to compute the connectivity matrix
easier to find whether there is a walk between two n...
Warshall’s Algorithm Example
a b c d
a 0 1 0 0
b 0 1 0 0
c 0 0 0 1
d 1 0 1 0
Warshall’s Algorithm Example
a b c d
a 0 1 0 0
b 0 1 0 0
c 0 0 0 1
d 1 1 1 0
Warshall’s Algorithm Example
a b c d
a 0 1 0 0
b 0 1 0 0
c 0 0 0 1
d 1 1 1 0
Warshall’s Algorithm Example
a b c d
a 0 1 0 0
b 0 1 0 0
c 0 0 0 1
d 1 1 1 1
Warshall’s Algorithm Example
a b c d
a 0 1 0 0
b 0 1 0 0
c 1 1 1 1
d 1 1 1 1
Topics
1 Graphs
Introduction
Walks
Traversable Graphs
Planar Graphs
2 Graph Problems
Connectivity
Graph Coloring
Shortest ...
Graph Coloring
G = (V , E), C: set of colors
proper coloring of G: find an f : V → C, such that
∀(vi , vj ) ∈ E [f (vi ) = ...
Graph Coloring
G = (V , E), C: set of colors
proper coloring of G: find an f : V → C, such that
∀(vi , vj ) ∈ E [f (vi ) = ...
Graph Coloring
G = (V , E), C: set of colors
proper coloring of G: find an f : V → C, such that
∀(vi , vj ) ∈ E [f (vi ) = ...
Chromatic Number Example
Herschel graph: χ(G) = 2
Graph Coloring Solution
pick a node and assign a color
assign same color to all nodes with no conflict
pick an uncolored no...
Heuristic Solutions
heuristic solution: based on intuition
greedy solution: doesn’t look ahead
doesn’t produce optimal res...
Graph Coloring Example
a company produces chemical compounds
some compounds cannot be stored together
such compounds must ...
Graph Coloring Example
a company produces chemical compounds
some compounds cannot be stored together
such compounds must ...
Graph Coloring Example
every compound is a node
two compounds that cannot be stored together are adjacent
Graph Coloring Example
Graph Coloring Example
Graph Coloring Example
Graph Coloring Example
Graph Coloring Example: Sudoku
every cell is a node
cells of the same row
are adjacent
cells of the same column
are adjace...
Graph Coloring Example: Sudoku
every cell is a node
cells of the same row
are adjacent
cells of the same column
are adjace...
Region Coloring
coloring a map by assigning different colors to adjacent regions
Theorem (Four Color Theorem)
The regions i...
Topics
1 Graphs
Introduction
Walks
Traversable Graphs
Planar Graphs
2 Graph Problems
Connectivity
Graph Coloring
Shortest ...
Shortest Path
finding shortest paths from a starting node
to all other nodes: Dijkstra’s algorithm
Dijkstra’s Algorithm Example
starting node: c
a (∞, −)
b (∞, −)
c (0, −)
f (∞, −)
g (∞, −)
h (∞, −)
Dijkstra’s Algorithm Example
from c: base distance=0
c → f : 6, 6 < ∞
c → h : 11, 11 < ∞
a (∞, −)
b (∞, −)
c (0, −)
√
f (6...
Dijkstra’s Algorithm Example
from c: base distance=0
c → f : 6, 6 < ∞
c → h : 11, 11 < ∞
a (∞, −)
b (∞, −)
c (0, −)
√
f (6...
Dijkstra’s Algorithm Example
from c: base distance=0
c → f : 6, 6 < ∞
c → h : 11, 11 < ∞
a (∞, −)
b (∞, −)
c (0, −)
√
f (6...
Dijkstra’s Algorithm Example
from f : base distance=6
f → a : 6 + 11, 17 < ∞
f → g : 6 + 9, 15 < ∞
f → h : 6 + 4, 10 < 11
...
Dijkstra’s Algorithm Example
from f : base distance=6
f → a : 6 + 11, 17 < ∞
f → g : 6 + 9, 15 < ∞
f → h : 6 + 4, 10 < 11
...
Dijkstra’s Algorithm Example
from f : base distance=6
f → a : 6 + 11, 17 < ∞
f → g : 6 + 9, 15 < ∞
f → h : 6 + 4, 10 < 11
...
Dijkstra’s Algorithm Example
from h: base distance=10
h → a : 10 + 11, 21 17
h → g : 10 + 4, 14 < 15
a (17, cfa)
b (∞, −)
...
Dijkstra’s Algorithm Example
from h: base distance=10
h → a : 10 + 11, 21 17
h → g : 10 + 4, 14 < 15
a (17, cfa)
b (∞, −)
...
Dijkstra’s Algorithm Example
from h: base distance=10
h → a : 10 + 11, 21 17
h → g : 10 + 4, 14 < 15
a (17, cfa)
b (∞, −)
...
Dijkstra’s Algorithm Example
from g: base distance=14
g → a : 14 + 17, 31 17
a (17, cfa)
b (∞, −)
c (0, −)
√
f (6, cf )
√
...
Dijkstra’s Algorithm Example
from g: base distance=14
g → a : 14 + 17, 31 17
a (17, cfa)
b (∞, −)
c (0, −)
√
f (6, cf )
√
...
Dijkstra’s Algorithm Example
from g: base distance=14
g → a : 14 + 17, 31 17
a (17, cfa)
b (∞, −)
c (0, −)
√
f (6, cf )
√
...
Dijkstra’s Algorithm Example
from a: base distance=17
a → b : 17 + 5, 22 < ∞
a (17, cfa)
√
b (22, cfab)
c (0, −)
√
f (6, c...
Dijkstra’s Algorithm Example
from a: base distance=17
a → b : 17 + 5, 22 < ∞
a (17, cfa)
√
b (22, cfab)
c (0, −)
√
f (6, c...
Dijkstra’s Algorithm Example
from a: base distance=17
a → b : 17 + 5, 22 < ∞
a (17, cfa)
√
b (22, cfab)
c (0, −)
√
f (6, c...
Topics
1 Graphs
Introduction
Walks
Traversable Graphs
Planar Graphs
2 Graph Problems
Connectivity
Graph Coloring
Shortest ...
Traveling Salesperson Problem
start from a home town
visit every city exactly once
return to the home town
minimum total d...
Traveling Salesperson Problem
start from a home town
visit every city exactly once
return to the home town
minimum total d...
TSP Solution
heuristic: nearest-neighbor
Topics
1 Graphs
Introduction
Walks
Traversable Graphs
Planar Graphs
2 Graph Problems
Connectivity
Graph Coloring
Shortest ...
Searching Graphs
searching nodes of graph G = (V , E) starting from node v1
depth-first
breadth-first
Depth-First Search
1 v ← v1, T = ∅, D = {v1}
2 find smallest i in 2 ≤ i ≤ |V | such that (v, vi ) ∈ E and vi /∈ D
if no suc...
Depth-First Search
1 v ← v1, T = ∅, D = {v1}
2 find smallest i in 2 ≤ i ≤ |V | such that (v, vi ) ∈ E and vi /∈ D
if no suc...
Depth-First Search
1 v ← v1, T = ∅, D = {v1}
2 find smallest i in 2 ≤ i ≤ |V | such that (v, vi ) ∈ E and vi /∈ D
if no suc...
Depth-First Search
1 v ← v1, T = ∅, D = {v1}
2 find smallest i in 2 ≤ i ≤ |V | such that (v, vi ) ∈ E and vi /∈ D
if no suc...
Breadth-First Search
1 T = ∅, D = {v1}, Q = (v1)
2 if Q empty: result is T
3 if Q not empty: v ← front(Q), Q ← Q − v
for 2...
Breadth-First Search
1 T = ∅, D = {v1}, Q = (v1)
2 if Q empty: result is T
3 if Q not empty: v ← front(Q), Q ← Q − v
for 2...
References
Required Reading: Grimaldi
Chapter 11: An Introduction to Graph Theory
Chapter 7: Relations: The Second Time Ar...
Upcoming SlideShare
Loading in …5
×

Discrete Mathematics - Graphs

38,746 views

Published on

Graphs, digraphs, weighted graphs, isomorphism, walks, trails, paths, traversable graphs, planar graphs, Platon solids. Connectivity, shortest path, TSP, graph coloring, depth-first and breadth-first search.

Published in: Education, Technology

Discrete Mathematics - Graphs

  1. 1. Discrete Mathematics Graphs H. Turgut Uyar Ay¸seg¨ul Gen¸cata Yayımlı Emre Harmancı 2001-2016
  2. 2. License c 2001-2016 T. Uyar, A. Yayımlı, E. Harmancı You are free to: Share – copy and redistribute the material in any medium or format Adapt – remix, transform, and build upon the material Under the following terms: Attribution – You must give appropriate credit, provide a link to the license, and indicate if changes were made. NonCommercial – You may not use the material for commercial purposes. ShareAlike – If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original. For more information: https://creativecommons.org/licenses/by-nc-sa/4.0/ Read the full license: https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode
  3. 3. Topics 1 Graphs Introduction Walks Traversable Graphs Planar Graphs 2 Graph Problems Connectivity Graph Coloring Shortest Path TSP Searching Graphs
  4. 4. Topics 1 Graphs Introduction Walks Traversable Graphs Planar Graphs 2 Graph Problems Connectivity Graph Coloring Shortest Path TSP Searching Graphs
  5. 5. Graphs Definition graph: G = (V , E) V : node (or vertex) set E ⊆ V × V : edge set e = (v1, v2) ∈ E: v1 and v2 are endnodes of e e is incident to v1 and v2 v1 and v2 are adjacent
  6. 6. Graphs Definition graph: G = (V , E) V : node (or vertex) set E ⊆ V × V : edge set e = (v1, v2) ∈ E: v1 and v2 are endnodes of e e is incident to v1 and v2 v1 and v2 are adjacent
  7. 7. Graph Example V = {a, b, c, d, e, f } E = {(a, b), (a, c), (a, d), (a, e), (a, f ), (b, c), (d, e), (e, f )}
  8. 8. Directed Graphs Definition directed graph (digraph): D = (V , A) V : node set A ⊆ V × V : arc set a = (v1, v2) ∈ A: v1: origin node of a v2: terminating node of a
  9. 9. Directed Graph Example
  10. 10. Weighted Graphs weighted graph: labels assigned to edges weight length, distance cost, delay probability . . .
  11. 11. Multigraphs parallel edges: edges between same node pair loop: edge starting and ending in same node plain graph: no loops, no parallel edges multigraph: a graph which is not plain
  12. 12. Multigraph Example parallel edges: (a, b) loop: (e, e)
  13. 13. Subgraph Definition G = (V , E ) is a subgraph of G = (V , E): V ⊆ V ∧ E ⊆ E ∧ ∀(v1, v2) ∈ E [v1, v2 ∈ V ]
  14. 14. Incidence Matrix rows: nodes, columns: edges 1 if edge incident on node, 0 otherwise example e1 e2 e3 e4 e5 e6 e7 e8 v1 1 1 1 0 1 0 0 0 v2 1 0 0 1 0 0 0 0 v3 0 0 1 1 0 0 1 1 v4 0 0 0 0 1 1 0 1 v5 0 1 0 0 0 1 1 0
  15. 15. Adjacency Matrix rows: nodes, columns: nodes 1 if nodes are adjacent, 0 otherwise example v1 v2 v3 v4 v5 v1 0 1 1 1 1 v2 1 0 1 0 0 v3 1 1 0 1 1 v4 1 0 1 0 1 v5 1 0 1 1 0
  16. 16. Adjacency Matrix multigraph: number of edges between nodes example a b c d a 0 0 0 1 b 2 1 1 0 c 0 0 0 0 d 0 1 1 0
  17. 17. Adjacency Matrix weighted graph: weight of edge
  18. 18. Degree degree of node: number of incident edges Theorem di : degree of vi |E| = i di 2
  19. 19. Degree degree of node: number of incident edges Theorem di : degree of vi |E| = i di 2
  20. 20. Degree Example da = 5 db = 2 dc = 2 dd = 2 de = 3 df = 2 16 |E| = 8
  21. 21. Multigraph Degree Example da = 6 db = 3 dc = 2 dd = 2 de = 5 df = 2 20 |E| = 10
  22. 22. Degree in Directed Graphs in-degree: dv i out-degree: dv o node with in-degree 0: source node with out-degree 0: sink v∈V dv i = v∈V dv o = |A|
  23. 23. Degree in Directed Graphs in-degree: dv i out-degree: dv o node with in-degree 0: source node with out-degree 0: sink v∈V dv i = v∈V dv o = |A|
  24. 24. Degree in Directed Graphs in-degree: dv i out-degree: dv o node with in-degree 0: source node with out-degree 0: sink v∈V dv i = v∈V dv o = |A|
  25. 25. Degree Theorem In an undirected graph, there is an even number of nodes which have an odd degree. Proof. ti : number of nodes of degree i 2|E| = i di = 1t1 + 2t2 + 3t3 + 4t4 + 5t5 + . . . 2|E| − 2t2 − 4t4 − · · · = t1 + t3 + t5 + · · · + 2t3 + 4t5 + . . . 2|E| − 2t2 − 4t4 − · · · − 2t3 − 4t5 − · · · = t1 + t3 + t5 + . . . left-hand side even ⇒ right-hand side even
  26. 26. Degree Theorem In an undirected graph, there is an even number of nodes which have an odd degree. Proof. ti : number of nodes of degree i 2|E| = i di = 1t1 + 2t2 + 3t3 + 4t4 + 5t5 + . . . 2|E| − 2t2 − 4t4 − · · · = t1 + t3 + t5 + · · · + 2t3 + 4t5 + . . . 2|E| − 2t2 − 4t4 − · · · − 2t3 − 4t5 − · · · = t1 + t3 + t5 + . . . left-hand side even ⇒ right-hand side even
  27. 27. Degree Theorem In an undirected graph, there is an even number of nodes which have an odd degree. Proof. ti : number of nodes of degree i 2|E| = i di = 1t1 + 2t2 + 3t3 + 4t4 + 5t5 + . . . 2|E| − 2t2 − 4t4 − · · · = t1 + t3 + t5 + · · · + 2t3 + 4t5 + . . . 2|E| − 2t2 − 4t4 − · · · − 2t3 − 4t5 − · · · = t1 + t3 + t5 + . . . left-hand side even ⇒ right-hand side even
  28. 28. Degree Theorem In an undirected graph, there is an even number of nodes which have an odd degree. Proof. ti : number of nodes of degree i 2|E| = i di = 1t1 + 2t2 + 3t3 + 4t4 + 5t5 + . . . 2|E| − 2t2 − 4t4 − · · · = t1 + t3 + t5 + · · · + 2t3 + 4t5 + . . . 2|E| − 2t2 − 4t4 − · · · − 2t3 − 4t5 − · · · = t1 + t3 + t5 + . . . left-hand side even ⇒ right-hand side even
  29. 29. Degree Theorem In an undirected graph, there is an even number of nodes which have an odd degree. Proof. ti : number of nodes of degree i 2|E| = i di = 1t1 + 2t2 + 3t3 + 4t4 + 5t5 + . . . 2|E| − 2t2 − 4t4 − · · · = t1 + t3 + t5 + · · · + 2t3 + 4t5 + . . . 2|E| − 2t2 − 4t4 − · · · − 2t3 − 4t5 − · · · = t1 + t3 + t5 + . . . left-hand side even ⇒ right-hand side even
  30. 30. Degree Theorem In an undirected graph, there is an even number of nodes which have an odd degree. Proof. ti : number of nodes of degree i 2|E| = i di = 1t1 + 2t2 + 3t3 + 4t4 + 5t5 + . . . 2|E| − 2t2 − 4t4 − · · · = t1 + t3 + t5 + · · · + 2t3 + 4t5 + . . . 2|E| − 2t2 − 4t4 − · · · − 2t3 − 4t5 − · · · = t1 + t3 + t5 + . . . left-hand side even ⇒ right-hand side even
  31. 31. Isomorphism Definition G = (V , E) and G = (V , E ) are isomorphic: ∃f : V → V [(u, v) ∈ E ⇒ (f (u), f (v)) ∈ E ] ∧ f is bijective G and G can be drawn the same way
  32. 32. Isomorphism Definition G = (V , E) and G = (V , E ) are isomorphic: ∃f : V → V [(u, v) ∈ E ⇒ (f (u), f (v)) ∈ E ] ∧ f is bijective G and G can be drawn the same way
  33. 33. Isomorphism Example f = (a → d, b → e, c → b, d → c, e → a)
  34. 34. Isomorphism Example f = (a → d, b → e, c → b, d → c, e → a)
  35. 35. Petersen Graph f = (a → q, b → v, c → u, d → y, e → r, f → w, g → x, h → t, i → z, j → s)
  36. 36. Homeomorphism Definition G = (V , E) and G = (V , E ) are homeomorphic: G and G isomorphic, except that some edges in E are divided with additional nodes
  37. 37. Homeomorphism Example
  38. 38. Regular Graphs regular graph: all nodes have the same degree n-regular: all nodes have degree n examples
  39. 39. Completely Connected Graphs G = (V , E) is completely connected: ∀v1, v2 ∈ V (v1, v2) ∈ E every pair of nodes are adjacent Kn: completely connected graph with n nodes
  40. 40. Completely Connected Graph Examples K4 K5
  41. 41. Bipartite Graphs G = (V , E) is bipartite: V1 ∪ V2 = V , V1 ∩ V2 = ∅ ∀(v1, v2) ∈ E [v1 ∈ V1 ∧ v2 ∈ V2] example complete bipartite: ∀v1 ∈ V1 ∀v2 ∈ V2 (v1, v2) ∈ E Km,n: |V1| = m, |V2| = n
  42. 42. Complete Bipartite Graph Examples K2,3 K3,3
  43. 43. Topics 1 Graphs Introduction Walks Traversable Graphs Planar Graphs 2 Graph Problems Connectivity Graph Coloring Shortest Path TSP Searching Graphs
  44. 44. Walk walk: sequence of nodes and edges from a starting node (v0) to an ending node (vn) v0 e1 −→ v1 e2 −→ v2 e3 −→ v3 −→ · · · −→ vn−1 en −→ vn where ei = (vi−1, vi ) no need to write the edges if not weighted length: number of edges v0 = vn: closed
  45. 45. Walk walk: sequence of nodes and edges from a starting node (v0) to an ending node (vn) v0 e1 −→ v1 e2 −→ v2 e3 −→ v3 −→ · · · −→ vn−1 en −→ vn where ei = (vi−1, vi ) no need to write the edges if not weighted length: number of edges v0 = vn: closed
  46. 46. Walk Example c (c,b) −−−→ b (b,a) −−−→ a (a,d) −−−→ d (d,e) −−−→ e (e,f ) −−−→ f (f ,a) −−−→ a (a,b) −−−→ b c → b → a → d → e → f → a → b length: 7
  47. 47. Trail trail: edges not repeated circuit: closed trail spanning trail: covers all edges
  48. 48. Trail Example c (c,b) −−−→ b (b,a) −−−→ a (a,e) −−−→ e (e,d) −−−→ d (d,a) −−−→ a (a,f ) −−−→ f c → a → e → d → a → f
  49. 49. Path path: nodes not repeated cycle: closed path spanning path: visits all nodes
  50. 50. Path Example c (c,b) −−−→ b (b,a) −−−→ a (a,d) −−−→ d (d,e) −−−→ e (e,f ) −−−→ f c → b → a → d → e → f
  51. 51. Connected Graphs connected: a path between every pair of nodes a disconnected graph can be divided into connected components
  52. 52. Connected Components Example disconnected: no path between a and c connected components: a, d, e b, c f
  53. 53. Distance distance between vi and vj : length of shortest path between vi and vj diameter of graph: largest distance in graph
  54. 54. Distance Example distance between a and e: 2 diameter: 3
  55. 55. Cut-Points G − v: delete v and all its incident edges from G v is a cut-point for G: G is connected but G − v is not
  56. 56. Cut-Point Example G G − d
  57. 57. Directed Walks ignoring directions on arcs: semi-walk, semi-trail, semi-path if between every pair of nodes there is: a semi-path: weakly connected a path from one to the other: unilaterally connected a path: strongly connected
  58. 58. Directed Graph Examples weakly unilaterally strongly
  59. 59. Topics 1 Graphs Introduction Walks Traversable Graphs Planar Graphs 2 Graph Problems Connectivity Graph Coloring Shortest Path TSP Searching Graphs
  60. 60. Bridges of K¨onigsberg cross each bridge exactly once and return to the starting point
  61. 61. Graphs
  62. 62. Traversable Graphs G is traversable: G contains a spanning trail a node with an odd degree must be either the starting node or the ending node of the trail all nodes except the starting node and the ending node must have even degrees
  63. 63. Bridges of K¨onigsberg all nodes have odd degrees: not traversable
  64. 64. Traversable Graph Example a, b, c: even d, e: odd start from d, end at e: d → b → a → c → e → d → c → b → e
  65. 65. Euler Graphs Euler graph: contains closed spanning trail G is an Euler graph ⇔ all nodes in G have even degrees
  66. 66. Euler Graph Examples Euler not Euler
  67. 67. Hamilton Graphs Hamilton graph: contains a closed spanning path
  68. 68. Hamilton Graph Examples Hamilton not Hamilton
  69. 69. Topics 1 Graphs Introduction Walks Traversable Graphs Planar Graphs 2 Graph Problems Connectivity Graph Coloring Shortest Path TSP Searching Graphs
  70. 70. Planar Graphs Definition G is planar: G can be drawn on a plane without intersecting its edges a map of G: a planar drawing of G
  71. 71. Planar Graph Example
  72. 72. Regions map divides plane into regions degree of region: length of closed trail that surrounds region Theorem dri : degree of region ri |E| = i dri 2
  73. 73. Regions map divides plane into regions degree of region: length of closed trail that surrounds region Theorem dri : degree of region ri |E| = i dri 2
  74. 74. Region Example dr1 = 3 dr2 = 3 dr3 = 5 dr4 = 4 dr5 = 3 = 18 |E| = 9
  75. 75. Euler’s Formula Theorem (Euler’s Formula) G = (V , E): planar, connected graph R: set of regions in a map of G |V | − |E| + |R| = 2
  76. 76. Euler’s Formula Example |V | = 6, |E| = 9, |R| = 5
  77. 77. Planar Graph Theorems Theorem G = (V , E): connected, planar graph where |V | ≥ 3 |E| ≤ 3|V | − 6 Proof. sum of region degrees: 2|E| degree of a region ≥ 3 ⇒ 2|E| ≥ 3|R| ⇒ |R| ≤ 2 3|E| |V | − |E| + |R| = 2 ⇒ |V | − |E| + 2 3|E| ≥ 2 ⇒ |V | − 1 3|E| ≥ 2 ⇒ 3|V | − |E| ≥ 6 ⇒ |E| ≤ 3|V | − 6
  78. 78. Planar Graph Theorems Theorem G = (V , E): connected, planar graph where |V | ≥ 3 |E| ≤ 3|V | − 6 Proof. sum of region degrees: 2|E| degree of a region ≥ 3 ⇒ 2|E| ≥ 3|R| ⇒ |R| ≤ 2 3|E| |V | − |E| + |R| = 2 ⇒ |V | − |E| + 2 3|E| ≥ 2 ⇒ |V | − 1 3|E| ≥ 2 ⇒ 3|V | − |E| ≥ 6 ⇒ |E| ≤ 3|V | − 6
  79. 79. Planar Graph Theorems Theorem G = (V , E): connected, planar graph where |V | ≥ 3 |E| ≤ 3|V | − 6 Proof. sum of region degrees: 2|E| degree of a region ≥ 3 ⇒ 2|E| ≥ 3|R| ⇒ |R| ≤ 2 3|E| |V | − |E| + |R| = 2 ⇒ |V | − |E| + 2 3|E| ≥ 2 ⇒ |V | − 1 3|E| ≥ 2 ⇒ 3|V | − |E| ≥ 6 ⇒ |E| ≤ 3|V | − 6
  80. 80. Planar Graph Theorems Theorem G = (V , E): connected, planar graph where |V | ≥ 3 |E| ≤ 3|V | − 6 Proof. sum of region degrees: 2|E| degree of a region ≥ 3 ⇒ 2|E| ≥ 3|R| ⇒ |R| ≤ 2 3|E| |V | − |E| + |R| = 2 ⇒ |V | − |E| + 2 3|E| ≥ 2 ⇒ |V | − 1 3|E| ≥ 2 ⇒ 3|V | − |E| ≥ 6 ⇒ |E| ≤ 3|V | − 6
  81. 81. Planar Graph Theorems Theorem G = (V , E): connected, planar graph where |V | ≥ 3 |E| ≤ 3|V | − 6 Proof. sum of region degrees: 2|E| degree of a region ≥ 3 ⇒ 2|E| ≥ 3|R| ⇒ |R| ≤ 2 3|E| |V | − |E| + |R| = 2 ⇒ |V | − |E| + 2 3|E| ≥ 2 ⇒ |V | − 1 3|E| ≥ 2 ⇒ 3|V | − |E| ≥ 6 ⇒ |E| ≤ 3|V | − 6
  82. 82. Planar Graph Theorems Theorem G = (V , E): connected, planar graph where |V | ≥ 3 |E| ≤ 3|V | − 6 Proof. sum of region degrees: 2|E| degree of a region ≥ 3 ⇒ 2|E| ≥ 3|R| ⇒ |R| ≤ 2 3|E| |V | − |E| + |R| = 2 ⇒ |V | − |E| + 2 3|E| ≥ 2 ⇒ |V | − 1 3|E| ≥ 2 ⇒ 3|V | − |E| ≥ 6 ⇒ |E| ≤ 3|V | − 6
  83. 83. Planar Graph Theorems Theorem G = (V , E): connected, planar graph where |V | ≥ 3 |E| ≤ 3|V | − 6 Proof. sum of region degrees: 2|E| degree of a region ≥ 3 ⇒ 2|E| ≥ 3|R| ⇒ |R| ≤ 2 3|E| |V | − |E| + |R| = 2 ⇒ |V | − |E| + 2 3|E| ≥ 2 ⇒ |V | − 1 3|E| ≥ 2 ⇒ 3|V | − |E| ≥ 6 ⇒ |E| ≤ 3|V | − 6
  84. 84. Planar Graph Theorems Theorem G = (V , E): connected, planar graph where |V | ≥ 3 |E| ≤ 3|V | − 6 Proof. sum of region degrees: 2|E| degree of a region ≥ 3 ⇒ 2|E| ≥ 3|R| ⇒ |R| ≤ 2 3|E| |V | − |E| + |R| = 2 ⇒ |V | − |E| + 2 3|E| ≥ 2 ⇒ |V | − 1 3|E| ≥ 2 ⇒ 3|V | − |E| ≥ 6 ⇒ |E| ≤ 3|V | − 6
  85. 85. Planar Graph Theorems Theorem G = (V , E): connected, planar graph where |V | ≥ 3 |E| ≤ 3|V | − 6 Proof. sum of region degrees: 2|E| degree of a region ≥ 3 ⇒ 2|E| ≥ 3|R| ⇒ |R| ≤ 2 3|E| |V | − |E| + |R| = 2 ⇒ |V | − |E| + 2 3|E| ≥ 2 ⇒ |V | − 1 3|E| ≥ 2 ⇒ 3|V | − |E| ≥ 6 ⇒ |E| ≤ 3|V | − 6
  86. 86. Planar Graph Theorems Theorem G = (V , E): connected, planar graph where |V | ≥ 3 |E| ≤ 3|V | − 6 Proof. sum of region degrees: 2|E| degree of a region ≥ 3 ⇒ 2|E| ≥ 3|R| ⇒ |R| ≤ 2 3|E| |V | − |E| + |R| = 2 ⇒ |V | − |E| + 2 3|E| ≥ 2 ⇒ |V | − 1 3|E| ≥ 2 ⇒ 3|V | − |E| ≥ 6 ⇒ |E| ≤ 3|V | − 6
  87. 87. Planar Graph Theorems Theorem G = (V , E): connected, planar graph where |V | ≥ 3: ∃v ∈ V [dv ≤ 5] Proof. assume: ∀v ∈ V [dv ≥ 6] ⇒ 2|E| ≥ 6|V | ⇒ |E| ≥ 3|V | ⇒ |E| > 3|V | − 6
  88. 88. Planar Graph Theorems Theorem G = (V , E): connected, planar graph where |V | ≥ 3: ∃v ∈ V [dv ≤ 5] Proof. assume: ∀v ∈ V [dv ≥ 6] ⇒ 2|E| ≥ 6|V | ⇒ |E| ≥ 3|V | ⇒ |E| > 3|V | − 6
  89. 89. Planar Graph Theorems Theorem G = (V , E): connected, planar graph where |V | ≥ 3: ∃v ∈ V [dv ≤ 5] Proof. assume: ∀v ∈ V [dv ≥ 6] ⇒ 2|E| ≥ 6|V | ⇒ |E| ≥ 3|V | ⇒ |E| > 3|V | − 6
  90. 90. Planar Graph Theorems Theorem G = (V , E): connected, planar graph where |V | ≥ 3: ∃v ∈ V [dv ≤ 5] Proof. assume: ∀v ∈ V [dv ≥ 6] ⇒ 2|E| ≥ 6|V | ⇒ |E| ≥ 3|V | ⇒ |E| > 3|V | − 6
  91. 91. Planar Graph Theorems Theorem G = (V , E): connected, planar graph where |V | ≥ 3: ∃v ∈ V [dv ≤ 5] Proof. assume: ∀v ∈ V [dv ≥ 6] ⇒ 2|E| ≥ 6|V | ⇒ |E| ≥ 3|V | ⇒ |E| > 3|V | − 6
  92. 92. Nonplanar Graphs Theorem K5 is not planar. Proof. |V | = 5 3|V | − 6 = 3 · 5 − 6 = 9 |E| ≤ 9 should hold but |E| = 10
  93. 93. Nonplanar Graphs Theorem K5 is not planar. Proof. |V | = 5 3|V | − 6 = 3 · 5 − 6 = 9 |E| ≤ 9 should hold but |E| = 10
  94. 94. Nonplanar Graphs Theorem K5 is not planar. Proof. |V | = 5 3|V | − 6 = 3 · 5 − 6 = 9 |E| ≤ 9 should hold but |E| = 10
  95. 95. Nonplanar Graphs Theorem K5 is not planar. Proof. |V | = 5 3|V | − 6 = 3 · 5 − 6 = 9 |E| ≤ 9 should hold but |E| = 10
  96. 96. Nonplanar Graphs Theorem K5 is not planar. Proof. |V | = 5 3|V | − 6 = 3 · 5 − 6 = 9 |E| ≤ 9 should hold but |E| = 10
  97. 97. Nonplanar Graphs Theorem K3,3 is not planar. Proof. |V | = 6, |E| = 9 if planar then |R| = 5 degree of a region ≥ 4 ⇒ r∈R dr ≥ 20 |E| ≥ 10 should hold but |E| = 9
  98. 98. Nonplanar Graphs Theorem K3,3 is not planar. Proof. |V | = 6, |E| = 9 if planar then |R| = 5 degree of a region ≥ 4 ⇒ r∈R dr ≥ 20 |E| ≥ 10 should hold but |E| = 9
  99. 99. Nonplanar Graphs Theorem K3,3 is not planar. Proof. |V | = 6, |E| = 9 if planar then |R| = 5 degree of a region ≥ 4 ⇒ r∈R dr ≥ 20 |E| ≥ 10 should hold but |E| = 9
  100. 100. Nonplanar Graphs Theorem K3,3 is not planar. Proof. |V | = 6, |E| = 9 if planar then |R| = 5 degree of a region ≥ 4 ⇒ r∈R dr ≥ 20 |E| ≥ 10 should hold but |E| = 9
  101. 101. Nonplanar Graphs Theorem K3,3 is not planar. Proof. |V | = 6, |E| = 9 if planar then |R| = 5 degree of a region ≥ 4 ⇒ r∈R dr ≥ 20 |E| ≥ 10 should hold but |E| = 9
  102. 102. Nonplanar Graphs Theorem K3,3 is not planar. Proof. |V | = 6, |E| = 9 if planar then |R| = 5 degree of a region ≥ 4 ⇒ r∈R dr ≥ 20 |E| ≥ 10 should hold but |E| = 9
  103. 103. Kuratowski’s Theorem Theorem G contains a subgraph homeomorphic to K5 or K3,3. ⇔ G is not planar.
  104. 104. Platonic Solids regular polyhedron: a 3-dimensional solid where faces are identical regular polygons projection of a regular polyhedron onto the plane: a planar graph corners: nodes sides: edges faces: regions
  105. 105. Platonic Solid Example
  106. 106. Platonic Solids |V |: number of corners (nodes) |E|: number of sides (edges) |R|: number of faces (regions) n: number of faces meeting at a corner (node degree) m: number of sides of a face (region degree) m, n ≥ 3 2|E| = n · |V | 2|E| = m · |R|
  107. 107. Platonic Solids |V |: number of corners (nodes) |E|: number of sides (edges) |R|: number of faces (regions) n: number of faces meeting at a corner (node degree) m: number of sides of a face (region degree) m, n ≥ 3 2|E| = n · |V | 2|E| = m · |R|
  108. 108. Platonic Solids from Euler’s formula: 2 = |V |−|E|+|R| = 2|E| n −|E|+ 2|E| m = |E| 2m − mn + 2n mn > 0 |E|, m, n > 0: 2m − mn + 2n > 0 ⇒ mn − 2m − 2n < 0 ⇒ mn − 2m − 2n + 4 < 4 ⇒ (m − 2)(n − 2) < 4 only 5 solutions
  109. 109. Platonic Solids from Euler’s formula: 2 = |V |−|E|+|R| = 2|E| n −|E|+ 2|E| m = |E| 2m − mn + 2n mn > 0 |E|, m, n > 0: 2m − mn + 2n > 0 ⇒ mn − 2m − 2n < 0 ⇒ mn − 2m − 2n + 4 < 4 ⇒ (m − 2)(n − 2) < 4 only 5 solutions
  110. 110. Platonic Solids from Euler’s formula: 2 = |V |−|E|+|R| = 2|E| n −|E|+ 2|E| m = |E| 2m − mn + 2n mn > 0 |E|, m, n > 0: 2m − mn + 2n > 0 ⇒ mn − 2m − 2n < 0 ⇒ mn − 2m − 2n + 4 < 4 ⇒ (m − 2)(n − 2) < 4 only 5 solutions
  111. 111. Platonic Solids from Euler’s formula: 2 = |V |−|E|+|R| = 2|E| n −|E|+ 2|E| m = |E| 2m − mn + 2n mn > 0 |E|, m, n > 0: 2m − mn + 2n > 0 ⇒ mn − 2m − 2n < 0 ⇒ mn − 2m − 2n + 4 < 4 ⇒ (m − 2)(n − 2) < 4 only 5 solutions
  112. 112. Platonic Solids from Euler’s formula: 2 = |V |−|E|+|R| = 2|E| n −|E|+ 2|E| m = |E| 2m − mn + 2n mn > 0 |E|, m, n > 0: 2m − mn + 2n > 0 ⇒ mn − 2m − 2n < 0 ⇒ mn − 2m − 2n + 4 < 4 ⇒ (m − 2)(n − 2) < 4 only 5 solutions
  113. 113. Tetrahedron m = 3, n = 3
  114. 114. Hexahedron m = 4, n = 3
  115. 115. Octahedron m = 3, n = 4
  116. 116. Dodecahedron m = 5, n = 3
  117. 117. Icosahedron m = 3, n = 5
  118. 118. Topics 1 Graphs Introduction Walks Traversable Graphs Planar Graphs 2 Graph Problems Connectivity Graph Coloring Shortest Path TSP Searching Graphs
  119. 119. Connectivity Matrix A: adjacency matrix of G = (V , E) Ak ij : number of walks of length k between vi and vj maximum distance between two nodes: |V | − 1 connectivity matrix: C = A1 + A2 + A3 + · · · + A|V |−1 connected: all elements of C are non-zero
  120. 120. Connectivity Matrix A: adjacency matrix of G = (V , E) Ak ij : number of walks of length k between vi and vj maximum distance between two nodes: |V | − 1 connectivity matrix: C = A1 + A2 + A3 + · · · + A|V |−1 connected: all elements of C are non-zero
  121. 121. Warshall’s Algorithm very expensive to compute the connectivity matrix easier to find whether there is a walk between two nodes rather than finding the number of walks for each node: from all nodes which can reach the current node (rows that contain 1 in current column) to all nodes which can be reached from the current node (columns that contain 1 in current row)
  122. 122. Warshall’s Algorithm very expensive to compute the connectivity matrix easier to find whether there is a walk between two nodes rather than finding the number of walks for each node: from all nodes which can reach the current node (rows that contain 1 in current column) to all nodes which can be reached from the current node (columns that contain 1 in current row)
  123. 123. Warshall’s Algorithm Example a b c d a 0 1 0 0 b 0 1 0 0 c 0 0 0 1 d 1 0 1 0
  124. 124. Warshall’s Algorithm Example a b c d a 0 1 0 0 b 0 1 0 0 c 0 0 0 1 d 1 1 1 0
  125. 125. Warshall’s Algorithm Example a b c d a 0 1 0 0 b 0 1 0 0 c 0 0 0 1 d 1 1 1 0
  126. 126. Warshall’s Algorithm Example a b c d a 0 1 0 0 b 0 1 0 0 c 0 0 0 1 d 1 1 1 1
  127. 127. Warshall’s Algorithm Example a b c d a 0 1 0 0 b 0 1 0 0 c 1 1 1 1 d 1 1 1 1
  128. 128. Topics 1 Graphs Introduction Walks Traversable Graphs Planar Graphs 2 Graph Problems Connectivity Graph Coloring Shortest Path TSP Searching Graphs
  129. 129. Graph Coloring G = (V , E), C: set of colors proper coloring of G: find an f : V → C, such that ∀(vi , vj ) ∈ E [f (vi ) = f (vj )] chromatic number of G: χ(G) minimum |C| finding χ(G) is a very difficult problem χ(Kn) = n
  130. 130. Graph Coloring G = (V , E), C: set of colors proper coloring of G: find an f : V → C, such that ∀(vi , vj ) ∈ E [f (vi ) = f (vj )] chromatic number of G: χ(G) minimum |C| finding χ(G) is a very difficult problem χ(Kn) = n
  131. 131. Graph Coloring G = (V , E), C: set of colors proper coloring of G: find an f : V → C, such that ∀(vi , vj ) ∈ E [f (vi ) = f (vj )] chromatic number of G: χ(G) minimum |C| finding χ(G) is a very difficult problem χ(Kn) = n
  132. 132. Chromatic Number Example Herschel graph: χ(G) = 2
  133. 133. Graph Coloring Solution pick a node and assign a color assign same color to all nodes with no conflict pick an uncolored node and assign a second color assign same color to all uncolored nodes with no conflict pick an uncolored node and assign a third color . . .
  134. 134. Heuristic Solutions heuristic solution: based on intuition greedy solution: doesn’t look ahead doesn’t produce optimal results
  135. 135. Graph Coloring Example a company produces chemical compounds some compounds cannot be stored together such compounds must be placed in separate storage areas store compounds using minimum number of storage areas
  136. 136. Graph Coloring Example a company produces chemical compounds some compounds cannot be stored together such compounds must be placed in separate storage areas store compounds using minimum number of storage areas
  137. 137. Graph Coloring Example every compound is a node two compounds that cannot be stored together are adjacent
  138. 138. Graph Coloring Example
  139. 139. Graph Coloring Example
  140. 140. Graph Coloring Example
  141. 141. Graph Coloring Example
  142. 142. Graph Coloring Example: Sudoku every cell is a node cells of the same row are adjacent cells of the same column are adjacent cells of the same 3 × 3 block are adjacent every number is a color problem: properly color a graph that is partially colored
  143. 143. Graph Coloring Example: Sudoku every cell is a node cells of the same row are adjacent cells of the same column are adjacent cells of the same 3 × 3 block are adjacent every number is a color problem: properly color a graph that is partially colored
  144. 144. Region Coloring coloring a map by assigning different colors to adjacent regions Theorem (Four Color Theorem) The regions in a map can be colored using four colors.
  145. 145. Topics 1 Graphs Introduction Walks Traversable Graphs Planar Graphs 2 Graph Problems Connectivity Graph Coloring Shortest Path TSP Searching Graphs
  146. 146. Shortest Path finding shortest paths from a starting node to all other nodes: Dijkstra’s algorithm
  147. 147. Dijkstra’s Algorithm Example starting node: c a (∞, −) b (∞, −) c (0, −) f (∞, −) g (∞, −) h (∞, −)
  148. 148. Dijkstra’s Algorithm Example from c: base distance=0 c → f : 6, 6 < ∞ c → h : 11, 11 < ∞ a (∞, −) b (∞, −) c (0, −) √ f (6, cf ) g (∞, −) h (11, ch) closest node: f
  149. 149. Dijkstra’s Algorithm Example from c: base distance=0 c → f : 6, 6 < ∞ c → h : 11, 11 < ∞ a (∞, −) b (∞, −) c (0, −) √ f (6, cf ) g (∞, −) h (11, ch) closest node: f
  150. 150. Dijkstra’s Algorithm Example from c: base distance=0 c → f : 6, 6 < ∞ c → h : 11, 11 < ∞ a (∞, −) b (∞, −) c (0, −) √ f (6, cf ) g (∞, −) h (11, ch) closest node: f
  151. 151. Dijkstra’s Algorithm Example from f : base distance=6 f → a : 6 + 11, 17 < ∞ f → g : 6 + 9, 15 < ∞ f → h : 6 + 4, 10 < 11 a (17, cfa) b (∞, −) c (0, −) √ f (6, cf ) √ g (15, cfg) h (10, cfh) closest node: h
  152. 152. Dijkstra’s Algorithm Example from f : base distance=6 f → a : 6 + 11, 17 < ∞ f → g : 6 + 9, 15 < ∞ f → h : 6 + 4, 10 < 11 a (17, cfa) b (∞, −) c (0, −) √ f (6, cf ) √ g (15, cfg) h (10, cfh) closest node: h
  153. 153. Dijkstra’s Algorithm Example from f : base distance=6 f → a : 6 + 11, 17 < ∞ f → g : 6 + 9, 15 < ∞ f → h : 6 + 4, 10 < 11 a (17, cfa) b (∞, −) c (0, −) √ f (6, cf ) √ g (15, cfg) h (10, cfh) closest node: h
  154. 154. Dijkstra’s Algorithm Example from h: base distance=10 h → a : 10 + 11, 21 17 h → g : 10 + 4, 14 < 15 a (17, cfa) b (∞, −) c (0, −) √ f (6, cf ) √ g (14, cfhg) h (10, cfh) √ closest node: g
  155. 155. Dijkstra’s Algorithm Example from h: base distance=10 h → a : 10 + 11, 21 17 h → g : 10 + 4, 14 < 15 a (17, cfa) b (∞, −) c (0, −) √ f (6, cf ) √ g (14, cfhg) h (10, cfh) √ closest node: g
  156. 156. Dijkstra’s Algorithm Example from h: base distance=10 h → a : 10 + 11, 21 17 h → g : 10 + 4, 14 < 15 a (17, cfa) b (∞, −) c (0, −) √ f (6, cf ) √ g (14, cfhg) h (10, cfh) √ closest node: g
  157. 157. Dijkstra’s Algorithm Example from g: base distance=14 g → a : 14 + 17, 31 17 a (17, cfa) b (∞, −) c (0, −) √ f (6, cf ) √ g (14, cfhg) √ h (10, cfh) √ closest node: a
  158. 158. Dijkstra’s Algorithm Example from g: base distance=14 g → a : 14 + 17, 31 17 a (17, cfa) b (∞, −) c (0, −) √ f (6, cf ) √ g (14, cfhg) √ h (10, cfh) √ closest node: a
  159. 159. Dijkstra’s Algorithm Example from g: base distance=14 g → a : 14 + 17, 31 17 a (17, cfa) b (∞, −) c (0, −) √ f (6, cf ) √ g (14, cfhg) √ h (10, cfh) √ closest node: a
  160. 160. Dijkstra’s Algorithm Example from a: base distance=17 a → b : 17 + 5, 22 < ∞ a (17, cfa) √ b (22, cfab) c (0, −) √ f (6, cf ) √ g (14, cfhg) √ h (10, cfh) √ last node: b
  161. 161. Dijkstra’s Algorithm Example from a: base distance=17 a → b : 17 + 5, 22 < ∞ a (17, cfa) √ b (22, cfab) c (0, −) √ f (6, cf ) √ g (14, cfhg) √ h (10, cfh) √ last node: b
  162. 162. Dijkstra’s Algorithm Example from a: base distance=17 a → b : 17 + 5, 22 < ∞ a (17, cfa) √ b (22, cfab) c (0, −) √ f (6, cf ) √ g (14, cfhg) √ h (10, cfh) √ last node: b
  163. 163. Topics 1 Graphs Introduction Walks Traversable Graphs Planar Graphs 2 Graph Problems Connectivity Graph Coloring Shortest Path TSP Searching Graphs
  164. 164. Traveling Salesperson Problem start from a home town visit every city exactly once return to the home town minimum total distance find Hamiltonian cycle very difficult problem
  165. 165. Traveling Salesperson Problem start from a home town visit every city exactly once return to the home town minimum total distance find Hamiltonian cycle very difficult problem
  166. 166. TSP Solution heuristic: nearest-neighbor
  167. 167. Topics 1 Graphs Introduction Walks Traversable Graphs Planar Graphs 2 Graph Problems Connectivity Graph Coloring Shortest Path TSP Searching Graphs
  168. 168. Searching Graphs searching nodes of graph G = (V , E) starting from node v1 depth-first breadth-first
  169. 169. Depth-First Search 1 v ← v1, T = ∅, D = {v1} 2 find smallest i in 2 ≤ i ≤ |V | such that (v, vi ) ∈ E and vi /∈ D if no such i: go to step 3 if found: T = T ∪ {(v, vi )}, D = D ∪ {vi }, v ← vi , go to step 2 3 if v = v1: result is T 4 if v = v1: v ← backtrack(v), go to step 2
  170. 170. Depth-First Search 1 v ← v1, T = ∅, D = {v1} 2 find smallest i in 2 ≤ i ≤ |V | such that (v, vi ) ∈ E and vi /∈ D if no such i: go to step 3 if found: T = T ∪ {(v, vi )}, D = D ∪ {vi }, v ← vi , go to step 2 3 if v = v1: result is T 4 if v = v1: v ← backtrack(v), go to step 2
  171. 171. Depth-First Search 1 v ← v1, T = ∅, D = {v1} 2 find smallest i in 2 ≤ i ≤ |V | such that (v, vi ) ∈ E and vi /∈ D if no such i: go to step 3 if found: T = T ∪ {(v, vi )}, D = D ∪ {vi }, v ← vi , go to step 2 3 if v = v1: result is T 4 if v = v1: v ← backtrack(v), go to step 2
  172. 172. Depth-First Search 1 v ← v1, T = ∅, D = {v1} 2 find smallest i in 2 ≤ i ≤ |V | such that (v, vi ) ∈ E and vi /∈ D if no such i: go to step 3 if found: T = T ∪ {(v, vi )}, D = D ∪ {vi }, v ← vi , go to step 2 3 if v = v1: result is T 4 if v = v1: v ← backtrack(v), go to step 2
  173. 173. Breadth-First Search 1 T = ∅, D = {v1}, Q = (v1) 2 if Q empty: result is T 3 if Q not empty: v ← front(Q), Q ← Q − v for 2 ≤ i ≤ |V | check edges (v, vi ) ∈ E: if vi /∈ D : Q = Q + vi , T = T ∪ {(v, vi )}, D = D ∪ {vi } go to step 3
  174. 174. Breadth-First Search 1 T = ∅, D = {v1}, Q = (v1) 2 if Q empty: result is T 3 if Q not empty: v ← front(Q), Q ← Q − v for 2 ≤ i ≤ |V | check edges (v, vi ) ∈ E: if vi /∈ D : Q = Q + vi , T = T ∪ {(v, vi )}, D = D ∪ {vi } go to step 3
  175. 175. References Required Reading: Grimaldi Chapter 11: An Introduction to Graph Theory Chapter 7: Relations: The Second Time Around 7.2. Computer Recognition: Zero-One Matrices and Directed Graphs Chapter 13: Optimization and Matching 13.1. Dijkstra’s Shortest Path Algorithm

×