I assumed I wouldn’t have time to do the number of local searches that xathis did, and I never tested this assumption.
For the combat code, I wrote both minimax and probabalistic algorithms; both worked ok, but I never tried to do any branch pruning, so the minimax code only ran when small numbers of ants were fighting. I should have tried some branch pruning. I spent too much time writing the combat code for the benefit it gave my bot.
My biggest mistake, or perhaps the unifying theme of my mistakes, is that I spent way too much time searching for the Deep Underlying Principle; instead of just writing code that directly did what I wanted, I was trying to write code that produced the behavior I wanted automatically as emergent behavior.
I spent too much time trying to fine-tune doomed approaches (of course, that is at least partly hindsight bias). I should have spent more time exploring completely different approaches.
One thing I did do well was an algorithm for listing all local combats, so that my fighting code could run on small(er) numbers of ants. (xathis did something similar.) I’m also not unhappy with my BFS algorithms; they ran quickly and I should have thought to use them more heavily.
As far as working with an “official” less wrong team, I didn’t feel sufficiently confident in my abilities to want to represent LW officially (and I’m not updating that belief much because I still think it’s quite likely that lots of people here could have done better). I think if there is interest for next time, we should at least figure out a method of working together beforehand.
I’m not sure what else I should say, ask questions if you have them.
As promised, a few more postmortem thoughts.
I made a number of mistakes while writing my bot. (I’m about to compare my approach with that of the winner, xathis, so you might want to read his write up first: http://www.xathis.com/posts/ai-challenge-2011-ants.html)
I assumed I wouldn’t have time to do the number of local searches that xathis did, and I never tested this assumption.
For the combat code, I wrote both minimax and probabalistic algorithms; both worked ok, but I never tried to do any branch pruning, so the minimax code only ran when small numbers of ants were fighting. I should have tried some branch pruning. I spent too much time writing the combat code for the benefit it gave my bot.
My biggest mistake, or perhaps the unifying theme of my mistakes, is that I spent way too much time searching for the Deep Underlying Principle; instead of just writing code that directly did what I wanted, I was trying to write code that produced the behavior I wanted automatically as emergent behavior.
I spent too much time trying to fine-tune doomed approaches (of course, that is at least partly hindsight bias). I should have spent more time exploring completely different approaches.
One thing I did do well was an algorithm for listing all local combats, so that my fighting code could run on small(er) numbers of ants. (xathis did something similar.) I’m also not unhappy with my BFS algorithms; they ran quickly and I should have thought to use them more heavily.
As far as working with an “official” less wrong team, I didn’t feel sufficiently confident in my abilities to want to represent LW officially (and I’m not updating that belief much because I still think it’s quite likely that lots of people here could have done better). I think if there is interest for next time, we should at least figure out a method of working together beforehand.
I’m not sure what else I should say, ask questions if you have them.