Graph

Dr Sandeep Kumar Poonia
Dr Sandeep Kumar PooniaTeaching en CHRIST (Deemed to be University), Bangalore
Algorithms
Graphs
Paths and cycles
● A path is a sequence of nodes
v1, v2, …, vN such that (vi,vi+1)E for 0<i<N
■ The length of the path is N-1.
■ Simple path: all vi are distinct, 0<i<N
● A cycle is a path such that v1=vN
■ An acyclic graph has no cycles
Cycles
PIT
BOS
JFK
DTW
LAX
SFO
More useful definitions
● The degree of a vertex is the number of
edges incident to that vertex
● In a directed graph:
● The indegree of a node v is the number of
distinct edges (w,v)E.
● The outdegree of a node v is the number of
distinct edges (v,w)E.
● A node with indegree 0 is a root.
Trees are graphs
● A dag is a directed acyclic graph.
● A tree is a connected acyclic undirected graph.
● A forest is an acyclic undirected graph (not
necessarily connected), i.e., each connected
component is a tree.
Even More Terminology
● subgraph: subset of vertices and edges forming a graph
● connected component: maximal connected subgraph. E.g., the graph below has
3 connected components.
connected not connected
•connected graph: any two vertices are connected by some path
Connectivity
● Let n = #vertices, and m = #edges
● A complete graph: one in which all pairs of vertices are
adjacent
● How many total edges in a complete graph?
■ Each of the n vertices is incident to n-1 edges, however, we would
have counted each edge twice! Therefore, intuitively, m = n(n -1)/2.
● Therefore, if a graph is not complete, m < n(n -1)/2
n 5
m  (5 
More Connectivity
n = #vertices
m = #edges
● For a tree m = n - 1
n  5
m  4
n  5
m  3
If m < n - 1, G is not
connected
G = (V, E)
a vertex may have:
0 or more predecessors
0 or more successors
some problems that can be
represented by a graph
● computer networks
● airline flights
● road map
● course prerequisite structure
● tasks for completing a job
● flow of control through a program
● many more
Graphs in Computer Science: How
do they help?
● What do they model?
■ An abstraction in Core CS.
○ Examples: VLSI Circuits, Communication Networks, Logical
flow of a computer program, Data structures.
■ An abstraction for data and relationships.
○ Examples: The Web, Social Networks, Flows and Flow
Networks, Biological Data, Taxonomies, Citations, Explicit
relations within a DB system.
● What aspects are studied?
■ Algorithms, Data Structures and Complexity Theory.
■ Characterization and Modeling of Graphs.
■ Implementations of Graph Algorithms in Specific
contexts.
What is a graph?
● A set of vertices and edges
■ Directed/Undirected
■ Weighted/Unweighted
■ Cyclic/Acyclic
vertex
edge
Representation of Graphs
● Adjacency Matrix
■ A V x V array, with matrix[i][j] storing whether
there is an edge between the ith vertex and the jth
vertex
● Adjacency Linked List
■ One linked list per vertex, each storing directly
reachable vertices
Representation of Graphs
Adjacency
Matrix
Adjacency
Linked List
Memory
Storage
O(V2) O(V+E)
Check
whether
(u,v) is an
edge
O(1) O(deg(u))
Find all
adjacent
vertices of a
vertex u
O(V) O(deg(u))
graph variations
● undirected graph (graph)
■ edges do not have a direction
○ (V1, V2) and (V2, V1) are the same edge
● directed graph (digraph)
■ edges have a direction
○ <V1, V2> and <V2, V1> are different edges
● for either type, edges may be weighted or
unweighted
a digraph
A
B
C D
E
V = [A, B, C, D, E]
E = [<A,B>, <B,C>, <C,B>, <A,C>, <A,E>, <C,D>]
graph data structures
● storing the vertices
■ each vertex has a unique identifier and, maybe,
other information
■ for efficiency, associate each vertex with a number
that can be used as an index
● storing the edges
■ adjacency matrix – represent all possible edges
■ adjacency lists – represent only the existing edges
storing the vertices
● when a vertex is added to the graph, assign it
a number
■ vertices are numbered between 0 and n-1
● graph operations start by looking up the
number associated with a vertex
● many data structures to use
■ any of the associative data structures
■ for small graphs a vector can be used
○ search will be O(n)
the vertex vector
A
B
C D
E
0
1
2 3
4
0
1
2
3
4
A
B
C
D
E
maximum # edges?
a V2 matrix is needed for
a graph with V vertices
adjacency matrix
A
B
C D
E
0
1
2 3
4
0
1
2
3
4
A
B
C
D
E
0 1 1 0 1
0 0 1 0 0
0 1 0 1 0
0 0 0 0 0
0 0 0 0 0
0
1
2
3
4
0 1 2 3 4
adjacency matrix
A B C D
A 0 1 1 1
B 1 0 0 1
C 1 0 0 1
D 1 1 1 0
many graphs are “sparse”
● degree of “sparseness” key factor in
choosing a data structure for edges
■ adjacency matrix requires space for all
possible edges
■ adjacency list requires space for existing
edges only
● affects amount of memory space needed
● affects efficiency of graph operations
adjacency lists
A
B
C D
E
0
1
2 3
4
0
1
2
3
4
1 2 4
2
1 3
0
1
2
3
4
A
B
C
D
E
Adjacency Lists
A representation of the graph consisting of a list of nodes, with
each node containing a list of its neighboring nodes.
This representation takes O(|V | + |E|) space.
Some graph operations
adjacency matrix adjacency lists
insertEdge
isEdge
#successors?
#predecessors?
O(1)
O(1)
O(V)
O(V)
O(e)
O(e)
O(e)
O(E)
Introduction
● A free tree is a connected undirected graph without a cycle.
■ Note: This definition of tree is different from the one of a rooted tree
● In a free tree |E| = |V| - 1
● Example of a free tree:
● A forest is an acyclic directed or undirected graph consisting of
two or more trees
● The trees in a directed forest are rooted trees
● The trees in an undirected forest are free trees
Graph Traversals
•Both take time: O(V+E)
Use of a stack
● It is very common to use a stack to keep track
of:
■ nodes to be visited next, or
■ nodes that we have already visited.
● Typically, use of a stack leads to a depth-first
visit order.
● Depth-first visit order is “aggressive” in the
sense that it examines complete paths.
Use of a queue
● It is very common to use a queue to keep track
of:
■ nodes to be visited next, or
■ nodes that we have already visited.
● Typically, use of a queue leads to a breadth-
first visit order.
● Breadth-first visit order is “cautious” in the
sense that it examines every path of length i
before going on to paths of length i+1.
Breadth-First Search (BFS)
● BFS tries to search all paths.
● BFS makes use of a queue to store visited (but
not dead) vertices, expanding the path from the
earliest visited vertices.
Graph
1
4
3
2
5
6
Simulation of BFS
● Queue: 1 4 3 5 2 6
BFS: Start with Node 5
7
1
5
4
3
2
6
5 1 2 0 4 3 7 6
0
BFS: Start with Node 5
7
1
5
4
3
2
6
5
0
BFS: Node one-away
7
1
5
4
3
2
6
5
0
BFS: Visit 1 and 2
7
1
5
4
3
2
6
5 1 2
0
BFS: Nodes two-away
7
1
5
4
3
2
6
5 1 2
0
BFS: Visit 0 and 4
7
1
5
4
3
2
6
5 1 2 0 4
0
BFS: Nodes three-away
7
1
5
4
3
2
6
5 1 2 0 4
0
BFS: Visit nodes 3 and 7
7
1
5
4
3
2
6
5 1 2 0 4 3 7
0
BFS: Node four-away
7
1
5
4
3
2
6
5 1 2 0 4 3 7
0
BFS: Visit 6
7
1
5
4
3
2
6
5 1 2 0 4 3 7 6
0
Breadth-First Search (BFS)
Breadth-First Search (BFS)
Breadth-First Search (BFS)
Breadth-First Search (BFS)
Breadth-First Search (BFS)
Example
● Breadth-first traversal using a queue.
Order of
Traversal Queue rearA B D E C G F H I
Queue front
A
B D E
C G
F H
I
BFS-tree:
Note: The BFS-tree for undirected graph is a free tree
Analysis of BFS
For a Graph G=(V, E) and n = |V| and m=|E|
• When Adjacency List is used
Complexity is O(m + n)
• When Adjacency Matrix is used
 Scanning each row for checking the connectivity of a Vertex
is in order O(n).
So, Complexity is O(n2)
Depth-First Search (DFS)
● Strategy: Go as far as you can (if you have not
visit there), otherwise, go back and try another
way
Graph
Example
0
7
1
5
4
3
2
6
Policy: Visit adjacent nodes in increasing index
order
Preorder DFS: Start with Node 5
0
7
1
5
4
3
2
6
5 1 0 3 2 7 6 4
Preorder DFS: Start with Node 5
0
7
1
5
4
3
2
6
5
Push 5
Preorder DFS: Start with Node 5
0
7
1
5
4
3
2
6
5
Pop/Visit/Mark 5
Preorder DFS: Start with Node 5
0
7
1
5
4
3
2
6
5
1
2
Push 2, Push 1
Preorder DFS: Start with Node 5
0
7
1
5
4
3
2
6
5 1
2
Pop/Visit/Mark 1
Preorder DFS: Start with Node 5
0
7
1
5
4
3
2
6
5 1
0
2
4
2
Push 4, Push 2,
Push 0
Preorder DFS: Start with Node 5
0
7
1
5
4
3
2
6
5 1 0
2
4
2
Pop/Visit/Mark 0
Preorder DFS: Start with Node 5
0
7
1
5
4
3
2
6
5 1 0
3
7
2
4
2
Push 7, Push 3
Preorder DFS: Start with Node 5
0
7
1
5
4
3
2
6
5 1 0 3
7
2
4
2
Pop/Visit/Mark 3
Preorder DFS: Start with Node 5
0
7
1
5
4
3
2
6
5 1 0 3
2
7
2
4
2
Push 2
Preorder DFS: Start with Node 5
0
7
1
5
4
3
2
6
5 1 0 3 2
7
2
4
2
Pop/Mark/Visit 2
Preorder DFS: Start with Node 5
0
7
1
5
4
3
2
6
5 1 0 3 2 7
2
4
2
Pop/Mark/Visit 7
Preorder DFS: Start with Node 5
0
7
1
5
4
3
2
6
5 1 0 3 2 7
6
2
4
2
Push 6
Preorder DFS: Start with Node 5
0
7
1
5
4
3
2
6
5 1 0 3 2 7 6
2
4
2
Pop/Mark/Visit 6
Preorder DFS: Start with Node 5
0
7
1
5
4
3
2
6
5 1 0 3 2 7 6
4
2
Pop (don’t visit) 2
Preorder DFS: Start with Node 5
0
7
1
5
4
3
2
6
5 1 0 3 2 7 6
4
2
Pop/Mark/Visit 4
Preorder DFS: Start with Node 5
0
7
1
5
4
3
2
6
5 1 0 3 2 7 6
4
Pop (don’t visit) 2
Preorder DFS: Start with Node 5
0
7
1
5
4
3
2
6
5 1 0 3 2 7 6
4
Done
Example
● Depth-first traversal using an explicit stack.
Order of
Traversal StackA B C F E G D H I
The Preorder Depth First Tree:
Note: The DFS-tree for undirected graph is a free tree
Recursive preorder Depth-First Traversal Tracing
At each stage, a set of unvisited adjacent
vertices of the current vertex is generated.
The Preorder Depth First Tree:
Graph
Graph
Graph
Graph
Analysis of DFS
For a Graph G=(V, E) and n = |V| and m=|E|
• When Adjacency List is used
Complexity is O(m + n)
• When Adjacency Matrix is used
 Scanning each row for checking the connectivity of a Vertex
is in order O(n).
So, Complexity is O(n2)
DFS uses space O(|V|) in the worst case to store the stack
of vertices on the current search path as well as the set of
already-visited vertices.
1 de 78

Recomendados

Data structure computer graphs por
Data structure computer graphsData structure computer graphs
Data structure computer graphsKumar
4.4K vistas22 diapositivas
Graphs in c language por
Graphs in c languageGraphs in c language
Graphs in c languageSARITHA REDDY
8.7K vistas25 diapositivas
Graphs in data structures por
Graphs in data structuresGraphs in data structures
Graphs in data structuresSavit Chandra
1K vistas32 diapositivas
Data structure por
Data structureData structure
Data structurejagjot singh chopra
267 vistas17 diapositivas
Graphs In Data Structure por
Graphs In Data StructureGraphs In Data Structure
Graphs In Data StructureAnuj Modi
45.6K vistas32 diapositivas

Más contenido relacionado

La actualidad más candente

Graph representation por
Graph representationGraph representation
Graph representationTech_MX
37.2K vistas34 diapositivas
Data Structures - Lecture 10 [Graphs] por
Data Structures - Lecture 10 [Graphs]Data Structures - Lecture 10 [Graphs]
Data Structures - Lecture 10 [Graphs]Muhammad Hammad Waseem
6.4K vistas52 diapositivas
Graph data structure por
Graph data structureGraph data structure
Graph data structureTech_MX
14.1K vistas28 diapositivas
Graph theory por
Graph theoryGraph theory
Graph theoryJeane Paguio
6.3K vistas26 diapositivas
Problem Solving with Algorithms and Data Structure - Graphs por
Problem Solving with Algorithms and Data Structure - GraphsProblem Solving with Algorithms and Data Structure - Graphs
Problem Solving with Algorithms and Data Structure - GraphsYi-Lung Tsai
2.3K vistas68 diapositivas
Graphs in data structure por
Graphs in data structureGraphs in data structure
Graphs in data structurehamza javed
1.8K vistas32 diapositivas

La actualidad más candente(20)

Graph representation por Tech_MX
Graph representationGraph representation
Graph representation
Tech_MX37.2K vistas
Graph data structure por Tech_MX
Graph data structureGraph data structure
Graph data structure
Tech_MX14.1K vistas
Problem Solving with Algorithms and Data Structure - Graphs por Yi-Lung Tsai
Problem Solving with Algorithms and Data Structure - GraphsProblem Solving with Algorithms and Data Structure - Graphs
Problem Solving with Algorithms and Data Structure - Graphs
Yi-Lung Tsai2.3K vistas
Graphs in data structure por hamza javed
Graphs in data structureGraphs in data structure
Graphs in data structure
hamza javed1.8K vistas
Adjacency list por Stefi Yu
Adjacency listAdjacency list
Adjacency list
Stefi Yu4.5K vistas
Skiena algorithm 2007 lecture10 graph data strctures por zukun
Skiena algorithm 2007 lecture10 graph data strcturesSkiena algorithm 2007 lecture10 graph data strctures
Skiena algorithm 2007 lecture10 graph data strctures
zukun2.2K vistas
Graphs in Data Structure por hafsa komal
 Graphs in Data Structure Graphs in Data Structure
Graphs in Data Structure
hafsa komal2.2K vistas
Data Structure : Graph and Graph Traversing por Vikas Chandwani
Data Structure : Graph and Graph TraversingData Structure : Graph and Graph Traversing
Data Structure : Graph and Graph Traversing
Vikas Chandwani246 vistas
Data structure - Graph por Madhu Bala
Data structure - GraphData structure - Graph
Data structure - Graph
Madhu Bala6.3K vistas
Graph Data Structure por Keno benti
Graph Data StructureGraph Data Structure
Graph Data Structure
Keno benti606 vistas
Graph terminologies & special type graphs por Nabeel Ahsen
Graph terminologies & special type graphsGraph terminologies & special type graphs
Graph terminologies & special type graphs
Nabeel Ahsen6.4K vistas
Graph Theory Introduction por MANISH T I
Graph Theory IntroductionGraph Theory Introduction
Graph Theory Introduction
MANISH T I1.9K vistas

Similar a Graph

10.graph por
10.graph10.graph
10.graphjashobhan pradhan
918 vistas30 diapositivas
Lecture 14 data structures and algorithms por
Lecture 14 data structures and algorithmsLecture 14 data structures and algorithms
Lecture 14 data structures and algorithmsAakash deep Singhal
1.8K vistas30 diapositivas
Graps 2 por
Graps 2Graps 2
Graps 2Saurabh Mishra
334 vistas42 diapositivas
Unit 9 graph por
Unit   9 graphUnit   9 graph
Unit 9 graphDabbal Singh Mahara
222 vistas43 diapositivas
Unit ix graph por
Unit   ix    graph Unit   ix    graph
Unit ix graph Tribhuvan University
988 vistas42 diapositivas
LEC 12-DSALGO-GRAPHS(final12).pdf por
LEC 12-DSALGO-GRAPHS(final12).pdfLEC 12-DSALGO-GRAPHS(final12).pdf
LEC 12-DSALGO-GRAPHS(final12).pdfMuhammadUmerIhtisham
77 vistas73 diapositivas

Similar a Graph(20)

Lecture 5b graphs and hashing por Victor Palmar
Lecture 5b graphs and hashingLecture 5b graphs and hashing
Lecture 5b graphs and hashing
Victor Palmar1.2K vistas
Unit VI - Graphs.ppt por HODElex
Unit VI - Graphs.pptUnit VI - Graphs.ppt
Unit VI - Graphs.ppt
HODElex11 vistas
Lecture 2.3.1 Graph.pptx por king779879
Lecture 2.3.1 Graph.pptxLecture 2.3.1 Graph.pptx
Lecture 2.3.1 Graph.pptx
king77987932 vistas
Link Prediction in the Real World por Balaji Ganesan
Link Prediction in the Real WorldLink Prediction in the Real World
Link Prediction in the Real World
Balaji Ganesan272 vistas
Algorithms of graph por getacew
Algorithms of graphAlgorithms of graph
Algorithms of graph
getacew1.4K vistas

Más de Dr Sandeep Kumar Poonia

Soft computing por
Soft computingSoft computing
Soft computingDr Sandeep Kumar Poonia
5.8K vistas25 diapositivas
An improved memetic search in artificial bee colony algorithm por
An improved memetic search in artificial bee colony algorithmAn improved memetic search in artificial bee colony algorithm
An improved memetic search in artificial bee colony algorithmDr Sandeep Kumar Poonia
2.3K vistas11 diapositivas
Modified position update in spider monkey optimization algorithm por
Modified position update in spider monkey optimization algorithmModified position update in spider monkey optimization algorithm
Modified position update in spider monkey optimization algorithmDr Sandeep Kumar Poonia
1.6K vistas7 diapositivas
Enhanced local search in artificial bee colony algorithm por
Enhanced local search in artificial bee colony algorithmEnhanced local search in artificial bee colony algorithm
Enhanced local search in artificial bee colony algorithmDr Sandeep Kumar Poonia
1.8K vistas8 diapositivas
RMABC por
RMABCRMABC
RMABCDr Sandeep Kumar Poonia
961 vistas11 diapositivas
Memetic search in differential evolution algorithm por
Memetic search in differential evolution algorithmMemetic search in differential evolution algorithm
Memetic search in differential evolution algorithmDr Sandeep Kumar Poonia
2K vistas8 diapositivas

Más de Dr Sandeep Kumar Poonia(20)

An improved memetic search in artificial bee colony algorithm por Dr Sandeep Kumar Poonia
An improved memetic search in artificial bee colony algorithmAn improved memetic search in artificial bee colony algorithm
An improved memetic search in artificial bee colony algorithm
Modified position update in spider monkey optimization algorithm por Dr Sandeep Kumar Poonia
Modified position update in spider monkey optimization algorithmModified position update in spider monkey optimization algorithm
Modified position update in spider monkey optimization algorithm
Improved onlooker bee phase in artificial bee colony algorithm por Dr Sandeep Kumar Poonia
Improved onlooker bee phase in artificial bee colony algorithmImproved onlooker bee phase in artificial bee colony algorithm
Improved onlooker bee phase in artificial bee colony algorithm
Comparative study of_hybrids_of_artificial_bee_colony_algorithm por Dr Sandeep Kumar Poonia
Comparative study of_hybrids_of_artificial_bee_colony_algorithmComparative study of_hybrids_of_artificial_bee_colony_algorithm
Comparative study of_hybrids_of_artificial_bee_colony_algorithm
Multiplication of two 3 d sparse matrices using 1d arrays and linked lists por Dr Sandeep Kumar Poonia
Multiplication of two 3 d sparse matrices using 1d arrays and linked listsMultiplication of two 3 d sparse matrices using 1d arrays and linked lists
Multiplication of two 3 d sparse matrices using 1d arrays and linked lists
New Local Search Strategy in Artificial Bee Colony Algorithm por Dr Sandeep Kumar Poonia
New Local Search Strategy in Artificial Bee Colony Algorithm New Local Search Strategy in Artificial Bee Colony Algorithm
New Local Search Strategy in Artificial Bee Colony Algorithm
Performance evaluation of different routing protocols in wsn using different ... por Dr Sandeep Kumar Poonia
Performance evaluation of different routing protocols in wsn using different ...Performance evaluation of different routing protocols in wsn using different ...
Performance evaluation of different routing protocols in wsn using different ...
Performance evaluation of diff routing protocols in wsn using difft network p... por Dr Sandeep Kumar Poonia
Performance evaluation of diff routing protocols in wsn using difft network p...Performance evaluation of diff routing protocols in wsn using difft network p...
Performance evaluation of diff routing protocols in wsn using difft network p...

Último

Student Voice por
Student Voice Student Voice
Student Voice Pooky Knightsmith
164 vistas33 diapositivas
The Open Access Community Framework (OACF) 2023 (1).pptx por
The Open Access Community Framework (OACF) 2023 (1).pptxThe Open Access Community Framework (OACF) 2023 (1).pptx
The Open Access Community Framework (OACF) 2023 (1).pptxJisc
85 vistas7 diapositivas
AI Tools for Business and Startups por
AI Tools for Business and StartupsAI Tools for Business and Startups
AI Tools for Business and StartupsSvetlin Nakov
101 vistas39 diapositivas
Psychology KS4 por
Psychology KS4Psychology KS4
Psychology KS4WestHatch
68 vistas4 diapositivas
Are we onboard yet University of Sussex.pptx por
Are we onboard yet University of Sussex.pptxAre we onboard yet University of Sussex.pptx
Are we onboard yet University of Sussex.pptxJisc
77 vistas7 diapositivas

Último(20)

The Open Access Community Framework (OACF) 2023 (1).pptx por Jisc
The Open Access Community Framework (OACF) 2023 (1).pptxThe Open Access Community Framework (OACF) 2023 (1).pptx
The Open Access Community Framework (OACF) 2023 (1).pptx
Jisc85 vistas
AI Tools for Business and Startups por Svetlin Nakov
AI Tools for Business and StartupsAI Tools for Business and Startups
AI Tools for Business and Startups
Svetlin Nakov101 vistas
Psychology KS4 por WestHatch
Psychology KS4Psychology KS4
Psychology KS4
WestHatch68 vistas
Are we onboard yet University of Sussex.pptx por Jisc
Are we onboard yet University of Sussex.pptxAre we onboard yet University of Sussex.pptx
Are we onboard yet University of Sussex.pptx
Jisc77 vistas
Structure and Functions of Cell.pdf por Nithya Murugan
Structure and Functions of Cell.pdfStructure and Functions of Cell.pdf
Structure and Functions of Cell.pdf
Nithya Murugan368 vistas
Scope of Biochemistry.pptx por shoba shoba
Scope of Biochemistry.pptxScope of Biochemistry.pptx
Scope of Biochemistry.pptx
shoba shoba124 vistas
Narration ppt.pptx por TARIQ KHAN
Narration  ppt.pptxNarration  ppt.pptx
Narration ppt.pptx
TARIQ KHAN119 vistas
Use of Probiotics in Aquaculture.pptx por AKSHAY MANDAL
Use of Probiotics in Aquaculture.pptxUse of Probiotics in Aquaculture.pptx
Use of Probiotics in Aquaculture.pptx
AKSHAY MANDAL89 vistas
ISO/IEC 27001 and ISO/IEC 27005: Managing AI Risks Effectively por PECB
ISO/IEC 27001 and ISO/IEC 27005: Managing AI Risks EffectivelyISO/IEC 27001 and ISO/IEC 27005: Managing AI Risks Effectively
ISO/IEC 27001 and ISO/IEC 27005: Managing AI Risks Effectively
PECB 545 vistas
Compare the flora and fauna of Kerala and Chhattisgarh ( Charttabulation) por AnshulDewangan3
 Compare the flora and fauna of Kerala and Chhattisgarh ( Charttabulation) Compare the flora and fauna of Kerala and Chhattisgarh ( Charttabulation)
Compare the flora and fauna of Kerala and Chhattisgarh ( Charttabulation)
AnshulDewangan3316 vistas
Narration lesson plan.docx por TARIQ KHAN
Narration lesson plan.docxNarration lesson plan.docx
Narration lesson plan.docx
TARIQ KHAN104 vistas

Graph

  • 2. Paths and cycles ● A path is a sequence of nodes v1, v2, …, vN such that (vi,vi+1)E for 0<i<N ■ The length of the path is N-1. ■ Simple path: all vi are distinct, 0<i<N ● A cycle is a path such that v1=vN ■ An acyclic graph has no cycles
  • 4. More useful definitions ● The degree of a vertex is the number of edges incident to that vertex ● In a directed graph: ● The indegree of a node v is the number of distinct edges (w,v)E. ● The outdegree of a node v is the number of distinct edges (v,w)E. ● A node with indegree 0 is a root.
  • 5. Trees are graphs ● A dag is a directed acyclic graph. ● A tree is a connected acyclic undirected graph. ● A forest is an acyclic undirected graph (not necessarily connected), i.e., each connected component is a tree.
  • 6. Even More Terminology ● subgraph: subset of vertices and edges forming a graph ● connected component: maximal connected subgraph. E.g., the graph below has 3 connected components. connected not connected •connected graph: any two vertices are connected by some path
  • 7. Connectivity ● Let n = #vertices, and m = #edges ● A complete graph: one in which all pairs of vertices are adjacent ● How many total edges in a complete graph? ■ Each of the n vertices is incident to n-1 edges, however, we would have counted each edge twice! Therefore, intuitively, m = n(n -1)/2. ● Therefore, if a graph is not complete, m < n(n -1)/2 n 5 m  (5 
  • 8. More Connectivity n = #vertices m = #edges ● For a tree m = n - 1 n  5 m  4 n  5 m  3 If m < n - 1, G is not connected
  • 9. G = (V, E) a vertex may have: 0 or more predecessors 0 or more successors
  • 10. some problems that can be represented by a graph ● computer networks ● airline flights ● road map ● course prerequisite structure ● tasks for completing a job ● flow of control through a program ● many more
  • 11. Graphs in Computer Science: How do they help? ● What do they model? ■ An abstraction in Core CS. ○ Examples: VLSI Circuits, Communication Networks, Logical flow of a computer program, Data structures. ■ An abstraction for data and relationships. ○ Examples: The Web, Social Networks, Flows and Flow Networks, Biological Data, Taxonomies, Citations, Explicit relations within a DB system. ● What aspects are studied? ■ Algorithms, Data Structures and Complexity Theory. ■ Characterization and Modeling of Graphs. ■ Implementations of Graph Algorithms in Specific contexts.
  • 12. What is a graph? ● A set of vertices and edges ■ Directed/Undirected ■ Weighted/Unweighted ■ Cyclic/Acyclic vertex edge
  • 13. Representation of Graphs ● Adjacency Matrix ■ A V x V array, with matrix[i][j] storing whether there is an edge between the ith vertex and the jth vertex ● Adjacency Linked List ■ One linked list per vertex, each storing directly reachable vertices
  • 14. Representation of Graphs Adjacency Matrix Adjacency Linked List Memory Storage O(V2) O(V+E) Check whether (u,v) is an edge O(1) O(deg(u)) Find all adjacent vertices of a vertex u O(V) O(deg(u))
  • 15. graph variations ● undirected graph (graph) ■ edges do not have a direction ○ (V1, V2) and (V2, V1) are the same edge ● directed graph (digraph) ■ edges have a direction ○ <V1, V2> and <V2, V1> are different edges ● for either type, edges may be weighted or unweighted
  • 16. a digraph A B C D E V = [A, B, C, D, E] E = [<A,B>, <B,C>, <C,B>, <A,C>, <A,E>, <C,D>]
  • 17. graph data structures ● storing the vertices ■ each vertex has a unique identifier and, maybe, other information ■ for efficiency, associate each vertex with a number that can be used as an index ● storing the edges ■ adjacency matrix – represent all possible edges ■ adjacency lists – represent only the existing edges
  • 18. storing the vertices ● when a vertex is added to the graph, assign it a number ■ vertices are numbered between 0 and n-1 ● graph operations start by looking up the number associated with a vertex ● many data structures to use ■ any of the associative data structures ■ for small graphs a vector can be used ○ search will be O(n)
  • 19. the vertex vector A B C D E 0 1 2 3 4 0 1 2 3 4 A B C D E
  • 20. maximum # edges? a V2 matrix is needed for a graph with V vertices
  • 21. adjacency matrix A B C D E 0 1 2 3 4 0 1 2 3 4 A B C D E 0 1 1 0 1 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 2 3 4 0 1 2 3 4
  • 22. adjacency matrix A B C D A 0 1 1 1 B 1 0 0 1 C 1 0 0 1 D 1 1 1 0
  • 23. many graphs are “sparse” ● degree of “sparseness” key factor in choosing a data structure for edges ■ adjacency matrix requires space for all possible edges ■ adjacency list requires space for existing edges only ● affects amount of memory space needed ● affects efficiency of graph operations
  • 24. adjacency lists A B C D E 0 1 2 3 4 0 1 2 3 4 1 2 4 2 1 3 0 1 2 3 4 A B C D E
  • 25. Adjacency Lists A representation of the graph consisting of a list of nodes, with each node containing a list of its neighboring nodes. This representation takes O(|V | + |E|) space.
  • 26. Some graph operations adjacency matrix adjacency lists insertEdge isEdge #successors? #predecessors? O(1) O(1) O(V) O(V) O(e) O(e) O(e) O(E)
  • 27. Introduction ● A free tree is a connected undirected graph without a cycle. ■ Note: This definition of tree is different from the one of a rooted tree ● In a free tree |E| = |V| - 1 ● Example of a free tree: ● A forest is an acyclic directed or undirected graph consisting of two or more trees ● The trees in a directed forest are rooted trees ● The trees in an undirected forest are free trees
  • 29. Use of a stack ● It is very common to use a stack to keep track of: ■ nodes to be visited next, or ■ nodes that we have already visited. ● Typically, use of a stack leads to a depth-first visit order. ● Depth-first visit order is “aggressive” in the sense that it examines complete paths.
  • 30. Use of a queue ● It is very common to use a queue to keep track of: ■ nodes to be visited next, or ■ nodes that we have already visited. ● Typically, use of a queue leads to a breadth- first visit order. ● Breadth-first visit order is “cautious” in the sense that it examines every path of length i before going on to paths of length i+1.
  • 31. Breadth-First Search (BFS) ● BFS tries to search all paths. ● BFS makes use of a queue to store visited (but not dead) vertices, expanding the path from the earliest visited vertices.
  • 33. 1 4 3 2 5 6 Simulation of BFS ● Queue: 1 4 3 5 2 6
  • 34. BFS: Start with Node 5 7 1 5 4 3 2 6 5 1 2 0 4 3 7 6 0
  • 35. BFS: Start with Node 5 7 1 5 4 3 2 6 5 0
  • 37. BFS: Visit 1 and 2 7 1 5 4 3 2 6 5 1 2 0
  • 39. BFS: Visit 0 and 4 7 1 5 4 3 2 6 5 1 2 0 4 0
  • 41. BFS: Visit nodes 3 and 7 7 1 5 4 3 2 6 5 1 2 0 4 3 7 0
  • 43. BFS: Visit 6 7 1 5 4 3 2 6 5 1 2 0 4 3 7 6 0
  • 49. Example ● Breadth-first traversal using a queue. Order of Traversal Queue rearA B D E C G F H I Queue front A B D E C G F H I BFS-tree: Note: The BFS-tree for undirected graph is a free tree
  • 50. Analysis of BFS For a Graph G=(V, E) and n = |V| and m=|E| • When Adjacency List is used Complexity is O(m + n) • When Adjacency Matrix is used  Scanning each row for checking the connectivity of a Vertex is in order O(n). So, Complexity is O(n2)
  • 51. Depth-First Search (DFS) ● Strategy: Go as far as you can (if you have not visit there), otherwise, go back and try another way
  • 53. Example 0 7 1 5 4 3 2 6 Policy: Visit adjacent nodes in increasing index order
  • 54. Preorder DFS: Start with Node 5 0 7 1 5 4 3 2 6 5 1 0 3 2 7 6 4
  • 55. Preorder DFS: Start with Node 5 0 7 1 5 4 3 2 6 5 Push 5
  • 56. Preorder DFS: Start with Node 5 0 7 1 5 4 3 2 6 5 Pop/Visit/Mark 5
  • 57. Preorder DFS: Start with Node 5 0 7 1 5 4 3 2 6 5 1 2 Push 2, Push 1
  • 58. Preorder DFS: Start with Node 5 0 7 1 5 4 3 2 6 5 1 2 Pop/Visit/Mark 1
  • 59. Preorder DFS: Start with Node 5 0 7 1 5 4 3 2 6 5 1 0 2 4 2 Push 4, Push 2, Push 0
  • 60. Preorder DFS: Start with Node 5 0 7 1 5 4 3 2 6 5 1 0 2 4 2 Pop/Visit/Mark 0
  • 61. Preorder DFS: Start with Node 5 0 7 1 5 4 3 2 6 5 1 0 3 7 2 4 2 Push 7, Push 3
  • 62. Preorder DFS: Start with Node 5 0 7 1 5 4 3 2 6 5 1 0 3 7 2 4 2 Pop/Visit/Mark 3
  • 63. Preorder DFS: Start with Node 5 0 7 1 5 4 3 2 6 5 1 0 3 2 7 2 4 2 Push 2
  • 64. Preorder DFS: Start with Node 5 0 7 1 5 4 3 2 6 5 1 0 3 2 7 2 4 2 Pop/Mark/Visit 2
  • 65. Preorder DFS: Start with Node 5 0 7 1 5 4 3 2 6 5 1 0 3 2 7 2 4 2 Pop/Mark/Visit 7
  • 66. Preorder DFS: Start with Node 5 0 7 1 5 4 3 2 6 5 1 0 3 2 7 6 2 4 2 Push 6
  • 67. Preorder DFS: Start with Node 5 0 7 1 5 4 3 2 6 5 1 0 3 2 7 6 2 4 2 Pop/Mark/Visit 6
  • 68. Preorder DFS: Start with Node 5 0 7 1 5 4 3 2 6 5 1 0 3 2 7 6 4 2 Pop (don’t visit) 2
  • 69. Preorder DFS: Start with Node 5 0 7 1 5 4 3 2 6 5 1 0 3 2 7 6 4 2 Pop/Mark/Visit 4
  • 70. Preorder DFS: Start with Node 5 0 7 1 5 4 3 2 6 5 1 0 3 2 7 6 4 Pop (don’t visit) 2
  • 71. Preorder DFS: Start with Node 5 0 7 1 5 4 3 2 6 5 1 0 3 2 7 6 4 Done
  • 72. Example ● Depth-first traversal using an explicit stack. Order of Traversal StackA B C F E G D H I The Preorder Depth First Tree: Note: The DFS-tree for undirected graph is a free tree
  • 73. Recursive preorder Depth-First Traversal Tracing At each stage, a set of unvisited adjacent vertices of the current vertex is generated. The Preorder Depth First Tree:
  • 78. Analysis of DFS For a Graph G=(V, E) and n = |V| and m=|E| • When Adjacency List is used Complexity is O(m + n) • When Adjacency Matrix is used  Scanning each row for checking the connectivity of a Vertex is in order O(n). So, Complexity is O(n2) DFS uses space O(|V|) in the worst case to store the stack of vertices on the current search path as well as the set of already-visited vertices.