In this session, we introduce the idea of search. We've designed systems to tackle static problems and modeled the idea of uncertainty, but we still haven't developed a way to approach that uncertainty and engage in decision-making that we can codify into our systems.
We can tackle uncertainty through search; if we know the domain of possible solutions to a problem, and know the steps to get from one part of the domain to the other, then we can search the domain until we reach the solution.
The overview handout provides a more detailed introduction, including the big ideas of the session, key vocabulary, what you should understand (theory) and be able to do (practice) after completing this session, and additional resources.
Read sections 8.1-8.4 of the course notes.
Watch the lecture video. The handout and slides present the same material, but the slides include answers to the in-class questions.
Lecture 12: Search Algorithms (01:08:06)
Lecture 12: Search Algorithms
About this Video
Two search algorithms are introduced, depth-first search and breadth-first search. Pruning rules (including dynamic programming) are also considered, so that the same state is not visited repeatedly.
These videos have been developed for OCW Scholar, and are designed to supplement the lecture videos.
Recitation 15: Search: Basics (00:15:14)
Recitation 15: Search: Basics
The problems in the tables below are taken from the 6.01 Online Tutor, an interactive environment that is not available on OCW. Do not try to answer these questions in the PDF files; answers will not be checked, and cannot be submitted.
- Software Lab 13: Farmer Goat Wolf Cabbage (PDF)
- Code for Software Lab 13 (ZIP) (This ZIP file contains: 2 .py files.)
|13.1.1||Farmer et al.: Machine (PDF)|
|13.1.2||Farmer et al.: Search (PDF)|
- Design Lab 13: I Walk the Line (PDF)
- Code for Design Lab 13 (ZIP) (This ZIP file contains: 5 .py files.)
|13.3.1||Compare searches (PDF)|
|13.3.2||Compare searches (PDF)|
|13.3.3||Paths in the map (PDF)|
|13.3.4||Robot on a grid (PDF)|
|13.3.5||Obstacles [optional] (PDF)|
|13.3.6||Knight paths on a chessboard [optional] (PDF)|
|13.3.7||Two robots on a grid [optional] (PDF)|
Nano-quiz problems and solutions are taken from a previous version of the 6.01 Online Tutor. Do not try to answer these questions in the PDF files; answers will not be checked, and cannot be submitted.