
Google AI Challenge - fogus
http://csclub.uwaterloo.ca/contest/index.php
======
sdrinf
Due to other engagements, I've decided to pass on in participating this, but
not before my imagination went wild :)

First iteration: this is a schoolbook-example of discreet state spaces; the
moves of each player can be represented by a tree, in which we're searching
for a node with the following properties:

-is it OTHERplayer's move

-without him having further valid steps

Using a breadth-first search, calculating the number of moves forward has a
(both time, and space) complexity of N^3 (you can not move backwards).
Calculating all of the possible steps forward, then selecting consistently
moves, where all possible end-state is a winning state would yield a
mathematically guaranteed always-win robot (to the extent the table's
configuration allows for).

This is feasible for several of the built-in test maps (the ones without nasty
combinatorial explosions), as well as in endgames.

Working from this one backwards, see how much space you can fill for each
player at a given step! If fill(a) != fill(b) then one of the players has been
cut off; and the one with larger space wins.

This should give you a good head start; of course, you still need to figure
out a good heuristics, that puts you into a position for a killer state-space
:)

------
andreyf
These kind of collective challenges seem to me the best way to learn
programming. If I had the time/money, I'd love to find a way to monetize a
website dedicated to competitive challenges like this. I'm surprised TopCoder
doesn't sponsor them.

About the problem itself, it seems solvable in a way that a good algorithm
will never lose. Or am I off in my intuition?

~~~
amackera
I'm having trouble coming up with an evaluation function for game states. How
can you tell which move is advantageous over another?

~~~
andreyf
Deleted, my assumption about an m-by-n board with opponents starting in
opposite squares was wrong [0]. Apparently, there will be arbitrary maps with
what looks like mirrored (not random) starting positions. My intuition would
then be to generate dynamic strategies which attempt to box the opponent. But
that seems easier said than done :)

0\.
[http://csclub.uwaterloo.ca/contest/forums/viewtopic.php?f=10...](http://csclub.uwaterloo.ca/contest/forums/viewtopic.php?f=10&t=29)

------
unignorant
Very cool -- particularly the support for so many languages. I was expecting
them to require java or some such...

Once they make scheme available, I might give it a shot.

------
kaddar
It seems hardly fair that the waterloo students have already submitted their
AI for it while the problem description page (
<http://csclub.uwaterloo.ca/contest/problem_description.php> ) is empty.

~~~
SlyShy
The problem description can be found at the bottom of this page:
<http://csclub.uwaterloo.ca/contest/contest_information.php>

------
janzer
Any idea what size grids the contest is actually using or at least within what
order of magnitude? The graphic used seems to show a square grid with a size
of around 15-20 on a side.

------
Tichy
What is the connection to Google? It sounds more like the University of
Waterloo AI challenge? Still sounds like fun.

~~~
hubb
they won the challenge last year, so they get to hold it i guess

------
_delirium
The red text here makes them seem pretty paranoid about their ability to
sandbox the submissions:
<http://csclub.uwaterloo.ca/contest/contest_information.php>

------
scotty79
As a kid I wrote AI for snake in Atari Basic. I was very proud of it since it
played aggressively and when you moved your snake close to its, it turned to
get in you way when it was sensible.

------
SlyShy
Working on this. The way the Ruby starter pack is written makes it mostly
useless, so I ended up rewriting all the map class. I suppose that's what
happens when they translate Java to Ruby.

~~~
miguelpais
I'm also trying Ruby on Mac OS X and I can't run any java simulations. Always
throws a Bad Version number in .class file exception. I think I have the JDK,
but anyway the most recent version on the Sun's website is not available for
Mac OS X...

------
GFischer
At my university they held Robocode contests
<http://robocode.sourceforge.net/>

It was a fun way to learn programming.

------
ozataman
Waiting eagerly for the Haskell starter kit...

------
phsr
Waiting for the C# kit, but maybe I'll use it as a way to teach myself Python
or Ruby. Seems like a fun exercise!!

~~~
roundsquare
Yeah, I'm going to use this to improve my python skills. The last time I used
python for anything remotely serious was 5 years ago... seems like it might be
a bit dated.

------
roundsquare
Is there a good way to keep track of AI challenges as they come up? Or does HN
seem to capture most of them?

------
Aron
I'm winning this at the moment 57-0-2.

