Graphs H. Turgut Uyar Ay¸seg¨ul Gencata Yayımlı Emre...

Preview:

Citation preview

Discrete MathematicsGraphs

H. Turgut Uyar Aysegul Gencata 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 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 mustdistribute 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

Topics

1 GraphsIntroductionWalksTraversable GraphsPlanar Graphs

2 Graph ProblemsConnectivityGraph ColoringShortest PathTSPSearching Graphs

Topics

1 GraphsIntroductionWalksTraversable GraphsPlanar Graphs

2 Graph ProblemsConnectivityGraph ColoringShortest PathTSPSearching Graphs

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

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

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: origin node of a

v2: terminating node of a

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, no parallel edges

multigraph: a graph which is not plain

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 1 1 0 1 0 0 0v2 1 0 0 1 0 0 0 0v3 0 0 1 1 0 0 1 1v4 0 0 0 0 1 1 0 1v5 0 1 0 0 0 1 1 0

Adjacency Matrix

rows: nodes, columns: nodes

1 if nodes are adjacent, 0 otherwise

example

v1 v2 v3 v4 v5

v1 0 1 1 1 1v2 1 0 1 0 0v3 1 1 0 1 1v4 1 0 1 0 1v5 1 0 1 1 0

Adjacency Matrix

multigraph: number of edges between nodes

example

a b c d

a 0 0 0 1b 2 1 1 0c 0 0 0 0d 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 = 5db = 2dc = 2dd = 2de = 3df = 2

16|E | = 8

Multigraph Degree Example

da = 6db = 3dc = 2dd = 2de = 5df = 2

20|E | = 10

Degree in Directed Graphs

in-degree: dvi

out-degree: dvo

node with in-degree 0: source

node with out-degree 0: sink∑v∈V dv

i =∑

v∈V dvo = |A|

Degree in Directed Graphs

in-degree: dvi

out-degree: dvo

node with in-degree 0: source

node with out-degree 0: sink∑v∈V dv

i =∑

v∈V dvo = |A|

Degree in Directed Graphs

in-degree: dvi

out-degree: dvo

node with in-degree 0: source

node with out-degree 0: sink∑v∈V dv

i =∑

v∈V dvo = |A|

Degree

Theorem

In an undirected graph, there is an even number of nodeswhich have an odd degree.

Proof.

ti : number of nodes of degree i2|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

Degree

Theorem

In an undirected graph, there is an even number of nodeswhich have an odd degree.

Proof.

ti : number of nodes of degree i2|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

Degree

Theorem

In an undirected graph, there is an even number of nodeswhich have an odd degree.

Proof.

ti : number of nodes of degree i2|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

Degree

Theorem

In an undirected graph, there is an even number of nodeswhich have an odd degree.

Proof.

ti : number of nodes of degree i2|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

Degree

Theorem

In an undirected graph, there is an even number of nodeswhich have an odd degree.

Proof.

ti : number of nodes of degree i2|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

Degree

Theorem

In an undirected graph, there is an even number of nodeswhich have an odd degree.

Proof.

ti : number of nodes of degree i2|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

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

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

Isomorphism Example

f = (a 7→ d , b 7→ e, c 7→ b, d 7→ c, e 7→ a)

Isomorphism Example

f = (a 7→ d , b 7→ e, c 7→ b, d 7→ c, e 7→ a)

Petersen Graph

f = (a 7→ q, b 7→ v , c 7→ u, d 7→ y , e 7→ r ,f 7→ w , g 7→ x , h 7→ t, i 7→ z , j 7→ s)

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

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

Kn: completely connected graph with n nodes

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 bipartite: ∀v1 ∈ V1 ∀v2 ∈ V2 (v1, v2) ∈ E

Km,n: |V1| = m, |V2| = n

Complete Bipartite Graph Examples

K2,3 K3,3

Topics

1 GraphsIntroductionWalksTraversable GraphsPlanar Graphs

2 Graph ProblemsConnectivityGraph ColoringShortest PathTSPSearching Graphs

