

🎓 147/167
This post is a part of the AI theory educational series from my free course. Please keep in mind that the correct sequence of posts is outlined on the course page, while it can be arbitrary in Research.
I'm also happy to announce that I've started working on standalone paid courses, so you could support my work and get cheap educational material. These courses will be of completely different quality, with more theoretical depth and niche focus, and will feature challenging projects, quizzes, exercises, video lectures and supplementary stuff. Stay tuned!
Artificial intelligence search — often referred to simply as "search" — plays a crucial role in the broader field of AI, serving as a core framework for problem-solving agents that need to find solutions systematically in well-defined or sometimes partially defined spaces. The concept of "search" in AI revolves around exploring possible sequences of actions and outcomes, attempting to arrive at a goal that fulfills certain criteria or solves a particular challenge. At its foundation, AI search is about generating and evaluating states — or sets of possible configurations — using a structured process that can be as naive as exploring every possibility or as sophisticated as leveraging heuristics, constraints, or other domain-specific knowledge.
I find AI search especially motivating because of its wide applicability. From routing problems (like shortest paths in transportation networks) and scheduling tasks (like optimizing resource allocation) to game-playing agents and complex constraint satisfaction puzzles, search mechanisms help cut down potentially astronomically large solution spaces to something manageable. In daily practice, search strategies empower advanced software and intelligent systems, allowing them to identify optimal — or near-optimal — solutions in the face of complexity and uncertainty.
This article is intended for readers who have some background in machine learning and data science but wish to dive deeper into the theoretical and practical details of AI-based search strategies. I will walk through fundamental ideas, from the most basic uninformed search techniques to heuristically guided approaches, local search, constraint satisfaction, and adversarial search. I will also highlight relevant insights from research (e.g., from major conferences like NeurIPS or journals like JMLR) that have shaped the modern understanding of AI search and its associated methods. By the end, you should feel confident about where each search strategy fits and how to design or choose the right one for your specific problem context.
Below is the overall structure of this article:
-
Introduction
— Motivation for AI search
— Definition of search in AI
— Problem-solving agents and their role in search
— Overview of key search paradigms and techniques -
Fundamentals of problem-solving by searching
— Defining the search problem (states, actions, goals)
— State space representation
— Search trees vs. search graphs
— Example problems
— Algorithmic problem-solving basics -
Uninformed (blind) search strategies
— Characteristics and limitations of uninformed search
— Breadth-first search (BFS)
— Depth-first search (DFS)
— Uniform-cost search (Dijkstra's algorithm)
— Comparison of time and space complexities -
Informed (heuristic) search strategies
— Heuristic functions and their role in search
— Heuristic evaluations (admissibility and consistency)
— Greedy best-first search
— A* search algorithm
— Analysis of performance and optimality -
Local search and optimization problems
— Motivation for local search (large or infinite state spaces)
— Hill-climbing and variants
— Simulated annealing
— Genetic algorithms and other evolutionary methods
— Local search in continuous spaces -
Search in complex and uncertain environments
— Dealing with nondeterministic actions
— Search in partially observable environments
— Online search agents for unknown environments -
Constraint satisfaction problems (CSPs)
— Defining CSPs (variables, domains, constraints)
— Constraint propagation and inference in CSPs