This repository contains implementations of various graph search algorithms built from scratch, including:
- Depth First Search (DFS)
- Breadth First Search (BFS)
- Uniform Cost Search (UCS)
- A* Search
DFS is an algorithm for traversing or searching tree or graph data structures. It starts at the root node and explores as far as possible along each branch before backtracking.
BFS is an algorithm for traversing or searching tree or graph data structures. It starts at the root node and explores all the neighbor nodes at the present depth before moving on to the nodes at the next depth level.
UCS is a variant of Dijkstra's algorithm. It explores the nodes in order of their cost from the start node, always choosing the lowest-cost node to expand next.
A* is a best-first search algorithm that uses heuristics to improve the efficiency of the search. It evaluates nodes by combining the cost to reach the node and the estimated cost to reach the goal.
Heuristic search algorithms use heuristics to guide the search in finding the optimal solution efficiently. These algorithms typically provide a balance between the optimality of the solution and the computational resources required.
Each algorithm's implementation includes detailed explanations and comments to help understand their functionalities and how they operate.