AI-Search: Search
CS Core:
- State space representation of a problem
- Specifying states, goals, and operators
- Factoring states into representations (hypothesis spaces)
- Problem solving by graph search
- e.g., Graphs as a space, and tree traversals as exploration of that space
- Dynamic construction of the graph (not given upfront)
- Uninformed graph search for problem solving (See also: AL-Foundational)
- Breadth-first search
- Depth-first search
- With iterative deepening
- Uniform cost search
- Heuristic graph search for problem solving (See also: AL-Strategies)
- Heuristic construction and admissibility
- Hill-climbing
- Local minima and the search landscape
- Local vs global solutions
- Greedy best-first search
- A* search
- Space and time complexities of graph search algorithms
KA Core:
- Bidirectional search
- Beam search
- Two-player adversarial games
- Minimax search
- Alpha-beta pruning
- Ply cutoff
- Implementation of A* search
- Constraint satisfaction
Non-core:
- Understanding the search space
- Constructing search trees
- Dynamic search spaces
- Combinatorial explosion of search space
- Search space topology (e.g., ridges, saddle points, local minima)
- Local search
- Tabu search
- Variations on A* (IDA*, SMA*, RBFS)
- Two-player adversarial games
- The horizon effect
- Opening playbooks/endgame solutions
- What it means to “solve” a game (e.g., checkers)
- Implementation of minimax search, beam search
- Expectimax search (MDP-solving) and chance nodes
- Stochastic search
- Simulated annealing
- Genetic algorithms
- Monte-Carlo tree search
Illustrative Learning Outcomes:
- Design the state space representation for a puzzle (e.g., N-queens or 3-jug problem)
- Select and implement an appropriate uninformed search algorithm for a problem (e.g., tic-tac-toe), and characterize its time and space complexities.
- Select and implement an appropriate informed search algorithm for a problem after designing a helpful heuristic function (e.g., a robot navigating a 2D gridworld).
- Evaluate whether a heuristic for a given problem is admissible/can guarantee an optimal solution.
- Apply minimax search in a two-player adversarial game (e.g., connect four), using heuristic evaluation at a particular depth to compute the scores to back up. [KA Core]
- Design and implement a genetic algorithm solution to a problem.
- Design and implement a simulated annealing schedule to avoid local minima in a problem.
- Design and implement A*/beam search to solve a problem, and compare it against other search algorithms in terms of the solution cost, number of nodes expanded, etc.
- Apply minimax search with alpha-beta pruning to prune search space in a two-player adversarial game (e.g., connect four).
- Compare and contrast genetic algorithms with classic search techniques, explaining when it is most appropriate to use a genetic algorithm to learn a model versus other forms of optimization (e.g., gradient descent).
- Compare and contrast various heuristic searches vis-a-vis applicability to a given problem.
- Model a logic or Sudoku puzzle as a constraint satisfaction problem, solve it with backtrack search, and determine how much arc consistency can reduce the search space.
Suggestions Accepted for consideration for the next Edition:
- Time complexity of search algorithms
Please provide your suggestions about this knowledge unit. All submitted comments will be reviewed at the end of the month. Comments accepted for inclusion will be listed above.