chapter three

3 Blind Search Algorithms

 

This chapter covers

  • Applying different graph types for practical use
  • Graph search algorithms
  • Using graph traversal algorithms to explore the structure of a tree or a graph and to find a path between two nodes
  • Using blind search algorithms to find the shortest path between two nodes in a graph
  • Solving a real-world routing problem using graph search algorithms

You have already been introduced to deterministic and stochastic algorithms in chapter 2. In this chapter, we will focus on deterministic algorithms, specifically blind search algorithms, and their applications in exploring tree or graph structures and finding the shortest path between nodes. Using these algorithms, you can explore a maze from an initial state to a goal state, solve N-puzzle problems, figure out the distance between you and any other person on a social media graph, search a family tree to determine the exact relationship between any two people who are related or find the shortest path between any origin (e.g., your home) and any destination (e.g., your workplace or any other point of interest). Blind search algorithms are important as they are often more efficient and reasonable to use when dealing with simple, well-defined problems.

3.1 Introduction to Graphs

3.2 Graph Search

3.3 Graph Traversal Algorithms

3.3.1 Breadth-first Search (BFS)

3.3.2 Depth-first Search (DFS)

3.4 Shortest Path Algorithms

3.4.1 Dijkstra Search

3.4.2 Uniform-Cost Search (UCS)

3.4.3 Bi-directional Dijkstra Search

3.5 Applying Blind Search to Routing Problem

3.6 Summary