Successfully reported this slideshow.
Upcoming SlideShare
×

# Discrete Mathematics - Graphs

41,651 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
• Full Name
Comment goes here.

Are you sure you want to Yes No
• Njce! Thanks for sharing.

Are you sure you want to  Yes  No
• Trees slides moved to separate presentation. Still missing: weighted graphs, TSP, depth-first and breath-first search.

Are you sure you want to  Yes  No
• Hi All, We are planning to start Hadoop online training batch on this week... If any one interested to attend the demo please register in our website... For this batch we are also provide everyday recorded sessions with Materials. For more information feel free to contact us : siva@keylabstraining.com. For Course Content and Recorded Demo Click Here : http://www.keylabstraining.com/hadoop-online-training-hyderabad-bangalore

Are you sure you want to  Yes  No
• Thanks,... http://dreamseratech.com

Are you sure you want to  Yes  No
• thanks alot...

Are you sure you want to  Yes  No

### Discrete Mathematics - Graphs

1. 1. Discrete Mathematics Graphs H. Turgut Uyar Ay¸seg¨ul Gen¸cata Yayımlı Emre Harmancı 2001-2016
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 Deﬁnition 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 Deﬁnition 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 Deﬁnition 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 Deﬁnition 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 Deﬁnition 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 Deﬁnition 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 Deﬁnition 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 Deﬁnition 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 ﬁnd whether there is a walk between two nodes rather than ﬁnding 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 ﬁnd whether there is a walk between two nodes rather than ﬁnding 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: ﬁnd an f : V → C, such that ∀(vi , vj ) ∈ E [f (vi ) = f (vj )] chromatic number of G: χ(G) minimum |C| ﬁnding χ(G) is a very diﬃcult problem χ(Kn) = n
130. 130. Graph Coloring G = (V , E), C: set of colors proper coloring of G: ﬁnd an f : V → C, such that ∀(vi , vj ) ∈ E [f (vi ) = f (vj )] chromatic number of G: χ(G) minimum |C| ﬁnding χ(G) is a very diﬃcult problem χ(Kn) = n
131. 131. Graph Coloring G = (V , E), C: set of colors proper coloring of G: ﬁnd an f : V → C, such that ∀(vi , vj ) ∈ E [f (vi ) = f (vj )] chromatic number of G: χ(G) minimum |C| ﬁnding χ(G) is a very diﬃcult 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 conﬂict pick an uncolored node and assign a second color assign same color to all uncolored nodes with no conﬂict 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 diﬀerent 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 ﬁnding 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 ﬁnd Hamiltonian cycle very diﬃcult problem
165. 165. Traveling Salesperson Problem start from a home town visit every city exactly once return to the home town minimum total distance ﬁnd Hamiltonian cycle very diﬃcult 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-ﬁrst breadth-ﬁrst
169. 169. Depth-First Search 1 v ← v1, T = ∅, D = {v1} 2 ﬁnd 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 ﬁnd 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 ﬁnd 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 ﬁnd 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