The Pac-Man Projects
Overview
The Pac-Man projects apply an array of AI techniques to playing Pac-Man. These projects are desgined to teach foundational AI concepts, such as informed state-space search, probabilistic inference, and reinforcement learning.
Released Projects
P0: UNIX/Python Tutorial
- This short UNIX/Python tutorial introduces students to the Python programming language and the UNIX environment.
P1: Search
- Students implement depth-first, breadth-first, uniform cost, and A* search algorithms. These algorithms are used to solve navigation problems in the Pacman world.
P2: Multi-Agent Search
- Classic Pacman is modeled as both an adversarial and a stochastic search problem. Students implement multiagent minimax and expectimax algorithms, as well as designing evaluation functions.
P3: Reinforcement Learning
- Students implement model-based and model-free reinforcement learning algorithms, applied to the AIMA textbook’s Gridworld, Pacman, and a simulated crawling robot.
P4: Ghostbusters
- Probabilistic inference in a hidden Markov model tracks the movement of hidden ghosts in the Pacman world. Students implement exact inference using the forward algorithm and approximate inference via particle filters.
P5: Machine Learning
- Students implement the perceptron algorithm and neural network models, and apply the models to several tasks including digit classification.
Contest: Multi-Agent Adversarial Pacman
Technical Notes
The Pac-Man projects are written in pure Python 3.6 and do not depend on any packages external to a standard Python distribution.
Credits
The Pacman AI projects were developed at UC Berkeley. The core projects and autograders were primarily created by John DeNero and Dan Klein. Student side autograding was added by Brad Miller, Nick Hay, and Pieter Abbeel. We thank them for their permission to use it as a part of this course.