In the last session, we introduced the concept of search. We looked at the 6.01 implementation of a general search algorithm, addressed issues of common sense and dynamic programming, and localized a robot.
In this session, we focus on improving search. We can systematically use information we have about the state space we're searching, in order to save us time and space.
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.5-8.6 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 13: Optimizing a Search (01:03:35)
Lecture 13: Optimizing a Search
About this Video
Uniform cost search takes into account the cost associated with an action, and can be implemented with a priority queue. Heuristics estimate the cost of the remaining path to the goal; the Manhattan distance is an example of an admissible heuristic.
These videos have been developed for OCW Scholar, and are designed to supplement the lecture videos.
Recitation 16: Search: Dynamic Programming, Costs and Heuristics (00:14:21)
Recitation 16: Search: Dynamic Programming, Costs and Heuristics
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 14: Plan from Outer Space (PDF)
- Code for Software Lab 14 (ZIP) (This ZIP file contains: 3 .py files.)
|14.1.1||Modeling the world (PDF)|
|14.1.2||Robot on a grid map (PDF)|
- Design Lab 14: I'm the Map! (PDF)
- Code for Design Lab 14 (ZIP) (This ZIP file contains: 13 .py files.)
|14.2.3||Aliasing instances (PDF)|
|14.2.6||Robot race results [optional] (PDF)|