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
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
CHARACTERISTICS
• USES A STACK (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
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 – RECURSIVE ALGORITHM
PSEUDOCODE:
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
EXAMPLE
STEPS OF DEPTH FIRST SEARCH (DFS)
START AT NODE A
STACK: [A]
VISIT A, ADD ITS NEIGHBOURS B, C IN THE STACK
STACK: [C, B]
VISIT B, 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
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
DISADVANTAGES
•May Get Trapped in 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
USES OF DFS IN 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
REAL-WORLD USES
• WEB CRAWLING
• FILE SYSTEM NAVIGATION
• SOLVING MAZES AND PUZZLES
• SOCIAL NETWORK ANALYSIS
• CYCLE DETECTION IN GRAPHS
• PACKAGE MANAGEMENT & BUILD SYSTEMS
• COMPILERS – TOPOLOGICAL SORTING
THANK YOU

Depth First Search (DFS) AI future ppt.pptx

  • 1.
    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
  • 5.
    DFS – RECURSIVEALGORITHM PSEUDOCODE:
  • 6.
    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
  • 13.