A topic in the Open Knowledge Graph — a free, open map of 15,495 topics and the order to learn them in.

Problem Formulation and Uninformed Search Strategies

Graduate Depth 106 in the knowledge graph ☐ I know this ☆ Set as goal
31topics build on this
522prerequisites beneath it
See this on the map →
Breadth-First Search (BFS)Depth-First Search (DFS)+3 more→→A* Search AlgorithmClassical Planning: STRIPS and PDDL+1 more
search state-space breadth-first uniform-cost-search iterative-deepening problem-solving-agents

Core Idea

Many AI problems can be stated as a search problem: an initial state, a set of actions, a transition model giving the result of each action, a goal test and a cost for each action. A solution is a sequence of actions from the initial state to a goal state. Uninformed (blind) search strategies explore this state space using only the problem definition, with no estimate of how close a state is to the goal. They differ in the order in which they expand nodes, which determines whether they are complete, whether they find the cheapest solution, and how much time and memory they need.

How It's Best Learned

Formulate two or three puzzles (route finding on a map, the 8-puzzle, the missionaries and cannibals problem) by writing out states, actions, transition model and goal test before any code. Run breadth-first, uniform-cost, depth-first and iterative deepening search on the same small graph and record the order of expansion. Then fill in a table of completeness, optimality, time and space in terms of branching factor b and solution depth d, as in Russell and Norvig's chapter on solving problems by searching.

Common Misconceptions

Explainer

A goal-based agent needs to plan a sequence of actions before acting. To let a program do that, we first formulate the problem precisely. A search problem has five parts: the initial state, the actions available in each state, a transition model saying which state each action leads to, a goal test, and an action cost function. For route finding, states are cities, actions are drives along roads, and costs are distances. Choosing what to leave out of the state, a step called abstraction, often decides whether a problem is solvable at all.

Search builds a tree of paths from the initial state. Unexpanded leaves form the frontier. Each step picks one frontier node, checks it, and expands it by generating its successors. Keeping a record of states already reached avoids exploring the same state many times. Strategies differ only in which frontier node they pick next. We judge them on four criteria. Is the strategy complete, always finding a solution if one exists? Is it cost-optimal? What are its time and space requirements? We measure these using the branching factor b, the depth d of the shallowest solution, and the maximum depth m.

Breadth-first search expands the shallowest node first, using a FIFO queue. It is complete when b is finite, and optimal when all actions cost the same. Its weakness is memory: it keeps the whole frontier, O(bd) nodes.

Uniform-cost search, which is Dijkstra's algorithm applied to search, uses a priority queue ordered by path cost g(n). It finds the cheapest solution even when costs vary, provided they are positive.

Depth-first search expands the deepest node first. It needs only O(bm) memory, but it can wander down a very long or infinite branch, so it is not complete in infinite spaces, and it does not guarantee the best solution. Depth-limited search cuts it off at a fixed depth, which prevents endless descent but misses deeper solutions.

Iterative deepening search runs depth-limited search with limits 0, 1, 2, and so on until it finds a goal. It combines the strengths of both. Like breadth-first search, it is complete and finds the shallowest solution. Like depth-first search, it needs only O(bd) memory. Repeating the upper levels costs little, because most nodes are on the bottom level. For large uninformed problems it is usually the preferred method.

All of these strategies are blind: they treat every frontier node as equally promising apart from depth or cost. Adding a heuristic, an estimate of the remaining cost, leads to informed methods such as A*.

Practice Questions 4 questions

Prerequisite Chain

Understanding Zero → The Number Zero → Counting to Five → Counting to 10 → Counting to 20 → Counting a Set of Objects Up to 20 → Cardinality: The Last Number Counted → Matching Numerals to Quantities → Subitizing Small Quantities → Combining Small Groups Within 5 → Number Bonds Within 5 → Number Bonds to 10 → Tens and Ones Place Value → Reading and Writing Three-Digit Numbers → Comparing Three-Digit Numbers → Comparing and Ordering Three-Digit Quantities → Comparing and Ordering Whole Numbers → Comparing Numbers 1 to 20 → Ordering Numbers to 20 → Number Line 0 to 20 → Addition Within 20 → Doubles and Near Doubles → Doubles Facts Within 10 → Near Doubles Facts Within 20 → Mental Math Strategies for Addition → Mental Math: Adding and Subtracting Tens → Addition Within 100 → Repeated Addition as Multiplication → Multiplication as Equal Groups → Multiplication: Arrays → Basic Multiplication Facts (0s, 1s, 2s, 5s, 10s) → Multiplication Facts Within 100 → Division as Equal Sharing → Division as Grouping (Measurement Division) → Division: Grouping (Repeated Subtraction) Model → Division: Fair Sharing Model → Division as Equal Sharing → Division as Grouping → Basic Division Facts → Division Facts Within 100 → Multiplication and Division Fact Families → Relationship Between Multiplication and Division → Division Facts as Inverse of Multiplication → Remainders and Quotients in Division → Division Word Problems → Multi-Step Word Problems → Solving Multi-Step Word Problems → Multiplication Word Problems → Division Word Problems → Introduction to Long Division → Factors and Multiples → Prime and Composite Numbers → Equivalent Fractions → Relating Fractions and Decimals → Decimal Place Value → Integers and the Number Line → Opposites and Additive Inverses → Absolute Value → Adding Integers → Subtracting Integers → Multiplying Integers → Introduction to Exponents → Order of Operations → Integer Order of Operations → Variable Expressions → The Distributive Property → Variables and Expressions Review → Introduction to Polynomials → Adding and Subtracting Polynomials → Multiplying Polynomials → Factorial → Permutations → Combinations → Counting Principles: Addition and Multiplication Rules → Introduction to Graph Theory → Propositional Logic Foundations → Logical Equivalences → Boolean Algebra → Boolean Type and Truth Values → Comparison Operators and Boolean Tests → Logical Operators and Boolean Algebra → Boolean Algebra and Fundamental Laws → Logic Gates Fundamentals → Implementing Boolean Functions with Gates → Karnaugh Map Simplification → Combinational Circuit Design → Flip-Flops and Latches → Finite State Machines (FSMs) → Deterministic Finite Automata (DFA) → Nondeterministic Finite Automata (NFA) → Regular Language Recognition Algorithms → DFA Properties and Minimization Algorithms → Regular Languages: Definition and Characterization → Context-Free Grammars (CFGs) → Context-Free Grammar Properties and Ambiguity → Parse Trees, Derivations, and Ambiguity in CFGs → Context-Free Grammars in Compiler Design → Abstract Syntax Trees (ASTs) → Symbol Tables and Scope Resolution → Semantic Analysis Phase → Scope and Binding Resolution → Scope, Shadowing, and Variable Lifetime → Parameter Passing: Value vs. Reference → Two-Dimensional Arrays → Graph Representations: Adjacency List vs. Adjacency Matrix → Depth-First Search (DFS) → Problem Formulation and Uninformed Search Strategies

Longest path: 107 steps · 522 total prerequisite topics

Prerequisites (5)

Leads To (3)