Download presentation
Presentation is loading. Please wait.
Published byRoy Holt Modified over 9 years ago
1
Graph Dr. Bernard Chen Ph.D. University of Central Arkansas
2
Graph Algorithms Graphs and Theorems about Graphs Graph Algorithms minimum spanning tree
3
What can graphs model? Cost of wiring electronic components together. Shortest route between two cities. Finding the shortest distance between all pairs of cities in a road atlas.
4
What is a Graph? Informally a graph is a set of nodes joined by a set of lines or arrows. 1 1 2 3 4 4 5566 2 3
5
Directed Graph A directed graph is a pair ( V, E ), where the set V is a finite set and E is a binary relation on V. The set V is called the vertex set of G and the elements are called vertices. The set E is called the edge set of G and the elements are edges
6
Directed Graph 1 2 3 4 56 V = { 1, 2, 3, 4, 5, 6, 7 } | V | = 7 E = { (1,2), (2,2), (2,4), (4,5), (4,1), (5,4),(6,3) } | E | = 7 Self loop 7 Isolated node
7
Undirected Graph An undirected graph G = ( V, E ), but unlike a digraph the edge set E consist of unordered pairs. We use the notation (a, b ) to refer to a directed edge, and { a, b } for an undirected edge.
8
Undirected Graph A D E F B C V = { A, B, C, D, E, F } |V | = 6 E = { {A, B}, {A,E}, {B,E}, {C,F} } |E | = 4 Some texts use (a, b) also for undirected edges. So ( a, b ) and ( b, a ) refers to the same edge.
9
Degree Degree of a Vertex in an undirected graph is the number of edges incident on it. In a directed graph, the out degree of a vertex is the number of edges leaving it and the in degree is the number of edges entering it.
10
Degree A D E F B C The degree of B is 2.
11
Degree 1 2 4 5 The in degree of 2 is 2 and the out degree of 2 is 3.
12
Weighted Graph A weighted graph is a graph for which each edge has an associated weight, usually given by a weight function w: E R.
13
1 2 3 4 56.5 1.2.2.5 1.5.3 Weighted Graph
14
Implementation of a Graph Adjacency-list representation of a graph G = ( V, E ) consists of an array ADJ of |V | lists, one for each vertex in V. For each u V, ADJ [ u ] points to all its adjacent vertices.
15
Implementation of a Graph 1 5 1 2 2 5 4 4 3 3 25 1534 24 2 4 5 1 3 2
16
1 5 1 2 2 5 4 4 3 3 25 534 4 5 5
17
Adjacency lists Advantage: Saves space for sparse graphs. Most graphs are sparse. “Visit” edges that start at v Must traverse linked list of v Size of linked list of v is degree(v) (degree(v))
18
Adjacency-matrix- representation Adjacency-matrix-representation of a graph G = ( V, E) is a |V | x |V | matrix A = ( a ij ) such that a ij = 1 (or some Object) if (i, j ) E 0 (or null) otherwise.
19
Adjacency-matrix- representation 0 4 1 3 2 0 1 2 3 4 0123401234 0 1 0 0 1 1 0 1 1 1 0 1 0 1 0 0 1 1 0 1 1 1 0 1 0
20
Adjacency-matrix- representation 0 1 0 0 1 0 0 1 1 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 2 3 4 0123401234 0 4 1 3 2
21
Adjacency-matrix- representation Advantage: Saves space on pointers for dense graphs, and on small unweighted graphs using 1 bit per edge. Check for existence of an edge (v, u) (adjacency [i] [j]) == true?) So (1)
22
Graph Algorithms Graphs and Theorems about Graphs Graph Algorithms minimum spanning tree
23
Minimum Spanning Tree
24
Example of MST
25
Problem: Laying Telephone Wire Central office
26
Wiring: Naïve Approach Central office Expensive!
27
Wiring: Better Approach Central office Minimize the total length of wire connecting the customers
28
Growing an MST: general idea GENERIC-MST(G,w) 1. A {} 2. while A does not form a spanning tree 3. do find an edge (u,v) that is safe for A 4. A A U {(u,v)} 5. return A
29
Tricky part How do you find a safe edge? This safe edge is part of the minimum spanning tree
30
Algorithms for MST Prim’s Grow a MST by adding a single edge at a time Kruskal’s Choose a smallest edge and add it to the forest If an edge is formed a cycle, it is rejected
31
Prim’s greedy algorithm Start from some (any) vertex. Build up spanning tree T, one vertex at a time. At each step, add to T the lowest-weight edge in G that does not create a cycle. Stop when all vertices in G are touched
32
Prim’s MST algorithm
33
Example A B D G C F I E H 23 4 5 7 8 4 3 1 6 9 2 7
34
Min Edge Pick a root A B D G C F I E H 23 4 5 7 8 4 3 1 6 9 2 7 = in heap
35
Min Edge = 1 A B D G C F I E H 23 4 5 7 8 4 3 1 6 9 2 7
36
Min Edge = 2 A B D G C F I E H 23 4 5 7 8 4 3 1 6 9 2 7
37
A B D G C F I E H 23 4 5 7 8 4 3 1 6 9 2 7
38
Min Edge = 3 A B D G C F I E H 23 4 5 7 8 4 3 1 6 9 2 7
39
Min Edge = 4 A B D G C F I E H 23 4 5 7 8 4 3 1 6 9 2 7
40
Min Edge = 3 A B D G C F I E H 23 4 5 7 8 4 3 1 6 9 2 7
41
Min Edge = 4 A B D G C F I E H 23 4 5 7 8 4 3 1 6 9 2 7
42
Min Edge = 6 A B D G C F I E H 23 4 5 7 8 4 3 1 6 9 2 7
43
Example II
44
Kruskal’s Algorithm Choose the smallest edge and add it to a forest Keep connecting components until all vertices connected If an edge would form a cycle, it is rejected.
45
Example A B D G C F I E H 23 4 5 7 8 4 3 1 6 9 2 7
46
Min Edge = 1 A B D G C F I E H 23 4 5 7 8 4 3 1 6 9 2 7
47
Min Edge = 2 A B D G C F I E H 23 4 5 7 8 4 3 1 6 9 2 7
48
A B D G C F I E H 23 4 5 7 8 4 3 1 6 9 2 7
49
Min Edge = 3 A B D G C F I E H 23 4 5 7 8 4 3 1 6 9 2 7 Now have 2 disjoint components: ABFG and CH
50
Min Edge = 3 A B D G C F I E H 23 4 5 7 8 4 3 1 6 9 2 7
51
Min Edge = 4 A B D G C F I E H 23 4 5 7 8 4 3 1 6 9 2 7 Two components now merged into one.
52
Min Edge = 4 A B D G C F I E H 23 4 5 7 8 4 3 1 6 9 2 7
53
Min Edge = 5 A B D G C F I E H 23 4 5 7 8 4 3 1 6 9 2 7 Rejected due to a cycle BFGB
54
Min Edge = 6 A B D G C F I E H 23 4 5 7 8 4 3 1 6 9 2 7
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.