SlideShare a Scribd company logo
1 of 21
Graph Algorithms
Kasun Ranga Wijeweera
(Email: krw19870829@gmail.com)
What is a Graph?
• Intuitively, a graph is a collection of vertices (or nodes) and
the connections between them
• Generally, no restriction is imposed on the number of vertices
in the graph or on the number of connections one vertex can
have to other vertices
A Simple Graph
• A simple graph G = (V, E) consists of a nonempty set V of
vertices and a possibly empty set E of edges, each edge being a
set of two vertices from V
• |V| = Number of vertices
• |E| = Number of edges
A Directed Graph
• A directed graph, or digraph, G = (V, E) consists of a
nonempty set V of vertices and a set E of edges (also called
arcs), where each edge is pair of vertices from V
• The difference is that one edge of a simple graph is of the
form {vi, vj}, and in this case, (vi, vj) != (vj , vi)
A Multi Graph
• Above definitions are restrictive in that they do not allow for
two vertices to have more than one edge
• A multi graph is graph in which two vertices can be joined by
multiple edges
• Formal Definition: A multi graph G = (V, E, f) is composed of
a set of vertices V, a set of edges E, and a function
f: E{(vi, vj): (vi, vj in V) and (vi != vj)}
A Pseudo Graph
• A pseudo graph is a multi graph with the condition vi != vj
removed, which allows for loops to occur
• In a pseudo graph, a vertex can be joined with itself by an edge
A Path
• A path from v1 to vn is a sequence of edges edge(v1v2),
edge(v2v3), . . . , edge(vn-1vn) and is denoted as path v1, v2, v3, .
. . , vn-1, vn
• If v1 = v2 and no edge is repeated, then the path is called a
circuit
• If all vertices in a circuit are different, then it is called a cycle
A Weighted Graph
• A graph is called a weighted graph if each edge has an
assigned number
• Depending on the context in which such graphs are used, the
number assigned to an edge is called it weight, cost, distance,
length, or some other name
A Complete Graph
• A graph with n vertices is called complete and is denoted K n if
for each pair of distinct vertices there is exactly one edge
connecting them
• The number of edges in such a graph
|E| = |V|*(|V| - 1)*0.5
A Sub Graph
• A sub graph G’ of graph G = (V, E) is a graph (V’, E’) such
that V’ is a subset of V and E’ is a subset of E
• A sub graph induced by vertices V’ is a graph (V’, E’) such
that and edge e in E if e in E’
Adjacent? Incident?
• Two vertices vi and vj are called adjacent if the edge(vivj) is in
E
• Such an edge is called incident with the vertices vi and vj
The Degree of a Vertex
• The degree of a vertex v, deg(v), is the number of edges
incident with v
• If deg(v) = 0, then v is called an isolated vertex
Adjacency Matrix
• An adjacency matrix of graph G = (V, E) is a binary |V|*|V|
matrix such that each entry of this matrix
a ij
1; if there exists an edge(vivj)
0; otherwise
Incidence Matrix
• An incidence matrix of graph G = (V, E) is a |V|*|E| matrix
such that each entry of this matrix
a ij
1; if edge ej is incident with vertex vi
0; otherwise
Graph Traversals
• Traversing a graph consists of visiting each vertex only one
time
• Graphs may include cycles that can cause infinite loops
• To prevent infinite loops each visited vertex can be marked to
avoid revisiting it
• Graphs can have isolated vertices
• To visit those isolated vertices special mechanisms are needed
• The Depth First Search algorithm is a well known algorithm
for traversing graphs
Depth First Search Algorithm
• Each vertex v is visited and then each unvisited vertex
adjacent to v is visited
• If a vertex v has no adjacent vertices or all of its adjacent
vertices have been visited, we backtrack to the predecessor of
v
• The traversal is finished if this visiting and backtracking
process leads to the first vertex where the traversal started
• If there is still some unvisited vertices in the graph, the
traversal continues restarting for one of the unvisited vertices
• The algorithm assigns a unique number to each accessed
vertex so that vertices are now renumbered
Depth First Search Algorithm
depthFirstSearch()
for all vertices v
num(v) = 0;
edges = null;
i = 1;
while there is a vertex v such that num(v) is 0
DFS(v);
output edges;
Depth First Search Algorithm
DFS(v)
num(v) = i++;
for all vertices u adjacent to v
if num(u) is 0
attach edge(uv) to edges;
DFS(u);
Reference
Any Questions?
Thank You!

More Related Content

