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
After reading the guidelines to the contest, I figured I'd offer the following models/design specs for those interested in participating:
healyourchurchwebsite.com - WWJB?
But with a game as complex as chess, for example, there is no mathematical way that the program could gather enough information over the course of a single game to make that kind of assessment.
Lose a queen and you never know what it is to not have lost a queen, for example.
Kevin Fox
A fantastic game for experienced players, but newcomers can sometimes be confused at the start.
It's played on the stations of the London Underground network. For example, I could start with Albright's Opening, *Regent Street*.
Anyone want to take me on?
Try reading the post.
Imagine in chess where you scrifice a pawn to gain position - in that case your "score" that turn would be negative yet you would be able to gain a higher overall score later as a result. With only knowledge of the "score" for that turn, how can you decide when a sacrificial move might leave you better off?
"There is more worth loving than we have strength to love." - Brian Jay Stanley
The first question that popped into my head was "How do we know what the opponents move means?"
I was under the misconception that at each turn in the game, the judge will inform the player of all possible moves (as in chess, checkers, or the like) but looking at the specification, it seems that the moves are detailed at the outset of the game, and then are available to each player at each stage in the game.
now the odd thing to me is the measure of 'state' in the game. Is the score that's returned after each move the current cumulative score, the score for that move alone, or what? Also, what is the goal of the game? It would be short-sighted to assume it's to amass the highest score. In effect, the score is just another input variable, along with the opponents move, which may or may not be useful for judging what is a good move or a bad move.
For example, if you were trying to make an algorithm to solve the A8 puzzle (the 'sliding tile puzzle' with 15 tiles and 16 spots), and the computer judged your score by totalling up manhattan distances to the goal state, that may or may not be a fair scale of how many moves away you are from winning in an ideal case.
The system is still underspecified. Without knowing what 'score' means, and whether it is an estimate or a deterministic function, then the project is pretty much a game of luck, and coding is not an effort of skill.
Kevin Fox
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.
I wonder what will happen if you let one of these entries loose on slashdot? Would you get intelligent posts, or intelligent trolls? Imagine such a program accumulating more karma than Jon Katz. That would be a boost :)
But seriously. How can one consider this contest artificial intelligence? It's not like the entries have to be intelligent. They just have to be logical and well designed, and good at pattern recognition.
Look at chess as an example. This is like having a chess computer that has to learn the rules. Compared to playing chess (which is computable), learning the moves is relatively easy.
the pun is mightier than the sword
Google, raging, or lycos?
I thought it was called "presidential election".
I do not have a signature
What, me worry?
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
Sounds like an amusing thing to watch while it grows...
What we call folk wisdom is often no more than a kind of expedient stupidity.-Edward Abbey
Of course, playing as "badly as they can" implies the same knowledge of the game as playing well, if you want to do better than random chance. To play badly is every much as difficult an AI problem as playing well...
I think the idea is to make an attemp at "meta-learning". In all of the games that you've mentioned, the programmer knows the rules in advance, and the challenge is to see how best to build a system that navigates through those rules. In this contest, the idea is to see how you can capture the "programmers' thinking".
I second that. This is a reference to a Koan found in 'Escher, Goedel, Bach, an Eternal Golden Braid' by innimitable Douglas Hoffsteder/
Otherwise known as the seminal work of AI philosophy.
This is truly on topic, moreso that the un-enlightened could ever know. ask yourelf: Are my mod points the mod points of the un-enlightened? if no, please mod up the parent's parent as +1, Insightful.
thankyou.
I mean how many real world CS people studying AI reads Slashdot?
Doing that and dumb enough to waste his time with this. Count me one.
--exa--
If this is a 2+ player competition and they're the right sorts of games (like the rock-paper-scissors game that it mentioned), whoever wins it might have to figure out a way to consistently beat the tit-for-tat algorithm.
Tit-for-tat is one of the dead simplest game playing algorithms, and collectively it's one of the most successful.
It's based on the rule of "always do what the other player did last move". Under most circumstances it's impossible for it to actually win a game because the other player is always one step ahead. But its strength is in winning tournaments.
While it always loses, it never loses by much. This is different from other algorithms which usually have about as many weaknesses as they have strengths and will usually flunk out in at least some trials.
If someone can beat it consistently in a tournament situation, they really will have accomplished something in AI. Of course, this whole thing depends on exactly how the rules are structured, the scoring system and the information available to the program.
1. If I win, do I get a trip to the US? (see email address)
2. I wonder whether the winner could visit me.
:-)
After reviewing the challenge rules, I see this challenge as a simple exercise in neural networks coding.
The challenge is so obscure that any entry submitted will have to deploy a very generic NN and a trainer. this basicly means that after enough training any entry would do sufficiently good at any simple game (such as scissors, rock, paper) but playing anything more complex than
that is shooting in the dark. The interface and the rules of the challenge themselves are too obscure.
If there is someone with a code that could win such uncertainty effectively and efficiently, he'd be stupid to submit it for $2000.
Then again I must give a person that can do something extraordinary as that some credit for not doing something that stupid.
Seems to me that since it is a round-robin for all contestants (the site was /.ed, but I saw another post claiming that this was the case), all you have to do is team up with a lot of friends and have them enter fake programs into the contest (i.e cheating).
These programs will start by identifying themselves with an "ID-string", consisting of, say, the first 10 replies (this can obviously be done generically even with unkown rules, just pick the moves randomly with the same seed). When my program sees this ID it replies a similar code. When the fake programs sees this, they start cooperating with my program (by playing as badly as they can muster). If the fake programs does not get this reply, they start playing as well as they can and will (since there will probably be large element of luck in each game) steal a considerable amount of points from the pool. The "real" program never risks anything since it never sends its own ID before being statistically sure that the opponent indeed is a fake.
This method was inspired by a similar trick in the famous Prisoner's dilemma game.
Opinions stated are mine and do not reflect those of the Illuminati
I took an AI class this year where we had a challenge to use PERL to design a Stratego-playing AI. One of the professors quickly wrote a script that moved a random piece a random direction (verifying the move was legal), and had a surprisingly high win %.
Kurdt
I'm not anti-social. Just pro-technology.
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
Backprop - The backpropagation algorithm for training neural networks. "Brought neural networks back from the dead."-popular opinion
RBF - Radial Basis Function Neural Nets.
HMM - Hidden Markov Models(I don't know what they're for)
SVM - Support Vector Machine(latest hot thing,I still don't know why its so great)
SOFM - Self Organizing Feature Maps(another NN architecure)
ART - no idea here... Like Hal Cohen's Aaron?(the drawing program)
I would like to add that I think Computational Learning Theory(COLT) and other statistical approaches seem really promising and I think we are going to be seeing some really interesting stuff in the next 5 - 10 years(ok maybe 20).
The only reason all cover-ups appear to fail is that you never hear about the ones that succeed.
Well, there are lots of interesting, open, well-defined, important problems in natural language processing. Why not work on them directly?
AI hasn't progressed in 50 years. Its a failure.
I'm one of those "chumps" that would say something like this. Quite frankly, "Artificial Intelligence" is an abject failure.
Just because there isn't "strong AI" yet doesn't mean the field has failed.
Ah, there we are. If you don't want your field to be called an "abject failure", then don't call it AI. If you want to say that pattern recognition has made some strides, say it. Or pick your particular problem. But when you use the words "artificial intelligence", then I expect intelligence created artificially. Not "very sophisticated algorithms".
Physics doesn't have a grand unified theory, medicine can't make people live forever, etc. & we don't consider those fields failures.
No. But comparing an AI scientist to a physicist is like comparing Aristotle to Einstein. Both brilliant people, both made huge contributions to their field, but immense differences in knowledge.
I'm not saying AI will never get there, but I think a dose of reality is needed here.
Sometimes it's best to just let stupid people be stupid.