/pacman-ai

The Pac-Man projects cover foundational AI concepts, such as informed state-space search, probabilistic inference, and reinforcement learning

Primary LanguagePython

The PacMan 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. These projects, however, don't focus on building AI for video games. Instead, 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.

Motivation

I will be working on the PacMan projects this semester as I am auditing UT's course on artificial intelligence, CS 343, taught by Dr. Scott Niekum

Projects Overview

Search

Implementation of 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.

Multi-Agent Search

Classic PacMan is modeled as both an adversarial and a stochastic search problem. Here, multiagent minimax and expectimax algorithms, as well as designing evaluation functions are implemented.

Reinforcement Learning

Implementation model-based and model-free reinforcement learning algorithms, applied to the AIMA textbook's Gridworld, PacMan, and a simulated crawling robot.

Ghostbusters

Probabilistic inference in a hidden Markov model tracks the movement of hidden ghosts in the PacMan world. Exact inference using the forward algorithm and approximate inference via particle filters is implemented.

Classification

Implementation of standard machine learning classification algorithms using Naive Bayes, Perceptron, and MIRA models to classify digits. A behavioral cloning PacMan agent is also implemented.

Contest: Pacman Capture the Flag

Creation of strategies for a team of two agents to play a multi-player capture-the-flag variant of PacMan.