What's hot

Algorithm chapter 10
Algorithm chapter 10Algorithm chapter 10
Algorithm chapter 10
chidabdu
 

What's hot (20)

I.BEST FIRST SEARCH IN AI
I.BEST FIRST SEARCH IN AII.BEST FIRST SEARCH IN AI
I.BEST FIRST SEARCH IN AI
 
Biconnected components (13024116056)
Biconnected components (13024116056)Biconnected components (13024116056)
Biconnected components (13024116056)
 
Breadth first search and depth first search
Breadth first search and  depth first searchBreadth first search and  depth first search
Breadth first search and depth first search
 
Time complexity
Time complexityTime complexity
Time complexity
 
Introduction to Programming in LISP
Introduction to Programming in LISPIntroduction to Programming in LISP
Introduction to Programming in LISP
 
Hamiltonian path
Hamiltonian pathHamiltonian path
Hamiltonian path
 
Unit 3 daa
Unit 3 daaUnit 3 daa
Unit 3 daa
 
Single source stortest path bellman ford and dijkstra
Single source stortest path bellman ford and dijkstraSingle source stortest path bellman ford and dijkstra
Single source stortest path bellman ford and dijkstra
 
Algorithm chapter 10
Algorithm chapter 10Algorithm chapter 10
Algorithm chapter 10
 
Topological sort
Topological sortTopological sort
Topological sort
 
Binary search in data structure
Binary search in data structureBinary search in data structure
Binary search in data structure
 
Algorithms Lecture 2: Analysis of Algorithms I
Algorithms Lecture 2: Analysis of Algorithms IAlgorithms Lecture 2: Analysis of Algorithms I
Algorithms Lecture 2: Analysis of Algorithms I
 
Binary search
Binary searchBinary search
Binary search
 
Heap sort
Heap sortHeap sort
Heap sort
 
Unit 1 chapter 1 Design and Analysis of Algorithms
Unit 1   chapter 1 Design and Analysis of AlgorithmsUnit 1   chapter 1 Design and Analysis of Algorithms
Unit 1 chapter 1 Design and Analysis of Algorithms
 
Bfs and Dfs
Bfs and DfsBfs and Dfs
Bfs and Dfs
 
Minimum spanning tree
Minimum spanning treeMinimum spanning tree
Minimum spanning tree
 
Performance analysis(Time & Space Complexity)
Performance analysis(Time & Space Complexity)Performance analysis(Time & Space Complexity)
Performance analysis(Time & Space Complexity)
 
Breadth First Search & Depth First Search
Breadth First Search & Depth First SearchBreadth First Search & Depth First Search
Breadth First Search & Depth First Search
 
Dynamic pgmming
Dynamic pgmmingDynamic pgmming
Dynamic pgmming
 

Viewers also liked (6)

Graph applications chapter
Graph applications chapterGraph applications chapter
Graph applications chapter
 
2.5 dfs & bfs
2.5 dfs & bfs2.5 dfs & bfs
2.5 dfs & bfs
 
Graph theory
Graph theoryGraph theory
Graph theory
 
Graph Traversal Algorithm
Graph Traversal AlgorithmGraph Traversal Algorithm
Graph Traversal Algorithm
 
Graph Traversal Algorithms - Depth First Search Traversal
Graph Traversal Algorithms - Depth First Search TraversalGraph Traversal Algorithms - Depth First Search Traversal
Graph Traversal Algorithms - Depth First Search Traversal
 
introduction to graph theory
introduction to graph theoryintroduction to graph theory
introduction to graph theory
 

Similar to Graphs Algorithms

Similar to Graphs Algorithms (20)

14 chapter9 graph_algorithmstopologicalsort_shortestpath
14 chapter9 graph_algorithmstopologicalsort_shortestpath14 chapter9 graph_algorithmstopologicalsort_shortestpath
14 chapter9 graph_algorithmstopologicalsort_shortestpath
 
Graph Theory
Graph TheoryGraph Theory
Graph Theory
 
Graphs in data structure
Graphs in data structureGraphs in data structure
Graphs in data structure
 
CS-102 Data Structure lectures on Graphs
CS-102 Data Structure lectures on GraphsCS-102 Data Structure lectures on Graphs
CS-102 Data Structure lectures on Graphs
 
CS-102 Data Structure lectures on Graphs
CS-102 Data Structure lectures on GraphsCS-102 Data Structure lectures on Graphs
CS-102 Data Structure lectures on Graphs
 
