Graph
Graph
o GRAPH
o GRAPH THEORY
(TERMINOLOGY)
o TYPES OF GRAPH
o GRAPH
REPRESENTATIONS
GRAPH
A GRAPH IS A PICTORIAL AND MATHEMATICAL REPRESENTATION OF A SET OF
OBJECTS WHERE SOME PAIRS OF OBJECTS ARE CONNECTED BY LINKS.
THE INTERCONNECTED OBJECTS ARE REPRESENTED BY POINTS TERMED AS
VERTICES OR NODES AND THE LINKS THAT CONNECT THE VERTICES ARE CALLED
EDGES OR ARCS OR LINES
GRAPH THEORY
FUNDAMENTAL CONCEPTS
(TERMINOLOGY)
• Point
• Line
• Vertex
• edge
POINT
o IN-DIRECTED GRAPH
o DIRECTED GRAPH
o COMPLETE GRAPH
o WEIGHTED GRAPH
o UNWEIGHTED GRAPH
• DEFINITION: IN AN
UNDIRECTED GRAPH, THE
EDGES DO NOT HAVE A
DIRECTION. THE
CONNECTION BETWEEN
TWO VERTICES IS MUTUAL,
MEANING IF THERE'S AN
EDGE BETWEEN VERTEX A
AND VERTEX B, YOU CAN
TRAVEL IN BOTH
DIRECTIONS (A ↔ B).
• EXAMPLE: SOCIAL
NETWORKS (WHERE A
FRIENDSHIP IS A MUTUAL
RELATIONSHIP).
GRAPH, EDGES HAVE A
DIRECTION. EACH EDGE
HAS A STARTING VERTEX
(SOURCE) AND AN ENDING
VERTEX (DESTINATION). YOU
CAN ONLY TRAVEL FROM THE
SOURCE VERTEX TO THE
DESTINATION VERTEX, NOT
THE OTHER WAY AROUND
UNLESS THERE IS A SEPARATE
EDGE.
• EXAMPLE: WEB PAGE LINKS,
WHERE ONE PAGE LINKS TO
ANOTHER BUT NOT
NECESSARILY THE REVERSE.
3. COMPLETE GRAPH
• DEFINITION: A COMPLETE GRAPH
IS A GRAPH IN WHICH EVERY PAIR
OF VERTICES IS CONNECTED BY A
UNIQUE EDGE. EVERY VERTEX IS
DIRECTLY CONNECTED TO EVERY
OTHER VERTEX.
• EXAMPLE: A SMALL GROUP OF
FRIENDS WHERE EACH PERSON
KNOWS EVERY OTHER PERSON.
• DEFINITION: IN AN UNWEIGHTED
GRAPH, THE EDGES DO NOT HAVE
WEIGHTS. ALL EDGES ARE
CONSIDERED EQUAL.
• EXAMPLE: A SIMPLE SOCIAL
NETWORK, WHERE THE EDGES
REPRESENT CONNECTIONS
WITHOUT ANY STRENGTH OR
WEIGHT.
• DEFINITION: A WEIGHTED
GRAPH IS A GRAPH IN WHICH
EACH EDGE HAS A WEIGHT (OR
COST). THIS WEIGHT
REPRESENTS A QUANTITY, SUCH
AS DISTANCE, TIME, OR COST,
ASSOCIATED WITH THE EDGE.
• EXAMPLE: ROAD NETWORKS,
WHERE THE WEIGHT COULD
REPRESENT THE DISTANCE OR
TIME BETWEEN TWO
LOCATIONS.
ADJCENT NODES
• IF TWO NODES ARE
CONNECTED VIA AN EDGE
THEN THE NODES ARE
CALLED ADJCENT NODES
DEGREE OF A
NODE
• A Degree Of A Node Is The
Number Of Edges That Are
Connected With That Node.
• A Node With Degree 0 Is
Called An Isolated Node.
GRAPH
REPRESENTATION
GRAPH B 1 0 0 0
C 1 0 0 1
REPRESENTATION D 0 0 1 0
Explanation:
• The matrix element at row A, column B is 1, indicating an edge between A and B.
• The element at row B, column A is also 1 (since the graph is undirected, an edge from B
to A is also represented).
• The matrix element at row A, column C is 1, indicating an edge between A and C.
• The matrix element at row C, column A is also 1 (since the graph is undirected, an edge
from C to A is also represented).
• Similarly, the edge between C and D is represented in both the C→DC \to DC→D and
D→CD \to CD→C positions.
A→B→C→A A B C D
↓
DIRECTED D
A 0 1 0 0
GRAPH B 0 0 1 0
C 1 0 0 1
REPRESENTATION D 0 0 1 0
Explanation:
• The matrix element at row A, column B is 1, indicating that there is a directed
edge from A to B.
• Similarly, the element at row B, column C is 1, showing an edge from B to C.
• The element at row C, column A is 1, indicating an edge from C to A.
• The element at row D, column C is 1, indicating an edge from D to C.
• All other matrix entries are 0, meaning there are no edges in those directions.
ADJACENCY LIST
o BFS (Breadth-First Search) is a graph traversal algorithm used to explore nodes level by
level. It visits all the neighbors of a node before moving to the next level.
🔹 How does BFS work?
o 1.Start from a source node.
o 2.Use a queue to keep track of the nodes to visit.
o 3.Mark the starting node as visited and enqueue it.
o 4.While the queue is not empty:
Dequeue a node.
Visit all its unvisited neighbors.
Mark them visited and enqueue them.
BREADTH-FIRST SEARCH (BFS)
o BFS (Breadth-First Search) is a graph traversal algorithm used to explore nodes level by
level. It visits all the neighbors of a node before moving to the next level.
🔹 How does BFS work?
o 1.Start from a source node.
o 2.Use a queue to keep track of the nodes to visit.
o 3.Mark the starting node as visited and enqueue it.
o 4.While the queue is not empty:
Dequeue a node.
Visit all its unvisited neighbors.
Mark them visited and enqueue them.
BREADTH-FIRST SEARCH (BFS)
1.queue Q is created
2.Mark all nodes as unvisited
3.Mark the starting node s as visited and enqueue it into Q
4.While the queue is not empty:
•Dequeue a node v from Q
•Visit node v
•For each neighbor u of v:
•If u is not visited:
•Mark u as visited
•Enqueue u into Q
DEPTH-FIRST SEARCH (DFS)
2.Process nodes:
•Pick the node with the smallest distance from the queue.
•For each neighbor, calculate:
new_distance = current_distance + edge_weight
•If new_distance is less than previously known distance:
•Update the distance
•Add neighbor to the priority queue