Walk

walk: sequence of nodes and edgesfrom a starting node (v0) to an ending node (vn)

v0e1−→ v1

e2−→ v2e3−→ 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

Walk

walk: sequence of nodes and edgesfrom a starting node (v0) to an ending node (vn)

v0e1−→ v1

e2−→ v2e3−→ 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

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

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 dividedinto connected components

Connected Components Example

disconnected:no path between a and c

connected components:a, d , eb, cf

Distance

distance between vi and vj :length of shortest path between vi and vj

diameter of graph: largest distance in graph

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 semi-path: weakly connected

a path from one to the other: unilaterally connected

a path: strongly connected

Directed Graph Examples

weakly unilaterally strongly

Topics

1 GraphsIntroductionWalksTraversable GraphsPlanar Graphs

2 Graph ProblemsConnectivityGraph ColoringShortest PathTSPSearching Graphs

Bridges of Konigsberg

cross each bridge exactly onceand 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 nodeor the ending node of the trail

all nodes except the starting node and the ending nodemust have even degrees

Bridges of Konigsberg

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 GraphsIntroductionWalksTraversable GraphsPlanar Graphs

2 Graph ProblemsConnectivityGraph ColoringShortest PathTSPSearching Graphs

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

Planar Graph Example

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

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

Region Example

dr1 = 3dr2 = 3dr3 = 5dr4 = 4dr5 = 3

= 18|E | = 9

Euler’s Formula

Theorem (Euler’s Formula)

G = (V ,E ): planar, connected graphR: set of regions in a map of G

|V | − |E |+ |R| = 2

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 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 | − 13 |E | ≥ 2

⇒ 3|V | − |E | ≥ 6 ⇒ |E | ≤ 3|V | − 6

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 | − 13 |E | ≥ 2

⇒ 3|V | − |E | ≥ 6 ⇒ |E | ≤ 3|V | − 6

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 | − 13 |E | ≥ 2

⇒ 3|V | − |E | ≥ 6 ⇒ |E | ≤ 3|V | − 6

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 | − 13 |E | ≥ 2

⇒ 3|V | − |E | ≥ 6 ⇒ |E | ≤ 3|V | − 6

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 | − 13 |E | ≥ 2

⇒ 3|V | − |E | ≥ 6 ⇒ |E | ≤ 3|V | − 6

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 | − 13 |E | ≥ 2

⇒ 3|V | − |E | ≥ 6 ⇒ |E | ≤ 3|V | − 6

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 | − 13 |E | ≥ 2

⇒ 3|V | − |E | ≥ 6 ⇒ |E | ≤ 3|V | − 6

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 | − 13 |E | ≥ 2

⇒ 3|V | − |E | ≥ 6 ⇒ |E | ≤ 3|V | − 6

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 | − 13 |E | ≥ 2

⇒ 3|V | − |E | ≥ 6 ⇒ |E | ≤ 3|V | − 6

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 | − 13 |E | ≥ 2

⇒ 3|V | − |E | ≥ 6 ⇒ |E | ≤ 3|V | − 6

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

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

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

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

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

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 dr ≥ 20

|E | ≥ 10 should hold

but |E | = 9

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

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

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

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

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

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 solidwhere faces are identical regular polygons

projection of a regular polyhedron onto the plane:a planar graph

corners: nodes

sides: edges

faces: regions

Platonic Solid Example

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|

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|

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

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

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

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

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

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 GraphsIntroductionWalksTraversable GraphsPlanar Graphs

2 Graph ProblemsConnectivityGraph ColoringShortest PathTSPSearching Graphs

Connectivity Matrix

A: adjacency matrix of G = (V ,E )

Akij : 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

Connectivity Matrix

A: adjacency matrix of G = (V ,E )

Akij : 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

Warshall’s Algorithm

very expensive to compute the connectivity matrix

easier to find whether there is a walk between two nodesrather 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)

Warshall’s Algorithm

