The Pac-Man Projects
About the projects
The Pac-Man projects were developed for UC Berkeley’s introductory artificial intelligence course, CS 188. They apply an array of AI techniques to playing Pac-Man. They teach foundational AI concepts, such as informed state-space search, probabilistic inference, and reinforcement learning. These concepts underly real-world application areas such as natural language processing, computer vision, and robotics.
Why did I work on these projects?
The projects allowed me to visualize the results of the techniques they implement. They also contain code examples and clear directions, but do not force me to wade through undue amounts of scaffolding. Finally, Pac-Man provides a challenging problem environment that demands creative solutions; real-world AI problems are challenging, and Pac-Man is too.
Project 1: Search
I implemented depth-first, breadth-first, uniform cost, and A* search algorithms. These algorithms are used to solve navigation and traveling salesman problems in the Pacman world.
Project 2: Multi-Agent Search
Classic Pacman is modeled as both an adversarial and a stochastic search problem. I implemented multiagent minimax and expectimax algorithms, as well as designed evaluation functions.
Project 3: Reinforcement Learning
I implemented value iteration and Q-learning. And tested the agents first on Gridworld (from class), then applied them to a simulated robot controller (Crawler) and Pacman.
Project 4: Machine Learning
This project was an introduction to Machine Learning problems like digit classification, language identification, and algorithms like perceptron, non-linear regression.