$29
Project Material Courtesy: CS188 Berkeley course projects http: // ai. berkeley. edu
In this project, you will design Pacman agents that use sensors to locate and eat invisible ghosts. You’ll advance from locating single, stationary ghosts to hunting packs of multiple moving ghosts with ruthless efficiency.
As in previous projects, this project includes an autograder for you to grade your answers on your machine. This can be run with the command:
python autograder.py
The code for this project consists of several Python files, some of which you will need to read and understand in order to complete the assignment, and some of which you can ignore. Download search.zip from here http://ai.berkeley.edu/tracking.html which will contain all the code and supporting files.
1 Files to edit
For this project you will need to edit the following files
• bustersAgents.py: Agents for playing the Ghostbusters variant of Pacman.
• inference.py: Code for tracking ghosts over time using their sounds.
2 Ghostbusters and Bayes Nets (100 pts)
Your primary task in this project is to implement inference to track the ghosts. For the keyboard based game above, a crude form of inference was implemented for you by de-fault: all squares in which a ghost could possibly be are shaded by the color of the ghost. Naturally, we want a better estimate of the ghost’s position. Fortunately, Bayes’ Nets pro-vide us with powerful tools for making the most of the information we have. Throughout the rest of this project, you will implement algorithms for performing both exact and ap-proximate inference using Bayes’ Nets.
For all the problem titles described below, please refer to the link http://ai.berkeley. edu/tracking.html for the problem description and what is expected of each problem. As always autograder has different test cases against which you can run your program to check the correctness. Please ensure your code is readable and use comments in your code to make it more clear for the person reading your code.
You will be graded on your code implementation for the following questions:
1
1. Exact Inference Observation (12 pts)
2. Exact Inference with Time Elapse (12 pts)
3. Exact Inference Full Test (12 pts)
4. Approximate Inference Observation (12 pts)
5. Approximate Inference with Time Elapse (16 pts)
6. Joint Particle Filter Observation (16 pts)
7. Joint Particle Filter with Time Elapse (16 pts)
• Self Analysis (5 pts)
1. What was the hardest part of the assignment for you?
2. What was the easiest part of the assignment for you?
3. What problem(s) helped further your understanding of the course material?
4. Did you feel any problems were tedious and not helpful to your understanding of the material?
5. What other feedback do you have about this homework?
4 Evaluation
Your code will be autograded for technical correctness. Please do not change the names of any provided functions or classes within the code, or you will wreak havoc on the autograder. If your code passes all the test cases in the autograder you would receive full points for the implementation.
However even if your code does not necessarily pass all the test cases, we would evaluate your code and then award you partial points accordingly. In such cases it would be even more beneficial if you could give a short description of what you tried and where you had failed and that would help us in giving you better points.
• Submission Instructions
◦ For the final submission you would be turning in a zipped folder of the python files and a PDF document containing your responses to questions from previous sections.
◦ Please ensure all the submissions are done through canvas. Please do not email the instructor or the TA’s with your submission. Submissions made via email would not
be considered for grading.
2
• Naming: Your upload should be named in the format huidi-Projhnumberi.zip where
huidi is your Utah uid and hnumberi is the Project number. Ex: u0006300-Proj0.pdf
• For this project fill in portions of the files to edit. Once you have completed the code, zip your entire project folder, rename it as per the conventions stated above and submit it via canvas. Do not delete the other files present in the .zip file or change the names of any of those files in the project directory.
• Written Answers: Place all your written answers and responses to questions in ”Self Analysis” in a single PDF document. This should be clearly named in the format huidi-Projhnumberi-answers.pdf, where huidi is your Utah uid and hnumberi is the Project number. Ex: u0006300-Proj0-answers.pdf Please make sure to write your name at the top of the document!
• Group Submissions: If you haven’t done this already for previous projects and if you are working in groups, You need to sign up to one of the project groups in the people page in canvas and under the groups tab. Please sign up to one of the ”project groups” and ensure that your group member is signed up to the same group. This ensures that submissions from one of the group members counts for the entire group. Follow the file naming convention for the group member upload-ing the submission. i.e. do not mention the uid of your partner on the file name but mention your partner’s details inside your answers.pdf .
Note: Each group is limited to maximum 2 members, so if a group is taken already please choose the next free group.
3