After the 2001 Computer Octi tournament, each of the participants answered some questions about their bot. The official tournament report is also available.
> 1. What is the name of your program? Haskellbot > 2. What programming language is it written in? Haskell > 3. Describe (in whatever detail you'd prefer) the > algorithms you > use (e.g., alpha beta, negascout, search > optimizations, etc.) Alpha beta was the algorithm used for the tourney. Other non-released versions used various combinations of neural networks, tapering, and memoizing. > 4. If your program used search, approximately how > many game > positions could it examine per second? (To the > nearest thousand > is fine.) It is kind of hard to count leaves with haskell, but if it took about ten seconds per move looking four levels ahead, with an average branching factor of 20 moves, that would be (20 branches per move) ^ (4 moves ahead) / (10 seconds) = 16000 moves per second. > 5. Are there interesting features for evaluating > positions that > you've used or considered? not really. There was a version which was considerably faster that used a c function as an evaluator but this didn't make it into the release. I experimented with training a neural network with genetic algorithms but never produced a playable version doing this. > 6. Are there are any other features of your program > that > might interest others? If so, please share. Nothing really special except the language it was written in. I would be willing to bet that my code is significantly smaller than anyone elses ;)
> 1. What is the name of your program? None > 2. What programming language is it written in? C++ > 3. Describe (in whatever detail you'd prefer) the algorithms you > use (e.g., alpha beta, negascout, search optimizations, etc.) Two algorithms were submitted, the more complex one was not used in the tournament since there were some bugs. 1. alphabeta 2. alphabeta with hashtable and speculative search > 4. If your program used search, approximately how many game > positions could it examine per second? (To the nearest thousand > is fine.) after prunning, 460 node expansions per sec 3173 evaluations per sec > 5. Are there interesting features for evaluating positions that > you've used or considered? No major changes from previous submission, ones used: material, mobility, threat, goal distance Note: The evaluation function is too complex and slow. > 6. Are there are any other features of your program that > might interest others? If so, please share. Not yet. A reference implementation is planned to be released later for public written in C. The purpose is to aide prgrammers in writing OCTI AI robots. The proposed package will supply networking, and DLL linkage to my GUI program. Perhaps other language bindings will also be implemented: C++ and Java?
> 1. What is the name of your program? > Casbah > 2. What programming language is it written in? > > 3. Describe (in whatever detail you'd prefer) the algorithms you > use (e.g., alpha beta, negascout, search optimizations, etc.) > Alpha-beta. Move ordering using history heuristic. > 4. If your program used search, approximately how many game > positions could it examine per second? (To the nearest thousand > is fine.) > On the statlab computers, I broke 5000 positions per sec (this counted both interior and leaf nodes). > 5. Are there interesting features for evaluating positions that > you've used or considered? > The OfK bot sums a weight for each square that a player occupies. Squares closer to the opponent's Octi squares have more weight. A bonus is given for having a pod adjacent to an enemy Octi square (it's a one square game). Bonus is also given for adjacent pods. > 6. Are there are any other features of your program that > might interest others? If so, please share. > None except those previously listed.
> 1. What is the name of your program? I never named it. > 2. What programming language is it written in? C++ > 3. Describe (in whatever detail you'd prefer) the algorithms you > use (e.g., alpha beta, negascout, search optimizations, etc.) AlphaBeta & NegaScout for the search. Also used iterative deepening, sorting the first ply moves each successive search. > 4. If your program used search, approximately how many game > positions could it examine per second? (To the nearest thousand > is fine.) Around 600-700 thousand on a Pentium 166. I don't have any accurate numbers for faster computers. > 5. Are there interesting features for evaluating positions that > you've used or considered? Nope. > 6. Are there are any other features of your program that > might interest others? If so, please share. Only that I kept the eval function pretty simple and hoped that it would be able to reach a high enough ply to make up for it.
Go back to Computer Octi tournaments.
By Charles Sutton, at casutton@cs.umass.edu. Last modified 10 / 31 / 01.