Claudio Scheer / heuristic-plans · GitLab

archived 16 Jan 2026 10:33:07 UTC
Skip to content
H

heuristic-plans

Project ID: 19
Claudio Scheer's avatar
Claudio Scheer authored
c0404f1c
History

Assignment 1: Planning using Heuristic Search

Base code for the heuristic planning assignment
Felipe Meneguzzi
Mauricio Magnaguagno (PhD Student)
Leonardo Rosa Amado (PhD Student)
Computer Science (4646A-4):
  • Assigned: 28 March
  • Due: 30 April
Computer Engineering (4621A-4):
  • Assigned: 26 March
  • Due: 28 April

Assignment Overview

The goal of this work is to implement the core functions of an automated planner. You will implement three main functions in this assignment:
  • Implement the Max-Cost heuristic function.
  • Implement a function capable of validating a plan given a domain and a problem.
  • Finally, implement the heuristic search A*
After implementing the required functions, you must write a 2-page paper. The entire package must be delivered using GitHub, where your implemented functions must be contained in this Jupyter Notebook, and the paper as a separate pdf file committed in the same Github repository (the template is in the paper folder).

Experimentation

Grading

In order to properly evaluate your work and thought process, you will write a 2-page report in the AAAI two-column format explaining your encoding and experiments. These guidelines are to be followed exactly. Reports that are less than two pages of actual content, or not in format will receive 0 marks for the report criterion. This report will be included in the deliverables of the assignment. The formatting instructions are available at ShareLatex (AAAI Press). The report must have the following sections:
  • An introduction with your understanding of the problem domain, outlining the remainder of the paper;
  • Three sections explaining each part of your implementation (search, heuristic, and validator).
  • One experimentation section where you measure the performance of the planner using your action formalisation for each of the domains, on multiple problems.
  • One conclusion section, where you will summarise your experience in encoding planning domains and discuss the performance of the planner, and any limitations encountered in solving the problems you encoded.
Grading will consider elements of your encoding, experimentation and reporting of the work done. The criteria, as well as their weight in the final grade is as follows:
  • Implementation (70%):
    • Heuristic function (20%);
    • Validator (20%);
    • Heuristic search (30%):
      • Correctness and optimality (20%); and
      • Runtime efficiency (10%).
  • Overall report readability (20%) — how accessible and coherent your explanation of your implementation is;
  • Code readability (10%).

Python Instructions

In LAPRO you can just run (for Linux):
jupyter notebook
and for Windows you should execute Jupyter Notebook from the start menu. Open the given URL in a browser, and navigate to the folder of the cloned repository of this assignment.
Conda is required to run this assignment, and will install Jupyter for you. The following sequence of steps creates a virtual environment and installs the required dependencies for Python 3.6:
conda create -n py36_heu python=3.6
conda activate py36_heu #For windows: conda activate py36_heu
pip install ipykernel jupyterlab matplotlib nose
python -m ipykernel install --name py36_heu --user

Collaboration Policy

You must work on this project individually. You are free to discuss high-level design issues with the people in your class, but every aspect of your actual formalisation must be entirely your own work. Furthermore, there can be no textual similarities in the reports generated by each group. Plagiarism, no matter the degree, will result in forfeiture of the entire grade of this assignment.
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word

mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1