Pac-Man
Pac-Man

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.
  • Students implement depth-first, breadth-first, uniform cost, and A* search algorithms. These algorithms are used to solve navigation problems in the Pacman world.
  • 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.