110 likes | 248 Views
CS 4701 - AI Practicum. Fall 2011. Robot Downey Jr. Will Kiffer Joey Staehle Andrew Bunyea. Problem : Modified Chinese Checkers. 2 Players Arbitrary Board Size Arbitrary Obstacles. Background Reading. Wikipedia Minimax / Expectimax algorithms and Alpha Beta Pruning
E N D
CS 4701 - AI Practicum Fall 2011
Robot Downey Jr Will Kiffer Joey Staehle Andrew Bunyea
Problem : Modified Chinese Checkers • 2 Players • Arbitrary Board Size • Arbitrary Obstacles
Background Reading • Wikipedia • Minimax / Expectimax algorithms and Alpha Beta Pruning • Russell Norvig 5.2 - 5.5 • K-nearest neighbors • "Machine Learning" by Tom Mitchell • Utility Functions and Decision Networks • Russel Norvig 16.3 - 16.5 • Neural Nets • Russell Norvig 18.7
General Approach • Generate a list of optimal beginning moves, execute the best possible beginning move available given the board. • Identify factors that determine what makes a move 'good' • E.g. total distance between existing pieces, number of possible jumps (both opponents' and own), etc. • Use machine learning to determine the proper weights of these factors in move selection, creating an optimal Utility Function for moves • Phase 1: Determine utility function for standard chinese checkers • Phase 2: Tweak the function for board permutations • Decide which utility function to use at game time based on the board layout
Where's the AI? • Deciding which move to make: • Minimax algorithm with alpha beta pruning • Evaluating each move: • Finding a proper utility function from decision making techniques and reinforcement learning • Deciding which utility function to use: • Some form of pattern recognition, possibly k-nearest neighbors
System Architecture and Work Plan Main Components: • Board and Move Representation • Debugging GUI • Reading data files (initial board input along with any data we need to store) • Beginning/End game move patterns • Minimax algorithm with alpha beta pruning • Evaluation Function / Learning algorithms • Pattern recognition for identifying which previously played board configurations the current board is closest too
I/O Specification • Std in / Std out communication with the server/GUI • Additional output in a 'debug' mode to feed a more descriptive GUI • E.g. Alternate moves and their respective evaluation weights
Data Sources • Learning from various sources. • Playing against itself • Playing against existing chinese checkers AI • Testing on various board configurations, with blockages and without • Testing against human players (sanity check)
Evaluation Plans • Testing against humans • Testing against previous iterations • Testing against TA bots • Code some rough heuristic-based bots to test against/train against
Schedule Week 1 - Background Reading, Board/Move representation, and begin working on debugging GUI Week 2 - What makes a move? Address this question in depth to uncover what factors should be included in the initial utility function