Rules-Unknown Artificial Intelligence Competition
OOglyDOOde writes: "This link points to a competition being hosted by a company that makes research on artificial intelligence. The task? Build a program that can play a number of games whose rules are totally unknown -- and earn the best score while competing against various opponents. Your program is told the possible choices available, when it should make a move, what did the opponent do; and what was your score for the last turn. There are no entry fees yet there is a cash prize. Submissions can be done in various languages, or in Linux or Windows binaries." This is certainly one of the odder ones I've ever seen, but has interesting prizes (trip to Israel) and rules (fairly broad entry categories).
I took a statistics course at BYU. My professor, Dr. Tolley, with the help of his "31337" kids, built an AI system that played Quake. Each possible move was designated as a random variable, and each random variable was weighted according to its success in keeping the player alive and killing the other player. The code would randomly try different actions with the game interface (walk forward, fire weapon, duck, etc.), and then register what worked and what didn't. At first, the computer-controlled player would just stand there. After getting blown apart a few times, it would start jumping to the left, and then ducking, etc. Eventually, it "learned" that it had its greatest chance for survival if it immediately ducked and went behind a box. It then learned to wait until someone walked around a corner, and then it would fire its weapon in the direction of the corner. Finally, it learned that coordinates of the game contained the "respawning" positions, and upon fragging the opponent, it would run to the next respawning point and wait until the player showed up there, blowing him away upon entry into the game.
This code could be similarly adapted to any game, inasmuch as the code can register a table with all the possible moves provided by the interface. It doesn't even have to know what those moves do; it only needs to know if, by doing certain moves according the "state" (or the attributes) of the game, it gains points (or stays alive or whatever) or loses points. The moves are then given a distribution weighting factor. Then, the algorithm just needs to approximate the game state with the registered table entries, determine which moves have the highest "survival rate" based on the current game attributes, and then perform those moves.
Depending on the game, it may take a long time before the random variable distribution table gets populated to the point where the algorithm can make "intelligent" decisions, but it works nonetheless.
An unjust law is no law at all. - St. Augustine
It's called Calvinball, and it's the sport of kings.
---- El diablo esta en mis pantalones! Mire, mire!
Of course, there may be some connection between the prize and the game ("win a conflict where you've got no clue of the rules", that pretty much sums up the problems of both parties in the Middle East).
There is absolutely no reason to panic.
The entries had to be given in the form of a subroutine that played the next move (given the current score and the history). The judges were linking two of them together and run the resulting binary.
Of course, there have been an entry that looked in the stack and modified the scores.
But the greatest was one (IMHO) that fork()ed and returned one possible response in each of its child. At next turn, the one that did not make the point (ie: had top score), exit()ed.
Mind-blowing. Found the link
That program was the "Fork Bot"
Cheers,
--fred
They are playing the STOCK MARKET. They buy stocks according to the various submissions, gradually weed out the bad performers, and end up making a pile, with which they can pay the prize and still have a tidy profit.
Wish I'd thought of it!
Infuriate left and right