This is my entry for the 2011 Google AI Challenge in which I reimplemented the ants-protocol layer to solve the problem of friendly ants stepping on each other at a low level. In the end I made it to the 77th percentile.
If you have the official tools you can play a game with one of my bots via MyBot.py or one of the decider-specific bot*.py files.
$ python2 botBrownian.pymoves each ant randomly. Since ants cannot step on eachother, they diffuse outward from the anthills.
$ python2 botNavigator.pyassigns each idle ant to a goal. Ants' goals persist between turns, and unassigned ants diffuse randomly.
$ python2 botKMeans.pyfinds k goals and assigns ants to each of k clusters. Goals have associated too close and too far radii, so ants behave differently for different goals.
$ python2 botHedge.pyruns 13 simplistic strategies and probabalistically applies them. Then it judges ant behavior based on who collected food without dying and learns to trust or distrust each of the 13 strategies. See the *metadecider** directory.*
- These bots were part of a project for my Fall 2011 machine learning class.
- I wrote a report which explains how I attempted to adapt a hedge learner to the ants competition.
- You can watch games my bots played in the competition.
Requires Python 2.7