SlideShare a Scribd company logo
1 of 86
NON LINEAR DATA
STRUCTURES -
GRAPHS
UNIT - V
GRAPHS
Graphs are data structures used to represent
"connections" between pairs of elements.
These elements are called nodes. They represent real-
life objects, persons, or entities.
The connections between nodes are called edges.
EXAMPLE APPLICATION
example, we could use graphs to model a transportation network
where nodes would represent facilities that send or receive products
and edges would represent roads or paths that connect them
WEIGHTED GRAPHS
A weight graph is a graph whose edges have a "weight" or "cost". The
weight of an edge can represent distance, time, or anything that
models the "connection" between the pair of nodes it connects.
INTRODUCTION TO GRAPH
A Graph is a non linear data structure consisting of nodes
and edges.
The nodes are sometimes also referred to as vertices and the
edges are lines or arcs that connect any two nodes in the
graph.
Generally, a graph G is represented as G=(V,E) where V is set
of vertices and E is set of edges.
In this Graph, the set of vertices
V = {0,1,2,3,4} and the set of
edges
E ={01, 12, 23, 34, 04, 14, 13}.
APPLICATIONS
Graphs are used to solve many real life problems.
Graphs are used to represent networks.
The networks may include paths in a city or telephone
network or circuit network.
Graphs are also used in social networks like linkedIn ,
Facebook.
For example, in Facebook, each person is represented with a
vertex(or node).
Each node is a structure and contains information like person
id, name, gender, locale etc.
TYPES OF GRAPH
Directed Graph (or) Digraph
•Directed graph is a graph which
consists of directed edges, where
each edge in E is unidirectional.
•It is also referred as Digraph. If (v,w)
is a directed edge then (v,w) # (w,v)
Undirected Graph
•An undirected graph is a graph, which
consists of undirected edges. If (v,w)
is an undirected edge, then
(v,w)=(w,v)
GRAPH TERMINOLOGIES
•A path is a sequence of vertices such
that there is an edge from each
vertex to its successor
•A path is simple if each vertex is
distinct/A path with no repeated
vertices is called a simple path
•A circuit is a path in which the
terminal vertex coincides with the
initial vertex. (Vertices may repeat
but edges are not allowed to repeat)
GRAPH TERMINOLOGIES
•Cycle: A circuit that doesn't repeat
vertices is called a Cycle. (Neither
vertices except possibly the starting
and ending vertices) are allowed to
repeat, Nor edges are allowed to
repeat
•Adjacent Vertices Two vertices are
said to be adjacent if there is an
edge (arc) connecting them.
0-1-2-3-0 - CYCLE
0-1-2-4-2-3- CIRCUIT
GRAPH TERMINOLOGIES
•Adjacent edges are edges that share
a common vertex.
•Degree of the Node A degree of a
node is the number of edges that are
connected with that node. A node
with degree 0 is called as isolated
node.
 In degree: Number of edges entering a
node
 Out degree: Number of edges leaving a
node
 Degree = Indegree + Outdegree
