csc212 data structure - section ab lecture 23 introduction to graphs instructor: edgardo molina...
TRANSCRIPT
![Page 1: CSC212 Data Structure - Section AB Lecture 23 Introduction to Graphs Instructor: Edgardo Molina Department of Computer Science City College of New York](https://reader035.vdocuments.us/reader035/viewer/2022062217/5697bfeb1a28abf838cb7cc9/html5/thumbnails/1.jpg)
CSC212 Data Structure - Section AB
CSC212 Data Structure - Section AB
Lecture 23
Introduction to Graphs
Instructor: Edgardo Molina
Department of Computer Science
City College of New York
![Page 2: CSC212 Data Structure - Section AB Lecture 23 Introduction to Graphs Instructor: Edgardo Molina Department of Computer Science City College of New York](https://reader035.vdocuments.us/reader035/viewer/2022062217/5697bfeb1a28abf838cb7cc9/html5/thumbnails/2.jpg)
ReviewReview
• Linked Lists
• Binary Trees
10 15
7
null
13
V
T
LQ
E A
![Page 3: CSC212 Data Structure - Section AB Lecture 23 Introduction to Graphs Instructor: Edgardo Molina Department of Computer Science City College of New York](https://reader035.vdocuments.us/reader035/viewer/2022062217/5697bfeb1a28abf838cb7cc9/html5/thumbnails/3.jpg)
Examples: Texas Road NetworkExamples: Texas Road Network
• 62 cities (nodes)
• 120 major roads (edges)
• Minimum distance between Dallas and Corpus Christi?
![Page 4: CSC212 Data Structure - Section AB Lecture 23 Introduction to Graphs Instructor: Edgardo Molina Department of Computer Science City College of New York](https://reader035.vdocuments.us/reader035/viewer/2022062217/5697bfeb1a28abf838cb7cc9/html5/thumbnails/4.jpg)
Examples: Delaunay Triangulation Network From a Point Data Set Examples: Delaunay Triangulation Network From a Point Data Set
![Page 5: CSC212 Data Structure - Section AB Lecture 23 Introduction to Graphs Instructor: Edgardo Molina Department of Computer Science City College of New York](https://reader035.vdocuments.us/reader035/viewer/2022062217/5697bfeb1a28abf838cb7cc9/html5/thumbnails/5.jpg)
Examples: Internet Topology 01/16/2006Examples: Internet Topology 01/16/2006http://www.eee.bham.ac.uk/com_test/img%5Cdsnl%5Cinternet15jan06.png
![Page 6: CSC212 Data Structure - Section AB Lecture 23 Introduction to Graphs Instructor: Edgardo Molina Department of Computer Science City College of New York](https://reader035.vdocuments.us/reader035/viewer/2022062217/5697bfeb1a28abf838cb7cc9/html5/thumbnails/6.jpg)
Examples: Backbone of science With 212 clusters comprising 7000 journals
Examples: Backbone of science With 212 clusters comprising 7000 journals
Biochemistry, Cell Biology, Biophyiscs
Mathematics
Computer Science
Geosciences, Geochemistry, Mineralogy
Kevin W Boyack, Richard Klavans, Katy Börner, Mapping the backbone of science, Scientometrics, Vol. 64, No. 3. (2005), pp. 351-374.
![Page 7: CSC212 Data Structure - Section AB Lecture 23 Introduction to Graphs Instructor: Edgardo Molina Department of Computer Science City College of New York](https://reader035.vdocuments.us/reader035/viewer/2022062217/5697bfeb1a28abf838cb7cc9/html5/thumbnails/7.jpg)
TerminologiesTerminologies
A graph G = (V, E) V: vertices E : edges, pairs of vertices from V V
Undirected Graph: (u,v) is same as (v,u)
Directed Graph (u,v) is different from (v,u) Source (u) Target (v)
A
E F G H
DCB
A
E F G H
DCB
I
![Page 8: CSC212 Data Structure - Section AB Lecture 23 Introduction to Graphs Instructor: Edgardo Molina Department of Computer Science City College of New York](https://reader035.vdocuments.us/reader035/viewer/2022062217/5697bfeb1a28abf838cb7cc9/html5/thumbnails/8.jpg)
More Terminologies – P 728More Terminologies – P 728
Loop: an edge that connects a vertex to itself. Path: a sequence of vertices, p0,p1, …pm, such that
each adjacent pair of vertices pi and pi+1 are connected by an edge.
Multiple Edges: two or more edges connecting the same two vertices in the same direction.
Simple graph: have no loops and no multiple edges – required for many applications.
Weighted graph and unweighted graph
![Page 9: CSC212 Data Structure - Section AB Lecture 23 Introduction to Graphs Instructor: Edgardo Molina Department of Computer Science City College of New York](https://reader035.vdocuments.us/reader035/viewer/2022062217/5697bfeb1a28abf838cb7cc9/html5/thumbnails/9.jpg)
Representations- Adjacency Matrix Representations- Adjacency Matrix
An adjacency matrix represents the graph as a n x n matrix A:A[i, j] = 1 if edge (i, j) E (or weight of edge)
= 0 if edge (i, j) E
01
23
0 1 2 3
0 1 0 1 0
1 1 0 0 0
2 0 0 0 1
3 1 0 1 0
Space Complexity with respect to |V| and/or |E|?
![Page 10: CSC212 Data Structure - Section AB Lecture 23 Introduction to Graphs Instructor: Edgardo Molina Department of Computer Science City College of New York](https://reader035.vdocuments.us/reader035/viewer/2022062217/5697bfeb1a28abf838cb7cc9/html5/thumbnails/10.jpg)
Representations-Linked ListRepresentations-Linked List
01
23
A directed graph with n vertices can be represented by n different linked lists. List number i provides the connections for vertex i. To be specific: for each entry j in the list number i, there is an edge from i to j.
0
1
2
3
2
0
0
0
3
2Space Complexity with respect to |V| and/or |E|?
![Page 11: CSC212 Data Structure - Section AB Lecture 23 Introduction to Graphs Instructor: Edgardo Molina Department of Computer Science City College of New York](https://reader035.vdocuments.us/reader035/viewer/2022062217/5697bfeb1a28abf838cb7cc9/html5/thumbnails/11.jpg)
Graph TraversalsGraph Traversals
Traversal: Tree traversals (ch 10): visit all of a tree’s nodes and do
some processing at each node Types of Graph traversals
Depth First Search (DFS) Breadth First Search (BFS)
Issues to consider There is no root – need a start vertex Be careful and do not enter a repetitive cycle – mark
each vertex as it is processed
![Page 12: CSC212 Data Structure - Section AB Lecture 23 Introduction to Graphs Instructor: Edgardo Molina Department of Computer Science City College of New York](https://reader035.vdocuments.us/reader035/viewer/2022062217/5697bfeb1a28abf838cb7cc9/html5/thumbnails/12.jpg)
Graph Traversal-Recursive DFSGraph Traversal-Recursive DFS DFS(start)
Initialize the boolean visited array Rec_DFS(start)
Rec_DFS(start) For each of unvisited neighbor next of start
Rec_DFS(next)
0
1
6
2
4
3 5
00
1
6
2
4
3 5
0,10
1
6
2
4
3 5
0,1,3
![Page 13: CSC212 Data Structure - Section AB Lecture 23 Introduction to Graphs Instructor: Edgardo Molina Department of Computer Science City College of New York](https://reader035.vdocuments.us/reader035/viewer/2022062217/5697bfeb1a28abf838cb7cc9/html5/thumbnails/13.jpg)
Graph Traversal-DFSGraph Traversal-DFS
0
1
6
2
4
3 5
0,1,3,50
1
6
2
4
3 5
0,1,3,5,6
0
1
6
2
4
3 5
0,1,3,5,6,4
0
1
6
4
3 5
• 2 is never visited
• DFS search/spanning tree
• Non-recursive version? (using a stack)
![Page 14: CSC212 Data Structure - Section AB Lecture 23 Introduction to Graphs Instructor: Edgardo Molina Department of Computer Science City College of New York](https://reader035.vdocuments.us/reader035/viewer/2022062217/5697bfeb1a28abf838cb7cc9/html5/thumbnails/14.jpg)
Graph Traversal-BFSGraph Traversal-BFS
BFS(start) Initialize the boolean visited array Add start to an empty queue Q Visited[start]=true; While(!Q.empty())
u=Q.dequeue () //top+pop/get_front For each unvisited neighbor v of u
Q.enqueue(v) //push Visited[v]=true
![Page 15: CSC212 Data Structure - Section AB Lecture 23 Introduction to Graphs Instructor: Edgardo Molina Department of Computer Science City College of New York](https://reader035.vdocuments.us/reader035/viewer/2022062217/5697bfeb1a28abf838cb7cc9/html5/thumbnails/15.jpg)
Graph Traversal-BFSGraph Traversal-BFS
0
1
6
2
4
3 5
0
F R
0
1
6
2
4
3 5
0
1 4
F R
0
1
6
2
4
3 5
0,1
4 3
F R
![Page 16: CSC212 Data Structure - Section AB Lecture 23 Introduction to Graphs Instructor: Edgardo Molina Department of Computer Science City College of New York](https://reader035.vdocuments.us/reader035/viewer/2022062217/5697bfeb1a28abf838cb7cc9/html5/thumbnails/16.jpg)
Graph Traversal-BFSGraph Traversal-BFS
0
1
6
2
4
3 5
0,1,4
3
F R
0
1
6
2
4
3 5
0,1,4,3
5 6
F R
0
1
6
2
4
3 5
0,1,4,3,5
6
F R
![Page 17: CSC212 Data Structure - Section AB Lecture 23 Introduction to Graphs Instructor: Edgardo Molina Department of Computer Science City College of New York](https://reader035.vdocuments.us/reader035/viewer/2022062217/5697bfeb1a28abf838cb7cc9/html5/thumbnails/17.jpg)
Graph Traversal-BFSGraph Traversal-BFS
0
1
6
2
4
3 5
0,1,4,3,5,6
F R
0
1
6
4
3 5
BFS Tree/Spanning Tree
![Page 18: CSC212 Data Structure - Section AB Lecture 23 Introduction to Graphs Instructor: Edgardo Molina Department of Computer Science City College of New York](https://reader035.vdocuments.us/reader035/viewer/2022062217/5697bfeb1a28abf838cb7cc9/html5/thumbnails/18.jpg)
Further Information Further Information
Path Algorithms (Ch 15.4) Dijkstra single source path CSc 220 Algorithm
Alternative Bellman-Ford algorithm for graphs with negative weights http://en.wikipedia.org/wiki/Bellman-Ford_algorithm
All-pair shortest path algorithms Floyd–Warshall algorithm http://en.wikipedia.org/wiki/Floyd-Warshall_algorithm
Shortest path in dynamic networks (graphs) Graph Partition http://en.wikipedia.org/wiki/Graph_partitioning
Graph Layout/Drawing