SwirlyMyself

2009-06-05T18:49:50+00:00

Third place in AI programming contest

My contribution to the programming contest held by the German „FreiesMagazin“ got a third place out of 13 submissions. This is quite good, considering that I only wrote a small wrapper around the generic game-tree Haskell library by Colin Adams, and hardly gave any serious thought into the problem.

All entires are available for download. I have annotated the table containing the results with the line count as given by ohcount:

W D L Points Language Code lines
1. Kroschinsky 904 242 54 2954 Python 589
2. Schulz 858 263 79 2837 Python 544
3. Breitner 837 281 82 2792 Haskell 264
4. Jackermeier 754 306 140 2568 Perl 183
5. Roth 574 338 288 2060 C++ 1731
6. Eitel 567 355 278 2056 Ruby 352
7. Reichel 342 328 530 1354 Python 266
8. Zimmermann 303 400 497 1309 Java 1070
9. Apensiv 190 353 657 923 Perl 410
10. Maraun 150 300 750 750 C++ 690
11. Golemo 131 319 750 712 Python 104
12. Ziegelwanger 120 337 743 697 C++ 868
13. Fuest 32 254 914 350 Python 645

Note that the line count for my haskell program includes the game-tree library, which I bundled in my submission. Without it, it’s 156 lines of code I had to write, which is second best in the code golf category.

If you look at the timing statistics, you will see that my program took the longest. When the contest was started, the timelimit was one minute per round – which I of course tried to use as much as possibly, by increasing the search tree depth. Later into the contest, the rules were changed to limit it to one minute for a whole game, and that long-running programs will get points deducted. I did some minor changes based on a profiling run, but did otherwise not care too much about performance. I would have tried to improve the runtime by using Haskell’s good ability for parallelization. But when I asked on what kind of machine the code will be run, but they would not tell me. They said that this is a hobby programmer’s contest where allowing for parallelization were not fair, so I did not work in that direction.

All in all it was a positive experience, showing of Haskell’s qualities as a language that you can quickly get good results with.

Comments

First of all, congratulations! :D

Back when I was studying at the IT University we had an AI course where our primary language of choice was Erlang. It is pretty amazing what kind of results you can get with a fairly small amount of code.

Looking at the table I am somewhat surprised to see so many of the submissions written in Python (not that I'm complaining, Python is awesome ;))
#1 wildcard (Homepage) am 2009-06-06T10:54:38+00:00
congrats from me, too!
Aber das du immernoch so an Haskell hängst \*kopfschüttel\*

Gibts nen Informatik-Nobelpreis? Dann sicher ich mir lieber mal bald dein Autogramm ;-)
#2 keke am 2009-06-07T22:39:44+00:00
Nice contest,

Since you used only some hours to write it it's a great honor to haskell and your abilities to code.

Onto the next contest where we will meet.
#3 Schulz am 2009-06-08T14:26:25+00:00

Have something to say? You can post a comment by sending an e-Mail to me at <mail@joachim-breitner.de>, and I will include it here.