Graphs.pptx
Graphs.pptxGraphs.pptx
Graphs.pptx
 
Unit 2: All
Unit 2: AllUnit 2: All
Unit 2: All
 
Graph in Discrete mathemaetics.pptx
Graph in Discrete mathemaetics.pptxGraph in Discrete mathemaetics.pptx
Graph in Discrete mathemaetics.pptx
 
Basic graph theory
Basic graph theoryBasic graph theory
Basic graph theory
 
Graph in data structure
Graph in data structureGraph in data structure
Graph in data structure
 
Unit ix graph
Unit   ix    graph Unit   ix    graph
Unit ix graph
 
Graph 1
Graph 1Graph 1
Graph 1
 
Unit 9 graph
Unit   9 graphUnit   9 graph
Unit 9 graph
 
Graph
GraphGraph
Graph
 
Graph Theory Introduction
Graph Theory IntroductionGraph Theory Introduction
Graph Theory Introduction
 
Graph theory
Graph theoryGraph theory
Graph theory
 
Graph representation
Graph representationGraph representation
Graph representation
 
UNIT III.pptx
UNIT III.pptxUNIT III.pptx
UNIT III.pptx
 
Data structure - Graph
Data structure - GraphData structure - Graph
Data structure - Graph
 
6. Graphs
6. Graphs6. Graphs
6. Graphs
 

More from Kasun Ranga Wijeweera

More from Kasun Ranga Wijeweera (20)

Decorator Design Pattern in C#
Decorator Design Pattern in C#Decorator Design Pattern in C#
Decorator Design Pattern in C#
 
Singleton Design Pattern in C#
Singleton Design Pattern in C#Singleton Design Pattern in C#
Singleton Design Pattern in C#
 
Introduction to Design Patterns
Introduction to Design PatternsIntroduction to Design Patterns
Introduction to Design Patterns
 
Algorithms for Convex Partitioning of a Polygon
Algorithms for Convex Partitioning of a PolygonAlgorithms for Convex Partitioning of a Polygon
Algorithms for Convex Partitioning of a Polygon
 
Geometric Transformations II
Geometric Transformations IIGeometric Transformations II
Geometric Transformations II
 
Geometric Transformations I
Geometric Transformations IGeometric Transformations I
Geometric Transformations I
 
Introduction to Polygons
Introduction to PolygonsIntroduction to Polygons
Introduction to Polygons
 
Bresenham Line Drawing Algorithm
Bresenham Line Drawing AlgorithmBresenham Line Drawing Algorithm
Bresenham Line Drawing Algorithm
 
Digital Differential Analyzer Line Drawing Algorithm
Digital Differential Analyzer Line Drawing AlgorithmDigital Differential Analyzer Line Drawing Algorithm
Digital Differential Analyzer Line Drawing Algorithm
 
Loops in Visual Basic: Exercises
Loops in Visual Basic: ExercisesLoops in Visual Basic: Exercises
Loops in Visual Basic: Exercises
 
Conditional Logic: Exercises
Conditional Logic: ExercisesConditional Logic: Exercises
Conditional Logic: Exercises
 
Getting Started with Visual Basic Programming
Getting Started with Visual Basic ProgrammingGetting Started with Visual Basic Programming
Getting Started with Visual Basic Programming
 
CheckBoxes and RadioButtons
CheckBoxes and RadioButtonsCheckBoxes and RadioButtons
CheckBoxes and RadioButtons
 
Variables in Visual Basic Programming
Variables in Visual Basic ProgrammingVariables in Visual Basic Programming
Variables in Visual Basic Programming
 
Loops in Visual Basic Programming
Loops in Visual Basic ProgrammingLoops in Visual Basic Programming
Loops in Visual Basic Programming
 
Conditional Logic in Visual Basic Programming
Conditional Logic in Visual Basic ProgrammingConditional Logic in Visual Basic Programming
Conditional Logic in Visual Basic Programming
 
Assignment for Variables
Assignment for VariablesAssignment for Variables
Assignment for Variables
 
Assignment for Factory Method Design Pattern in C# [ANSWERS]
Assignment for Factory Method Design Pattern in C# [ANSWERS]Assignment for Factory Method Design Pattern in C# [ANSWERS]
Assignment for Factory Method Design Pattern in C# [ANSWERS]
 
Assignment for Events
Assignment for EventsAssignment for Events
Assignment for Events
 
Mastering Arrays Assignment
Mastering Arrays AssignmentMastering Arrays Assignment
Mastering Arrays Assignment
 

