Pacman with Reinforcement Learning

Forking a Pacman Game to merge with AI Algorithms

My contributions (505 lines of code):

Sprint 1: Basic searching algorithms merged into Pacman | 100 lines of code

  • BFS, DFS, A*, UCS, and helper function: 35 lines of code total
  • Touch all corners heuristic challenge: 63 lines of code
  • Eat the closest food pellet challenge: 2 lines of code + BFS

Sprint 2: (Part I) Multi-agent search using heuristics and minimax | 81 lines of code

  • Reflexive Agent (eat food, avoid ghosts): 56 lines of code
  • Minimax strategy for Pacman and any number of ghosts: 25 lines of code

Sprint 2: (Part II) Multi-agent search using alpha-beta Pruning, expectimax, and heuristics | 123 lines of code

  • Alpha-Beta Pruning: 39 lines of code
  • Expectimax: 32 lines of code
  • Improved Heuristics: 52 lines of code

Sprint 3: Advanced strategies | 201 lines of code

  • Value iteration (offline planner): 40 lines of code
  • Asynchronous value iteration (offline planner): 8 lines of code + value iteration
  • Prioritized sweeping value iteration (offline planner): 51 lines of code + asynchronous value iteration
  • Q-Learning (online): 84 lines of code
  • Epsilon Greedy Q-Learning (partially random MDP, online): 5 lines of code + Q-Learning
  • Approximate Q-Learning (weighting states, online): 13 lines of code + Q-Learning