> Any attempt to disrupt the normal operation of the contest software or the contest servers will result in the immediate involvement of law enforcement officials. Our policy is to always prosecute.
I get that people shouldn't be intentionally disrupting the servers, but that sounds like an awful policy.
The contest is sponsored by Google, but is no longer associated with University of Waterloo CS Club (other than several current and former students still helping to organize it). Please don't contact them for anything regarding the contest. :}
Those who have been participating in the beta will certainly have a jump on those starting from scratch. But also it should be noted that some of the basic game mechanics were changed about 3 weeks ago, including the scoring and objective of the game. So it may not be quite as much of an advantage as it first appears.
There was a beta testing period to develop the game engine and ensure that the game was viable (i.e. there isn't a trivial solution, it's interesting to work on, etc.). There have been some fairly significant changes in the objectives from most of the beta, so that should help level the playing field somewhat.
It's regrettable that the beta did last so long; this has to do mostly with the up-and-down nature of the time volunteers had to work on the project (they have school and work).
The one thing that bugs me about the Google AI Challenges is that they do not really encourage using modern AI techniques. It's all about intelligent _developers_ rather than writing intelligent _software_.
I really would like to see a challenge which is all about data: identifying patterns and learning to make predictions – rather than developing yet another heuristic for a minimax algorithm...
I like that these AI Challenges appeal to everyone and rope in large numbers by the reward factor of watching your code fight someone else's to the death.
You're right, though, it's definitely not about writing intelligent software. That type of competition would have a much smaller but probably more intensely academic.
The challenge does not offer disk space for your bot to save data so it has to start from scratch every match (unless you supply it with a lot of offline training data).
There has been talk among the developers of the challenge of offering disk space in on of the future challenges.
An alternative would be to allow bots to connect to an external server maintained by the bot author to get the latest strategy, and dump match history for analysis.
This would be neat to do, but it introduces a number of additional implications. For instance, the scheduler must be considerably more fair in match allocation as this then has a huge impact on bot performance. It might also mean that newbie bots get trounced by more experienced bots so quickly that they don't learn much from the experience.
Not an easy problem, but perhaps a worthwhile one.
If I remember correctly, the last competition there was a team who wrote a bot using genetic programming techniques. So you are definitely not prevented from using those more advanced techniques if you can pull them off.
Food for thought, maybe you could develop an ML program to calculate the optimal heuristic for the basic bot program.
Very cool game spec. One thought: your ants are basically telepathic, so they are able to share information instantly--e.g., the squares they see flow back to your "master bot" which can instantly use this information in the current turn for every other ant. I wonder how much more challenging it would be if you had to build not a "master bot" that controls all ants, but a "bot" that runs for each ant, and they have their own individual inputs and state and can perhaps transmit messages to other ants within a 3 block radius. Maybe they can even lay down pheromones to mark territory... (too much SimAnt as a kid, can you tell?)
Certainly it would be more realistic, and I think even more fun--but maybe a little taxing on the server. But this is run by Google, right? Maybe next year.
The ICFP contest from 2004 [0] was a bit like what you're talking about. Rather than a bot, though, the submission was a description for a state machine that each ant would follow.
When is the contest over? Last time I tried to do one of these things I only had about a week which was not enough time for me to come up with a quality program. Otherwise I would like to compete.
Great to see a game similar to the one I developed some years ago. My game was a multiplayer realtime programming game. The ants were controlled by a uploadable lua code. If you are interessted, feel free to visit and download the sourcecode on http://infon.dividuum.de/
I still think a webservice-based version of these contests would be much more fun. The idea would be to only give the simulator a URL of where your AI is hosted. There would be an expected set of endpoints for the simulator to call and would invoke your service when it was your turn. Perhaps the AI could call services on the simulator as well.
So, instead of having to write your AI in the simulator's language you could choose whatever you want. Another advantage is that you could run your own database to store and query information so that your AI could become more intelligent.
I've been looking for a new side project. Perhaps I've found it.
Stdin/out is used to transfer information from/to the simulator, so any language is possible. The list of languages they support is here: http://aichallenge.org/starter_packages.php
You can also ask the contest organizers to add a compiler/interpreter if anything is missing.
"I still think a webservice-based version of these contests would be much more fun."
The latency of this approach can start to hurt badly. Even a 100ms latency, multiplied across numerous turns, means that games can drag on for quite a while, reducing the number of games played, and reducing the amount of fun had. I recently ran a contest that did in fact call you as a web service, but we had to basically require that you were hosted in the same city to make it work in anything like a fun time scale.
While this is true, it would also mean that more games could be run concurrently as the total computing horsepower would be larger than what the contest can afford to fund. :)
Doing this has some really cool advantage, but also some significant disadvantages. Namely, it gives a large advantage to those with access to powerful computers. Ideally, the contest would be one of "Who can create the best bot?", as opposed to one of "Who can afford/borrow the most computing horsepower?"
After watching a game or two, I can tell that ants should always travel two by two for warmonging. When two ants (walking together on the same front) encounter a single ant, the one ant is always destroyed.
:) what happens when your pair encounters three? Or if your pair are walking horizontally next to each other in : formation and are attacked from above by a pair in .. formation? I'm very interested to see the strategies that emerge from this challenge.
It looks like you can only upload code, and you aren't allowed to write any files, which means that your bot can't be self-improving between matches. Which IMHO is half the fun of an AI contest.
From a quick look the success of a strategy is very much dependent on the characteristics of a map. It seems that there are maps where you cannot even reach your opponent (maze_2, if I'm not mistaken.) Such maps punish defensive strategies. On the other hand, open maps with anthills not far from each other probably punish greedy strategies.
Back in the early 1980s I used to play a programming game on the Sharp MZ-80K which involved two programmers writing assembly language programs that would move through the operating system memory in an attempt to reach low memory (where the operating system was not stored) without crashing the machine.
Moving through the operating system meant actually overwriting portions of the operating system as it was running with the running code and the relocating the code to a new location lower down in memory (I've forgotten now but we had some restriction on how far we could jump). Clearly this often meant keeping a cached copy of the memory we were overwriting to put it back, but we could only do that in the operating system itself.
But if you look at the games, some teams create new ants at a faster rate than others, regardless of food consumption. The red ants seem to have an edge on reproduction than others, right from the very beginning of the game.
* A certain person named Prasand is in my Google contacts, along with his phone number.
* Prasand has recently sent email to me.
* Prasand is a reasonably common name in a certain English-speaking country of well over a billion people.
* A common phrase when calling someone is to say "Hi this is <name>" or "Hey this is <name>"
* Usually this comes near the beginning of the call.
* Prasand probably also has a Google account, and Google probably associates his phone number with his account, and thus can look up interesting things about him, such as his name and various words he is likely to use, by using caller ID when he calls into a Google voice number.
* Google knows my first name. Let's call me Natch.
* Speech recognition can be made more accurate if large quantities of data are available with which to build models of how language is used in context.
* Large data sets are available on the internets. Something tells me Google may even have access to large quantities of data already.
* Google even has the capability, if it wants to, to build user-specific language models.
Google, here is your challenge:
Hire an engineering director for your Google Voice team who can manage to figure out how to do the correct transcription of the following five words at the beginning of a phone call: "Hi Natch, this is Prasand."
Hint 1: you should fire whoever did the one you have right now.
> Large data sets are available on the internets. Something tells me Google may even have access to large quantities of data already.
You don't just need audio data, you also need the correct transcriptions to learn anything from it. This reduces the amount of available data significantly. And producing correct transcriptions is time consuming and expensive.
> Any attempt to disrupt the normal operation of the contest software or the contest servers will result in the immediate involvement of law enforcement officials. Our policy is to always prosecute.
I get that people shouldn't be intentionally disrupting the servers, but that sounds like an awful policy.