Recently uploaded

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Recently uploaded (20)

Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 

Graphs Algorithms

  • 1. Graph Algorithms Kasun Ranga Wijeweera (Email: krw19870829@gmail.com)
  • 2. What is a Graph? • Intuitively, a graph is a collection of vertices (or nodes) and the connections between them • Generally, no restriction is imposed on the number of vertices in the graph or on the number of connections one vertex can have to other vertices
  • 3. A Simple Graph • A simple graph G = (V, E) consists of a nonempty set V of vertices and a possibly empty set E of edges, each edge being a set of two vertices from V • |V| = Number of vertices • |E| = Number of edges
  • 4. A Directed Graph • A directed graph, or digraph, G = (V, E) consists of a nonempty set V of vertices and a set E of edges (also called arcs), where each edge is pair of vertices from V • The difference is that one edge of a simple graph is of the form {vi, vj}, and in this case, (vi, vj) != (vj , vi)
  • 5. A Multi Graph • Above definitions are restrictive in that they do not allow for two vertices to have more than one edge • A multi graph is graph in which two vertices can be joined by multiple edges • Formal Definition: A multi graph G = (V, E, f) is composed of a set of vertices V, a set of edges E, and a function f: E{(vi, vj): (vi, vj in V) and (vi != vj)}
  • 6. A Pseudo Graph • A pseudo graph is a multi graph with the condition vi != vj removed, which allows for loops to occur • In a pseudo graph, a vertex can be joined with itself by an edge
  • 7. A Path • A path from v1 to vn is a sequence of edges edge(v1v2), edge(v2v3), . . . , edge(vn-1vn) and is denoted as path v1, v2, v3, . . . , vn-1, vn • If v1 = v2 and no edge is repeated, then the path is called a circuit • If all vertices in a circuit are different, then it is called a cycle
  • 8. A Weighted Graph • A graph is called a weighted graph if each edge has an assigned number • Depending on the context in which such graphs are used, the number assigned to an edge is called it weight, cost, distance, length, or some other name
  • 9. A Complete Graph • A graph with n vertices is called complete and is denoted K n if for each pair of distinct vertices there is exactly one edge connecting them • The number of edges in such a graph |E| = |V|*(|V| - 1)*0.5
  • 10. A Sub Graph • A sub graph G’ of graph G = (V, E) is a graph (V’, E’) such that V’ is a subset of V and E’ is a subset of E • A sub graph induced by vertices V’ is a graph (V’, E’) such that and edge e in E if e in E’
  • 11. Adjacent? Incident? • Two vertices vi and vj are called adjacent if the edge(vivj) is in E • Such an edge is called incident with the vertices vi and vj
  • 12. The Degree of a Vertex • The degree of a vertex v, deg(v), is the number of edges incident with v • If deg(v) = 0, then v is called an isolated vertex
  • 13. Adjacency Matrix • An adjacency matrix of graph G = (V, E) is a binary |V|*|V| matrix such that each entry of this matrix a ij 1; if there exists an edge(vivj) 0; otherwise
  • 14. Incidence Matrix • An incidence matrix of graph G = (V, E) is a |V|*|E| matrix such that each entry of this matrix a ij 1; if edge ej is incident with vertex vi 0; otherwise
  • 15. Graph Traversals • Traversing a graph consists of visiting each vertex only one time • Graphs may include cycles that can cause infinite loops • To prevent infinite loops each visited vertex can be marked to avoid revisiting it • Graphs can have isolated vertices • To visit those isolated vertices special mechanisms are needed • The Depth First Search algorithm is a well known algorithm for traversing graphs
  • 16. Depth First Search Algorithm • Each vertex v is visited and then each unvisited vertex adjacent to v is visited • If a vertex v has no adjacent vertices or all of its adjacent vertices have been visited, we backtrack to the predecessor of v • The traversal is finished if this visiting and backtracking process leads to the first vertex where the traversal started • If there is still some unvisited vertices in the graph, the traversal continues restarting for one of the unvisited vertices • The algorithm assigns a unique number to each accessed vertex so that vertices are now renumbered
  • 17. Depth First Search Algorithm depthFirstSearch() for all vertices v num(v) = 0; edges = null; i = 1; while there is a vertex v such that num(v) is 0 DFS(v); output edges;
  • 18. Depth First Search Algorithm DFS(v) num(v) = i++; for all vertices u adjacent to v if num(u) is 0 attach edge(uv) to edges; DFS(u);