CSCI 335 - Artificial Intelligence

Spring 2020

Programming Project #8: Planning

Overview

You will develop a series of search heuristics for solving planning problems. These heuristics will be demonstrated using the Blocks World domain, in addition to two domains of your own making.

Setup

The Java source files are provided in planner.zip. You will want to copy over your Project 1 implmenetation of BestFirstSearcher into the search.core package. The version that is there is the breadth-first search implementation from the Project 1 zip file.

Programming Assignment

The files are placed in six packages. You will modify the PlanGraph class, and create several classes in the planner.heuristics package that implement the BestFirstHeuristic interface. Classes you will modify are in boldface. Implement the following heuristics. Each one will be a class that implements the BestFirstHeuristic interface. Each one should be placed in planner.heuristics.

Domains

The Blocks World domain has been provided for you. You are to construct two additional domains, encoded in PDDL. Create three problem files for each domain. Place each domain in a subdirectory of domains:

Experiments

For each heuristic, determine experimentally the "hardest" Blocks World problem that it can solve in one minute or less on your computer. Note that the planner may well crash from inadequate memory before it reaches the one-minute mark.

For the two other domains, determine how long it takes for each heuristic to solve each of the three problems you created.

Note: If your planner can solve all of the regular Blocks World problems, some extra-hard problems are available in the blocks2 directory.

For each experiment you run, record:

Paper

When you are finished with your experiments, you will write a short paper summarizing your findings. Include the following details in your paper:

Grading criteria

AchievementPoints
Passes all tests in PlanGraphTest4
Goal-counting heuristic works3
Plan graph heuristic works6
Robot delivery domain created, with 3 problems4
User-devised domain created, with 3 problems4
Final user-chosen heuristic works4
Ran experiments to determine for each heuristic the
hardest Blocks World problem solvable in one minute or less
10
Ran experiments to assess performance for each heuristic
for the robot delivery domain
5
Ran experiments to assess performance for each heuristic
for the third domain
5
Paper describes each of the three heuristics implemented5
Paper reports all experimental data4
Paper discusses the merits of the heuristics relative
to breadth-first search and each other
4
Paper analyzes how the heuristics are affected in different
ways by different domains
4
Paper discusses the degree to which the results matched expectations4
Paper discusses the scenarios in which planning is
preferable to Q-learning for action selection, as well
as when Q-learning would be preferable to planning
4