DEPTH FIRST SEARCH(DFS)
ARTIFICIAL INTELLIGENCE- 21CSC206T
Group number - 9
Neeraj Srinivas RA2311009020001
Mohammed Irfan RA2311009020027
Anderson Rays RA231109020057
Shriram Dhasarathy RA2311009020061
Date:- 22/04/2025
2.
INTRODUCTION TO DFS
•DEPTH FIRST SEARCH (DFS) IS AN ALGORITHM USED FOR
SEARCHING THROUGH TREE (OR) GRAPH DATA STRUCTURE.
• STARTING FROM A ROOT NODE, DFS EXPLORES AS FAR AS
POSSIBLE ALONG EACH BRANCH BEFORE BACKTRACKING
3.
CHARACTERISTICS
• USES ASTACK (OR RECURSIVE FUNCTION CALLS) TO KEEP TRACK
OF THE NODES.
• CAN EXPLORE DEEP PARTS OF THE SEARCH SPACE BEFORE
REACHING A SOLUTION.
• DOES NOT GUARANTEE THE SHORTEST PATH OR SOLUTION IF
THE SEARCH SPACE IS INFINITE
4.
HOW DFS WORKS
•START FROM A NODE, GO DEEPER VIA NEIGHBOURS.
• USE A VISITED SET TO AVOID REVISITING NODES.
• LIFO BEHAVIOUR: USES STACK OR RECURSION
DFS CODE +DRY RUN
CODE (PYTHON):
def dfs(node, visited):
visited.add(node)
for neighbor in graph[node]:
if neighbor not in visited:
dfs(neighbor, visited)
Dry Run Example: A B C, D
→ →
Visited Order: A, B, C, D
7.
EXAMPLE
STEPS OF DEPTHFIRST SEARCH (DFS)
START AT NODE A
STACK: [A]
VISIT A, ADD ITS NEIGHBOURS B, C IN THE STACK
8.
STACK: [C, B]
VISITB, ADD ITS NEIGHBOURS D, E IN THE STACK
STACK: [C, E, D]
VISIT D (NO NEIGHBOURS) THEN E (NO NEIGHBOURS)
STACK: [C]
VISIT C, ADD ITS NEIGHBOURS F IN THE STACK
STACK: [F]
VISIT F (NO NEIGHBOURS)
STACK: [ ]
RESULTING DFS TRAVERSAL: A,B,D,E,C,F
9.
ADVANTAGES:
•Simple to Implement(Recursively or with Stack)
•Uses Less Memory Than BFS (for Sparse or Deep Graphs)
•Efficient for Solving Puzzles and Path Problems
•Good for Finding Connected Components in Graphs
•Works Well for Topological Sorting and Cycle Detection
•Can Traverse Entire Graph Even if Disconnected (with loop)
•Easily Adaptable for Applications Like Backtracking
10.
DISADVANTAGES
•May Get Trappedin Deep or Infinite Paths
•Not Guaranteed to Find the Shortest Path
•Stack Overflow Risk in Deep Recursion (in large graphs)
•Harder to Debug Than BFS in Some Cases
•Requires Extra Space for Visited Tracking
•Performance Can Vary Based on Graph Structure
11.
USES OF DFSIN ARTIFICIAL INTELLIGENCE
•Backtracking Algorithms
•Solving Logic Puzzles (e.g., Sudoku, N-Queens)
•Planning and Scheduling
•Pathfinding in Robotics
•State Space Search
•Constraint Satisfaction Problems (CSPs)
•Decision Tree Traversal in AI Models
12.
REAL-WORLD USES
• WEBCRAWLING
• FILE SYSTEM NAVIGATION
• SOLVING MAZES AND PUZZLES
• SOCIAL NETWORK ANALYSIS
• CYCLE DETECTION IN GRAPHS
• PACKAGE MANAGEMENT & BUILD SYSTEMS
• COMPILERS – TOPOLOGICAL SORTING