very expensive to compute the connectivity matrix

easier to find whether there is a walk between two nodesrather 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)

Warshall’s Algorithm Example

a b c d

a 0 1 0 0b 0 1 0 0c 0 0 0 1d 1 0 1 0

Warshall’s Algorithm Example

a b c d

a 0 1 0 0b 0 1 0 0c 0 0 0 1d 1 1 1 0

Warshall’s Algorithm Example

a b c d

a 0 1 0 0b 0 1 0 0c 0 0 0 1d 1 1 1 0

Warshall’s Algorithm Example

a b c d

a 0 1 0 0b 0 1 0 0c 0 0 0 1d 1 1 1 1

Warshall’s Algorithm Example

a b c d

a 0 1 0 0b 0 1 0 0c 1 1 1 1d 1 1 1 1

Topics

1 GraphsIntroductionWalksTraversable GraphsPlanar Graphs

2 Graph ProblemsConnectivityGraph ColoringShortest PathTSPSearching Graphs

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 ) 6= f (vj)]

chromatic number of G : χ(G )minimum |C |finding χ(G ) is a very difficult problem

χ(Kn) = n

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 ) 6= f (vj)]

chromatic number of G : χ(G )minimum |C |finding χ(G ) is a very difficult problem

χ(Kn) = n

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 ) 6= f (vj)]

chromatic number of G : χ(G )minimum |C |finding χ(G ) is a very difficult problem

χ(Kn) = n

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 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

. . .

Heuristic Solutions

heuristic solution: based on intuition

greedy solution: doesn’t look ahead

doesn’t produce optimal results

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

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

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 roware adjacent

cells of the same columnare adjacent

cells of the same 3× 3 blockare adjacent

every number is a color

problem: properly color a graphthat is partially colored

Graph Coloring Example: Sudoku

every cell is a node

cells of the same roware adjacent

cells of the same columnare adjacent

cells of the same 3× 3 blockare adjacent

every number is a color

problem: properly color a graphthat is partially colored

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.

Topics

1 GraphsIntroductionWalksTraversable GraphsPlanar Graphs

2 Graph ProblemsConnectivityGraph ColoringShortest PathTSPSearching Graphs

Shortest Path

finding shortest paths from a starting nodeto 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, cf )

g (∞,−)

h (11, ch)

closest node: f

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Topics

1 GraphsIntroductionWalksTraversable GraphsPlanar Graphs

2 Graph ProblemsConnectivityGraph ColoringShortest PathTSPSearching Graphs

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

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

TSP Solution

heuristic: nearest-neighbor

Topics

1 GraphsIntroductionWalksTraversable GraphsPlanar Graphs

2 Graph ProblemsConnectivityGraph ColoringShortest PathTSPSearching Graphs

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 such i : go to step 3if found: T = T ∪ {(v , vi )}, D = D ∪ {vi}, v ← vi ,go to step 2

3 if v = v1: result is T

4 if v 6= v1: v ← backtrack(v), go to step 2

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 3if found: T = T ∪ {(v , vi )}, D = D ∪ {vi}, v ← vi ,go to step 2

3 if v = v1: result is T

4 if v 6= v1: v ← backtrack(v), go to step 2

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 3if found: T = T ∪ {(v , vi )}, D = D ∪ {vi}, v ← vi ,go to step 2

3 if v = v1: result is T

4 if v 6= v1: v ← backtrack(v), go to step 2

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 3if found: T = T ∪ {(v , vi )}, D = D ∪ {vi}, v ← vi ,go to step 2

3 if v = v1: result is T

4 if v 6= v1: v ← backtrack(v), go to step 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 − vfor 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

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 − vfor 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

References

Required Reading: Grimaldi

Chapter 11: An Introduction to Graph Theory

Chapter 7: Relations: The Second Time Around

7.2. Computer Recognition: Zero-One Matricesand Directed Graphs

Chapter 13: Optimization and Matching

13.1. Dijkstra’s Shortest Path Algorithm

Recommended