Share Site Map Contact us Home Page
Home > LMC 1 > LMC1 Detailed Info


LMC1 Quick Overview

LMC1 Announcement

LMC1 Detailed Info

LMC1 Official Rules

LMC1 Interface Specs

LMC1 Testing Zone

Enter LMC1

LMC1 FAQ

Summary and Conclusions
LMC1 Detailed Info
  Printable version
Ai Discussion Boards  Idea Exchange
Detailed information for the Learning Machine Challenge
The Learning Machine Challenge consists of a round-robin tournament, in which all the submitted programs will play each other in a number of different games. The games won't be revealed to you, so you will need to come up with a program which can learn to play an unknown game against an unknown opponent. A quick overview of the challenge is available. The Learning Machine Challenge was announced at The Seventeenth International Joint Conference on Artificial Intelligence, and the text of that announcement is also available.

How does it work?
All programs entered into the Learning Machine Challenge are required to conform to a very simple interface. This interface is console-based, freeing you to use your programming language of choice. In fact, you are free to submit a binary executable if you desire: there is no need for you to reveal your source code to us! This interface allows an external judge program to moderate head-to-head games between two programs easily. A complete specification of the interface is available.

When a new game begins, the judge program will inform each player program of the set of possible moves in the game. Each move is represented as a string, and the set will contain between two and eighty strings. For example, one game may have only three valid moves: "rock", "paper" and "scissors". Other games may have more, such as the twenty-six uppercase alphabetic characters, or the ten digits.

Once the game is underway, one of three things may happen. Your program may observe a move on its input channel, it may be asked to generate a move on its output channel, or it may be informed of its score. These things may happen in any order, so, for example, your program may observe three moves in a row, be asked to generate two moves, observe one more move, and then be told its score. This sequence will make sense in the context of the game, which, of course, is only known to the judge program. Furthermore, moves which your program observes on its input channel may or may not have been generated by an opponent.

A good example game is RoShamBo, or Rock-Paper-Scissors. After being informed that the set of possible moves consists of the three strings "rock", "paper" and "scissors", the judge program will ask your program to generate a move. Unbeknownst to your program, the judge program will simultaneously ask its opponent to do the same. Once both programs have made their moves, the judge program will send each program the move of their opponent as input. It will then calculate the winner using the algorithm "paper beats rock, rock beats scissors and scissors beats paper", with a draw occurring if each program makes the same move. The score will then be sent to each program as a number between -1 and 1 (with 0 representing a draw). One game will typically consist of many thousands of rounds, giving your program the opportunity to learn from its experience. Each program should, of course, strive to get the highest score possible.

A round-robin tournament will be held to select the winner of the Learning Machine Challenge. All combinations of players will take part in all games, of which there will be between six and twelve. Some of the games may be solitary, but this shouldn't effect the design of your program (it simply changes the source of the moves it observes on its input channel). Programs will be ranked by their total score in the tournament, and the program with the highest score will be declared the winner.

Why are we sponsoring it?
Ai Research is a private research company dedicated to achieving the "holy grail" of artificial intelligence: a computer program which has the ability to learn and use a natural language such as English. Our philosophy is that this is achievable using general learning mechanisms, and we embrace the