•Connected and Disconnected
A graph G is said to be connected if there exists a path
between every pair of vertices.
A connected graph is the one in which some path exists
between every two vertices (u, v) in V.
There are no isolated nodes in connected graph.
UNCONNECTED/DisConnected GRAPH: A graph is said as
unconnected graph if there exist any 2 unconnected
components.
Example: • H1 and H2 are connected • H3 is disconnected
Weighted Graph
•A graph is said to be weighted graph if every edge in the
graph is assigned a weight or value. It can be directed or
undirected graph.
CYCLIC AND ACYCLIC GRPH
Cyclic Graph
A graph with at least one cycle is called
a cyclic graph.
Example
In the above example graph, we have
two cycles a-b-c-d-a and c-f-g-e-c.
Hence it is called a cyclic graph
Acyclic Graph
A graph with no cycles is called an
acyclic graph.
GRAPH REPRESENTATION
Graph data structure is represented using following
representations...
•Adjacency Matrix
•Incidence Matrix
•Adjacency List
ADJACENCY MATRIX
The adjacency matrix A for a graph G = (V,E) with n vertices,
is an n* n matrix of bits ,
•such that A ij = 1 , if there is an edge from vi to vj and
•Aij = 0, if there is no such edge
ADJACENCY LIST
•A graph containing m vertices and n edges can be
represented using a linked list, referred to as adjacency list.
•The number of vertices in a graph forms a singly linked list.
•Each vertex have a separate linked list, with nodes equal to
the number of edges connected from the corresponding
vertex..
•Each nodes has at least 2 fields: VERTEX and LINK.
•The VERTEX fields contain the indices of the vertices adjacent
to vertex i.
GRAPH TRAVERSALS
A graph traversal is a systematic way of visiting the nodes in a
specific order.
There are 2 types of graph traversals namely,
Breadth First Search(BFS)
Depth First Search(DFS)
DEPTH FIRST SEARCH
•Visit the first node initially, and then find the unvisited
node which is adjacent to the first node, is visited and a
DFS is initiated from the adjacent node (considering it as
the first node)
•If all the adjacent nodes have been visited, backtrack to
the last node visited, and find another adjacent node and
again initiate the DFS from adjacent node
•This traversal continues until all nodes have been visited
once
STEPS TO IMPLEMENT DFS
1. Select the start vertex
2. Visit the vertex (place 1)
3. Find the adjacent vertices of visited node
Rule 1− Visit any one of the adjacent unvisited vertex. Mark it
as visited. Display it. Push it in a stack.
Rule 2− If no adjacent vertex is found, pop up a vertex from
the stack. (It will pop up all the vertices from the stack, which do
not have adjacent vertices.)
Rule 3− Repeat Rule 1 and Rule 2 until the stack is empty.
Vertex 2 has an unvisited adjacent vertex in 4, so we add that to the
top of the stack and visit it.
APPLICATIONS OF DFS
•To check whether the undirected graph is connected or not
•To check if the connected undirected graph is bi-connected
or not
•To check whether the directed graph is a-cyclic or not
BFS (BREADTH FIRST SEARCH)
•Breadth First Search ( of a graph G starts from an unvisited vertex
u.
•Then all unvisited vertices vi adjacent to u are visited and then all
unvisited vertices wj adjacent to vi are visited and so on
•The traversal terminates when there are no more nodes to visit
•BFS uses a queue data structure to keep track of the order of the
nodes whose adjacent nodes are to be visited
STEPS TO IMPLEMENT BFS
1. Select the start vertex and mark it as visited (i.e) place the
value 1
2. Enqueue the START vertex.
3. Dequeue the vertex.
4. Find all adjacent unvisited vertices of the dequeued vertex.
5. Mark all unvisited adjacent vertices as visited.
6. Enqueue all adjacent vertices.
7. Repeat from step 3 to step 6 until the queue becomes
empty
A-D-B-E-C-F-G
APPLICATIONS OF BFS
1. To find the shortest path from a vertex s to a vertex v in an
unweighted graph
2. To find the length of such a path
3. To find out if a graph contains cycles
4. To construct a BFS tree/forest from a graph
TOPOLOGICAL SORTING
It is a linear ordering of vertices in a directed a-cyclic graph,
such that if there is a path from Vi to Vj, then Vj appears after
Vi in the linear ordering.
Topological sort is not possible if the graph has a cycle.
Procedure
1. Find the indegree for every vertex
2. Place the vertices whose indegree is zero on the empty
queue
3. Dequeue one vertex at a time from the queue and
decrement the indegree of all its adjacent vertices
4. Enqueue a vertex to the queue if its indegree falls to zero
5. Repeat from step 3 unitl the queue becomes empty
EXAMPLE
Step 1
•Find the Indegree of vertices 1,2,3,4,5,6.
•Indegree of a vertex is the number of edges entering into the
vertex. Indegree of vertex 1 is 0, vertex 2 is 0, vertex 3 is 1,
vertex 4 is 3, vertex 5 is 1, vertex 6 is 3.
Step 2
•enqueue() the vertices with Indegree 0. Therefore enqueue()
vertices 1 and 2.
APPLICATIONS:
•Topological Sorting is mainly used for scheduling jobs from the
given dependencies among jobs
•The jobs are represented by vertices, and there is an edge from x
to y if job x must be completed before job y can be started
•For example, in constructing a building, the basement must be
completed before the first floor, which must be completed before
the second floor and so on
•A topological sort gives an order in which we should perform the
jobs
•In computer science, applications of this type arise in instruction
scheduling, ordering of formula cell evaluation when recomputing
formula values in spreadsheets,
•Determining the order of compilation tasks to perform in make
files
MINIMUM SPANNING TREE
A spanning tree is a tree that connects all the vertices of a
graph with the minimum possible number of edges.
Thus, a spanning tree is always connected.
Also, a spanning tree never contains a cycle.
A Minimum Spanning Tree (MST) is a subset of edges of a
connected weighted undirected graph that connects all the
vertices together with the minimum possible total edge
weight.
Spanning Tree with minimum cost is called Minimum
Spanning Tree
To derive an MST, Prim’s algorithm or Kruskal’s algorithm
can be used.
The initial graph
possible spanning trees
minimum spanning tree
PRIM’S ALGORITHM
•Prim’s algorithm is a greedy algorithm (Optimal solution)
•Used to form a minimum spanning tree for a connected
weighted undirected graph.
•Builds a tree that includes every vertex and a subset of the
edges in such a way that the total weight of all the edges in
the tree is minimized.
ALGORITHM
//Input: A weighted connected graph G = (V, E)
//Output: T , the set of edges composing a minimum
spanning tree of G
Step 1: Select a starting vertex
Step 2: Repeat Steps 3 and 4 until there is no unvisited
vertices
Step 3: Select an edge e connecting the tree vertex and visit
vertex that has minimum weight
Step 4: Add the selected edge and the vertex to the minimum
spanning tree T
Step 5: EXIT
KRUSKAL ALGORITHM
Step-01:
Sort all the edges from low weight to high weight.
Step-02:
Take the edge with the lowest weight and use it to connect
the vertices of graph.
If adding an edge creates a cycle, then reject that edge and
go for the next least weight edge.
Step-03:
Keep adding edges until all the vertices are connected and a
Minimum Spanning Tree (MST) is obtained.
DIFFERENCE BETWEEN
TREE AND GRAPH
SHORTEST PATH ALGORITHM
The shortest path algorithm determines the minimum
cost of the path from source to every other vertex.
Types
The single source shortest path problem
Find the minimum cost from single source vertex to
all other vertices
Dijkstra’s Algorithm
The all pairs shortest path problem
Find the shortest distance from each vertex to all
other vertices.
Floyd’s algorithm
DIJKSTRA'S ALGORITHM
Find the shortest path from a node (called the "source node") to all other
nodes in the graph, producing a shortest-path tree.
This algorithm is used in GPS devices to find the shortest path between the
current location and the destination
This algorithm was created and published by Dr. Edsger W. Dijkstra, Dutch
computer scientist and software engineer In 1959.
ALGORITHM
starts at the node that you choose (the source node) and find the shortest path
between that node and all the other nodes in the graph.
keeps track of the currently known shortest distance from each node to the
source node and it updates these values if it finds a shorter path.
Once the algorithm has found the shortest path between the source node and
another node, that node is marked as "visited" and added to the path.
The process continues until all the nodes in the graph have been added to the
path.
This way, we have a path that connects the source node to all other nodes
following the shortest path possible to reach each node.
Dijkstra's Algorithm can only work with graphs that have positive weights
First, we have to consider any vertex as a source vertex.
d(x, y) = max((d(x,u) + c(u, y)) , d(x,y))
u – Intermédiate vertex
BI-CONNECTIVITY
An undirected graph is called Biconnected if there is a two vertex –
disjoint ways between any two vertices.
In a Biconnected Graph, there is a basic cycle through any two
vertices.
It must be connected.
There isn’t an articulation point in it. ( Even if remove any node others
are in connection)
Definitions- Separation Edges and Vertices
 Let G be a connected graph
 A separation edge of G is an edge whose removal disconnects G
 A separation vertex of G is a vertex whose removal disconnects G
Applications: Separation edges and vertices represent single points of
failure in a network and are critical to the operation of the network
Example
 DFW, LGA and LAX are separation vertices
 (DFW,LAX) is a separation edge
Equivalent definitions of a biconnected graph G
 Graph G has no separation edges and no separation vertices
 For any two vertices u and v of G, there are two disjoint simple paths between u and
v (i.e., two simple paths between u and v that share no other vertices or edges)
 For any two vertices u and v of G, there is a simple cycle containing u and v
Example
Biconnected
Graph
BICONNECTED COMPONENTS
Biconnected component of a graph G
 A maximal biconnected subgraph of G, or
 A subgraph consisting of a separation edge of G and its end vertices
Interaction of biconnected components
 An edge belongs to exactly one biconnected component
 A nonseparation vertex belongs to exactly one biconnected component
 A separation vertex belongs to two or more biconnected components
Example of a graph biconnected components
EULER CIRCUIT
Euler path is a path, by which we can visit every edge exactly once.
(Eulerian Path)
We can use the same vertices for multiple times.
The starting and ending points need not be the same.
Euler Circuit is a special type of Euler path. (Eulerian Circuit)
When the starting vertex of the Euler path is also connected with the
ending vertex of that path, then it is called the Euler Circuit.
To detect the path and circuit, we have to follow these conditions:
 The graph must be connected.
 When exactly two vertices have odd degree, it is a Euler Path.
 Now when no vertices of an undirected graph have odd degree, then it
is a Euler Circuit.
A graph is said to be eulerian if it has a eulerian cycle.
APPLICATIONS OF GRAPHS
Social network graphs
 The Facebook graph showing who follows whom or who sends friend
invitations to whom
Transportation networks
 vertices are intersections in road networks, and edges are the road
segments that connect them
Utility graphs:
 The power grid, the Internet, and the water network are graphs with vertices
representing connection points and edges representing the cables or pipes
that connect them
Document link graphs
 web’s link graph - each web page is a vertex, and a directed edge connects
each hyperlink
Finite element meshes
 spread of earthquakes through the ground, structural vibrations of a
building
Robot planning
 The edges represent possible transitions between states,
whereas the vertices represent various states for the robot
Network packet traffic graph
 Vertices are IP address edges are the packets that flow
between them.
Scene graph
 Computer games scene graphs represent the logical
relationship between objects in a scene
Neural networks
 Vertices represent neurons and edges the synapses between
them.
Protein – Protein interactions graphs
 Vertices represent proteins and edges represent interactions
between them (biological functions in the cell)
Floyd’s Algorithm 77
ALL PAIRS SHORTEST
PATH
The problem: find the shortest path between every
pair of vertices of a graph
The graph: may contain negative edges but no
negative cycles
A representation: a weight matrix where
W(i,j)=0 if i=j.
W(i,j)= if there is no edge between i and j.
W(i,j)=“weight of edge”
Floyd Warshall Algorithm-
Floyd Warshall Algorithm is a famous algorithm.
It is used to solve All Pairs Shortest Path Problem.
It computes the shortest path between every pair of vertices of the
given graph.
Floyd Warshall Algorithm is an example of dynamic programming
approach
Advantages-
Floyd Warshall Algorithm has the following main advantages-
It is extremely simple.
It is easy to implement.
Unit V - ppt.pptx
Unit V - ppt.pptx
Unit V - ppt.pptx
Unit V - ppt.pptx
Unit V - ppt.pptx
Unit V - ppt.pptx
Unit V - ppt.pptx

More Related Content

Similar to Unit V - ppt.pptx

Similar to Unit V - ppt.pptx (20)

Graph Algorithms
Graph AlgorithmsGraph Algorithms
Graph Algorithms
 
Unit 9 graph
Unit   9 graphUnit   9 graph
Unit 9 graph
 
Unit ix graph
Unit   ix    graph Unit   ix    graph
Unit ix graph
 
Graphs
GraphsGraphs
Graphs
 
LEC 12-DSALGO-GRAPHS(final12).pdf
LEC 12-DSALGO-GRAPHS(final12).pdfLEC 12-DSALGO-GRAPHS(final12).pdf
LEC 12-DSALGO-GRAPHS(final12).pdf
 
Graphs data structures
Graphs data structuresGraphs data structures
Graphs data structures
 
Depth first traversal(data structure algorithms)
Depth first traversal(data structure algorithms)Depth first traversal(data structure algorithms)
Depth first traversal(data structure algorithms)
 
Graph Data Structure
Graph Data StructureGraph Data Structure
Graph Data Structure
 
Unit II_Graph.pptxkgjrekjgiojtoiejhgnltegjte
Unit II_Graph.pptxkgjrekjgiojtoiejhgnltegjteUnit II_Graph.pptxkgjrekjgiojtoiejhgnltegjte
Unit II_Graph.pptxkgjrekjgiojtoiejhgnltegjte
 
Vanmathy no sql
Vanmathy no sql Vanmathy no sql
Vanmathy no sql
 
VANU no sql ppt.pptx
VANU no sql ppt.pptxVANU no sql ppt.pptx
VANU no sql ppt.pptx
 
GRAPH - DISCRETE STRUCTURE AND ALGORITHM
GRAPH - DISCRETE STRUCTURE AND ALGORITHMGRAPH - DISCRETE STRUCTURE AND ALGORITHM
GRAPH - DISCRETE STRUCTURE AND ALGORITHM
 
Graphs and eularian circuit & path with c++ program
Graphs and eularian circuit & path with c++ programGraphs and eularian circuit & path with c++ program
Graphs and eularian circuit & path with c++ program
 
Graph Theory
Graph TheoryGraph Theory
Graph Theory
 
Unit VI - Graphs.ppt
Unit VI - Graphs.pptUnit VI - Graphs.ppt
Unit VI - Graphs.ppt
 
Graph_data_structure_information_engineering.pptx
Graph_data_structure_information_engineering.pptxGraph_data_structure_information_engineering.pptx
Graph_data_structure_information_engineering.pptx
 
Graphs in datastructures
Graphs in datastructuresGraphs in datastructures
Graphs in datastructures
 
Graphs.pptx
Graphs.pptxGraphs.pptx
Graphs.pptx
 
Graphs
GraphsGraphs
Graphs
 
Lecture 5b graphs and hashing
Lecture 5b graphs and hashingLecture 5b graphs and hashing
Lecture 5b graphs and hashing
 

More from Kongunadu College of Engineering and Technology (19)

C++ UNIT4.pptx
C++ UNIT4.pptxC++ UNIT4.pptx
C++ UNIT4.pptx
 
c++ Unit I.pptx
c++ Unit I.pptxc++ Unit I.pptx
c++ Unit I.pptx
 
c++ Unit III - PPT.pptx
c++ Unit III - PPT.pptxc++ Unit III - PPT.pptx
c++ Unit III - PPT.pptx
 
c++ UNIT II.pptx
c++ UNIT II.pptxc++ UNIT II.pptx
c++ UNIT II.pptx
 
UNIT 1.pptx
UNIT 1.pptxUNIT 1.pptx
UNIT 1.pptx
 
UNIT 4.pptx
UNIT 4.pptxUNIT 4.pptx
UNIT 4.pptx
 
UNIT 5.pptx
UNIT 5.pptxUNIT 5.pptx
UNIT 5.pptx
 
UNIT 2.pptx
UNIT 2.pptxUNIT 2.pptx
UNIT 2.pptx
 
UNIT 3.pptx
UNIT 3.pptxUNIT 3.pptx
UNIT 3.pptx
 
Unit - 1.ppt
Unit - 1.pptUnit - 1.ppt
Unit - 1.ppt
 
UNIT 5.pptx
UNIT 5.pptxUNIT 5.pptx
UNIT 5.pptx
 
Unit - 2.ppt
Unit - 2.pptUnit - 2.ppt
Unit - 2.ppt
 
Unit - 3.pptx
Unit - 3.pptxUnit - 3.pptx
Unit - 3.pptx
 
Unit - 4.ppt
Unit - 4.pptUnit - 4.ppt
Unit - 4.ppt
 
U1.ppt
U1.pptU1.ppt
U1.ppt
 
U2.ppt
U2.pptU2.ppt
U2.ppt
 
U4.ppt
U4.pptU4.ppt
U4.ppt
 
U5 SPC.pptx
U5 SPC.pptxU5 SPC.pptx
U5 SPC.pptx
 
U3.pptx
U3.pptxU3.pptx
U3.pptx
 

Recently uploaded

Internship report on mechanical engineering
Internship report on mechanical engineeringInternship report on mechanical engineering
Internship report on mechanical engineeringmalavadedarshan25
 
Artificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxArtificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxbritheesh05
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxJoão Esperancinha
 
pipeline in computer architecture design
pipeline in computer architecture  designpipeline in computer architecture  design
pipeline in computer architecture designssuser87fa0c1
 
Past, Present and Future of Generative AI
Past, Present and Future of Generative AIPast, Present and Future of Generative AI
Past, Present and Future of Generative AIabhishek36461
 
Churning of Butter, Factors affecting .
Churning of Butter, Factors affecting  .Churning of Butter, Factors affecting  .
Churning of Butter, Factors affecting .Satyam Kumar
 
Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.eptoze12
 
Biology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxBiology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxDeepakSakkari2
 
Electronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdfElectronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdfme23b1001
 
An experimental study in using natural admixture as an alternative for chemic...
An experimental study in using natural admixture as an alternative for chemic...An experimental study in using natural admixture as an alternative for chemic...
An experimental study in using natural admixture as an alternative for chemic...Chandu841456
 
Introduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptxIntroduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptxk795866
 
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfCCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfAsst.prof M.Gokilavani
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024hassan khalil
 
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionSachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionDr.Costas Sachpazis
 
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfCCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfAsst.prof M.Gokilavani
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile servicerehmti665
 
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdfCCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdfAsst.prof M.Gokilavani
 
Arduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptArduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptSAURABHKUMAR892774
 

Recently uploaded (20)

Internship report on mechanical engineering
Internship report on mechanical engineeringInternship report on mechanical engineering
Internship report on mechanical engineering
 
Artificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxArtificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptx
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
 
pipeline in computer architecture design
pipeline in computer architecture  designpipeline in computer architecture  design
pipeline in computer architecture design
 
Past, Present and Future of Generative AI
Past, Present and Future of Generative AIPast, Present and Future of Generative AI
Past, Present and Future of Generative AI
 
Churning of Butter, Factors affecting .
Churning of Butter, Factors affecting  .Churning of Butter, Factors affecting  .
Churning of Butter, Factors affecting .
 
Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.
 
Biology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxBiology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptx
 
Electronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdfElectronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdf
 
An experimental study in using natural admixture as an alternative for chemic...
An experimental study in using natural admixture as an alternative for chemic...An experimental study in using natural admixture as an alternative for chemic...
An experimental study in using natural admixture as an alternative for chemic...
 
Introduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptxIntroduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptx
 
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfCCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024
 
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionSachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
 
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
 
Design and analysis of solar grass cutter.pdf
Design and analysis of solar grass cutter.pdfDesign and analysis of solar grass cutter.pdf
Design and analysis of solar grass cutter.pdf
 
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfCCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile service
 
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdfCCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
 
Arduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptArduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.ppt
 

Unit V - ppt.pptx

  • 1. NON LINEAR DATA STRUCTURES - GRAPHS UNIT - V
  • 2. GRAPHS Graphs are data structures used to represent "connections" between pairs of elements. These elements are called nodes. They represent real- life objects, persons, or entities. The connections between nodes are called edges.
  • 3. EXAMPLE APPLICATION example, we could use graphs to model a transportation network where nodes would represent facilities that send or receive products and edges would represent roads or paths that connect them
  • 4. WEIGHTED GRAPHS A weight graph is a graph whose edges have a "weight" or "cost". The weight of an edge can represent distance, time, or anything that models the "connection" between the pair of nodes it connects.
  • 5. INTRODUCTION TO GRAPH A Graph is a non linear data structure consisting of nodes and edges. The nodes are sometimes also referred to as vertices and the edges are lines or arcs that connect any two nodes in the graph. Generally, a graph G is represented as G=(V,E) where V is set of vertices and E is set of edges. In this Graph, the set of vertices V = {0,1,2,3,4} and the set of edges E ={01, 12, 23, 34, 04, 14, 13}.
  • 6.
  • 7.
  • 8. APPLICATIONS Graphs are used to solve many real life problems. Graphs are used to represent networks. The networks may include paths in a city or telephone network or circuit network. Graphs are also used in social networks like linkedIn , Facebook. For example, in Facebook, each person is represented with a vertex(or node). Each node is a structure and contains information like person id, name, gender, locale etc.
  • 9. TYPES OF GRAPH Directed Graph (or) Digraph •Directed graph is a graph which consists of directed edges, where each edge in E is unidirectional. •It is also referred as Digraph. If (v,w) is a directed edge then (v,w) # (w,v) Undirected Graph •An undirected graph is a graph, which consists of undirected edges. If (v,w) is an undirected edge, then (v,w)=(w,v)
  • 10. GRAPH TERMINOLOGIES •A path is a sequence of vertices such that there is an edge from each vertex to its successor •A path is simple if each vertex is distinct/A path with no repeated vertices is called a simple path •A circuit is a path in which the terminal vertex coincides with the initial vertex. (Vertices may repeat but edges are not allowed to repeat)
  • 11. GRAPH TERMINOLOGIES •Cycle: A circuit that doesn't repeat vertices is called a Cycle. (Neither vertices except possibly the starting and ending vertices) are allowed to repeat, Nor edges are allowed to repeat •Adjacent Vertices Two vertices are said to be adjacent if there is an edge (arc) connecting them. 0-1-2-3-0 - CYCLE 0-1-2-4-2-3- CIRCUIT
  • 12. GRAPH TERMINOLOGIES •Adjacent edges are edges that share a common vertex. •Degree of the Node A degree of a node is the number of edges that are connected with that node. A node with degree 0 is called as isolated node.  In degree: Number of edges entering a node  Out degree: Number of edges leaving a node  Degree = Indegree + Outdegree
  • 13. •Connected and Disconnected A graph G is said to be connected if there exists a path between every pair of vertices. A connected graph is the one in which some path exists between every two vertices (u, v) in V. There are no isolated nodes in connected graph. UNCONNECTED/DisConnected GRAPH: A graph is said as unconnected graph if there exist any 2 unconnected components. Example: • H1 and H2 are connected • H3 is disconnected
  • 14. Weighted Graph •A graph is said to be weighted graph if every edge in the graph is assigned a weight or value. It can be directed or undirected graph.
  • 15. CYCLIC AND ACYCLIC GRPH Cyclic Graph A graph with at least one cycle is called a cyclic graph. Example In the above example graph, we have two cycles a-b-c-d-a and c-f-g-e-c. Hence it is called a cyclic graph Acyclic Graph A graph with no cycles is called an acyclic graph.
  • 16. GRAPH REPRESENTATION Graph data structure is represented using following representations... •Adjacency Matrix •Incidence Matrix •Adjacency List
  • 17. ADJACENCY MATRIX The adjacency matrix A for a graph G = (V,E) with n vertices, is an n* n matrix of bits , •such that A ij = 1 , if there is an edge from vi to vj and •Aij = 0, if there is no such edge
  • 18.
  • 19. ADJACENCY LIST •A graph containing m vertices and n edges can be represented using a linked list, referred to as adjacency list. •The number of vertices in a graph forms a singly linked list. •Each vertex have a separate linked list, with nodes equal to the number of edges connected from the corresponding vertex.. •Each nodes has at least 2 fields: VERTEX and LINK. •The VERTEX fields contain the indices of the vertices adjacent to vertex i.
  • 20.
  • 21. GRAPH TRAVERSALS A graph traversal is a systematic way of visiting the nodes in a specific order. There are 2 types of graph traversals namely, Breadth First Search(BFS) Depth First Search(DFS)
  • 22.
  • 23. DEPTH FIRST SEARCH •Visit the first node initially, and then find the unvisited node which is adjacent to the first node, is visited and a DFS is initiated from the adjacent node (considering it as the first node) •If all the adjacent nodes have been visited, backtrack to the last node visited, and find another adjacent node and again initiate the DFS from adjacent node •This traversal continues until all nodes have been visited once
  • 24. STEPS TO IMPLEMENT DFS 1. Select the start vertex 2. Visit the vertex (place 1) 3. Find the adjacent vertices of visited node Rule 1− Visit any one of the adjacent unvisited vertex. Mark it as visited. Display it. Push it in a stack. Rule 2− If no adjacent vertex is found, pop up a vertex from the stack. (It will pop up all the vertices from the stack, which do not have adjacent vertices.) Rule 3− Repeat Rule 1 and Rule 2 until the stack is empty.
  • 25.
  • 26.
  • 27.
  • 28. Vertex 2 has an unvisited adjacent vertex in 4, so we add that to the top of the stack and visit it.
  • 29.
  • 30.
  • 31.
  • 32. APPLICATIONS OF DFS •To check whether the undirected graph is connected or not •To check if the connected undirected graph is bi-connected or not •To check whether the directed graph is a-cyclic or not
  • 33. BFS (BREADTH FIRST SEARCH) •Breadth First Search ( of a graph G starts from an unvisited vertex u. •Then all unvisited vertices vi adjacent to u are visited and then all unvisited vertices wj adjacent to vi are visited and so on •The traversal terminates when there are no more nodes to visit •BFS uses a queue data structure to keep track of the order of the nodes whose adjacent nodes are to be visited
  • 34. STEPS TO IMPLEMENT BFS 1. Select the start vertex and mark it as visited (i.e) place the value 1 2. Enqueue the START vertex. 3. Dequeue the vertex. 4. Find all adjacent unvisited vertices of the dequeued vertex. 5. Mark all unvisited adjacent vertices as visited. 6. Enqueue all adjacent vertices. 7. Repeat from step 3 to step 6 until the queue becomes empty
  • 35.
  • 36.
  • 37.
  • 38.
  • 40.
  • 41. APPLICATIONS OF BFS 1. To find the shortest path from a vertex s to a vertex v in an unweighted graph 2. To find the length of such a path 3. To find out if a graph contains cycles 4. To construct a BFS tree/forest from a graph
  • 42.
  • 43.
  • 44. TOPOLOGICAL SORTING It is a linear ordering of vertices in a directed a-cyclic graph, such that if there is a path from Vi to Vj, then Vj appears after Vi in the linear ordering. Topological sort is not possible if the graph has a cycle. Procedure 1. Find the indegree for every vertex 2. Place the vertices whose indegree is zero on the empty queue 3. Dequeue one vertex at a time from the queue and decrement the indegree of all its adjacent vertices 4. Enqueue a vertex to the queue if its indegree falls to zero 5. Repeat from step 3 unitl the queue becomes empty
  • 45. EXAMPLE Step 1 •Find the Indegree of vertices 1,2,3,4,5,6. •Indegree of a vertex is the number of edges entering into the vertex. Indegree of vertex 1 is 0, vertex 2 is 0, vertex 3 is 1, vertex 4 is 3, vertex 5 is 1, vertex 6 is 3. Step 2 •enqueue() the vertices with Indegree 0. Therefore enqueue() vertices 1 and 2.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51. APPLICATIONS: •Topological Sorting is mainly used for scheduling jobs from the given dependencies among jobs •The jobs are represented by vertices, and there is an edge from x to y if job x must be completed before job y can be started •For example, in constructing a building, the basement must be completed before the first floor, which must be completed before the second floor and so on •A topological sort gives an order in which we should perform the jobs •In computer science, applications of this type arise in instruction scheduling, ordering of formula cell evaluation when recomputing formula values in spreadsheets, •Determining the order of compilation tasks to perform in make files
  • 52. MINIMUM SPANNING TREE A spanning tree is a tree that connects all the vertices of a graph with the minimum possible number of edges. Thus, a spanning tree is always connected. Also, a spanning tree never contains a cycle. A Minimum Spanning Tree (MST) is a subset of edges of a connected weighted undirected graph that connects all the vertices together with the minimum possible total edge weight. Spanning Tree with minimum cost is called Minimum Spanning Tree To derive an MST, Prim’s algorithm or Kruskal’s algorithm can be used.
  • 53. The initial graph possible spanning trees minimum spanning tree
  • 54. PRIM’S ALGORITHM •Prim’s algorithm is a greedy algorithm (Optimal solution) •Used to form a minimum spanning tree for a connected weighted undirected graph. •Builds a tree that includes every vertex and a subset of the edges in such a way that the total weight of all the edges in the tree is minimized.
  • 55. ALGORITHM //Input: A weighted connected graph G = (V, E) //Output: T , the set of edges composing a minimum spanning tree of G Step 1: Select a starting vertex Step 2: Repeat Steps 3 and 4 until there is no unvisited vertices Step 3: Select an edge e connecting the tree vertex and visit vertex that has minimum weight Step 4: Add the selected edge and the vertex to the minimum spanning tree T Step 5: EXIT
  • 56.
  • 57.
  • 58. KRUSKAL ALGORITHM Step-01: Sort all the edges from low weight to high weight. Step-02: Take the edge with the lowest weight and use it to connect the vertices of graph. If adding an edge creates a cycle, then reject that edge and go for the next least weight edge. Step-03: Keep adding edges until all the vertices are connected and a Minimum Spanning Tree (MST) is obtained.
  • 59.
  • 60.
  • 61.
  • 63.
  • 64. SHORTEST PATH ALGORITHM The shortest path algorithm determines the minimum cost of the path from source to every other vertex. Types The single source shortest path problem Find the minimum cost from single source vertex to all other vertices Dijkstra’s Algorithm The all pairs shortest path problem Find the shortest distance from each vertex to all other vertices. Floyd’s algorithm
  • 65. DIJKSTRA'S ALGORITHM Find the shortest path from a node (called the "source node") to all other nodes in the graph, producing a shortest-path tree. This algorithm is used in GPS devices to find the shortest path between the current location and the destination This algorithm was created and published by Dr. Edsger W. Dijkstra, Dutch computer scientist and software engineer In 1959.
  • 66. ALGORITHM starts at the node that you choose (the source node) and find the shortest path between that node and all the other nodes in the graph. keeps track of the currently known shortest distance from each node to the source node and it updates these values if it finds a shorter path. Once the algorithm has found the shortest path between the source node and another node, that node is marked as "visited" and added to the path. The process continues until all the nodes in the graph have been added to the path. This way, we have a path that connects the source node to all other nodes following the shortest path possible to reach each node. Dijkstra's Algorithm can only work with graphs that have positive weights
  • 67. First, we have to consider any vertex as a source vertex. d(x, y) = max((d(x,u) + c(u, y)) , d(x,y)) u – Intermédiate vertex
  • 68.
  • 69. BI-CONNECTIVITY An undirected graph is called Biconnected if there is a two vertex – disjoint ways between any two vertices. In a Biconnected Graph, there is a basic cycle through any two vertices. It must be connected. There isn’t an articulation point in it. ( Even if remove any node others are in connection)
  • 70. Definitions- Separation Edges and Vertices  Let G be a connected graph  A separation edge of G is an edge whose removal disconnects G  A separation vertex of G is a vertex whose removal disconnects G Applications: Separation edges and vertices represent single points of failure in a network and are critical to the operation of the network Example  DFW, LGA and LAX are separation vertices  (DFW,LAX) is a separation edge
  • 71. Equivalent definitions of a biconnected graph G  Graph G has no separation edges and no separation vertices  For any two vertices u and v of G, there are two disjoint simple paths between u and v (i.e., two simple paths between u and v that share no other vertices or edges)  For any two vertices u and v of G, there is a simple cycle containing u and v Example Biconnected Graph
  • 72. BICONNECTED COMPONENTS Biconnected component of a graph G  A maximal biconnected subgraph of G, or  A subgraph consisting of a separation edge of G and its end vertices Interaction of biconnected components  An edge belongs to exactly one biconnected component  A nonseparation vertex belongs to exactly one biconnected component  A separation vertex belongs to two or more biconnected components Example of a graph biconnected components
  • 73. EULER CIRCUIT Euler path is a path, by which we can visit every edge exactly once. (Eulerian Path) We can use the same vertices for multiple times. The starting and ending points need not be the same. Euler Circuit is a special type of Euler path. (Eulerian Circuit) When the starting vertex of the Euler path is also connected with the ending vertex of that path, then it is called the Euler Circuit. To detect the path and circuit, we have to follow these conditions:  The graph must be connected.  When exactly two vertices have odd degree, it is a Euler Path.  Now when no vertices of an undirected graph have odd degree, then it is a Euler Circuit. A graph is said to be eulerian if it has a eulerian cycle.
  • 74.
  • 75. APPLICATIONS OF GRAPHS Social network graphs  The Facebook graph showing who follows whom or who sends friend invitations to whom Transportation networks  vertices are intersections in road networks, and edges are the road segments that connect them Utility graphs:  The power grid, the Internet, and the water network are graphs with vertices representing connection points and edges representing the cables or pipes that connect them Document link graphs  web’s link graph - each web page is a vertex, and a directed edge connects each hyperlink Finite element meshes  spread of earthquakes through the ground, structural vibrations of a building
  • 76. Robot planning  The edges represent possible transitions between states, whereas the vertices represent various states for the robot Network packet traffic graph  Vertices are IP address edges are the packets that flow between them. Scene graph  Computer games scene graphs represent the logical relationship between objects in a scene Neural networks  Vertices represent neurons and edges the synapses between them. Protein – Protein interactions graphs  Vertices represent proteins and edges represent interactions between them (biological functions in the cell)
  • 77. Floyd’s Algorithm 77 ALL PAIRS SHORTEST PATH The problem: find the shortest path between every pair of vertices of a graph The graph: may contain negative edges but no negative cycles A representation: a weight matrix where W(i,j)=0 if i=j. W(i,j)= if there is no edge between i and j. W(i,j)=“weight of edge”
  • 78. Floyd Warshall Algorithm- Floyd Warshall Algorithm is a famous algorithm. It is used to solve All Pairs Shortest Path Problem. It computes the shortest path between every pair of vertices of the given graph. Floyd Warshall Algorithm is an example of dynamic programming approach
  • 79. Advantages- Floyd Warshall Algorithm has the following main advantages- It is extremely simple. It is easy to implement.

Editor's Notes

  1. CS333 / class 22