NYT Story On Go Programs And AI
mykej writes: "The NYT (registration required, blah blah) has a story on Go, the hardest game for computers to play. From the article: 'Programmers working on Go see it as more accurate than chess in reflecting the ineffable ways in which the human mind works. The challenge of programming a computer to mimic that process goes to the core of artificial intelligence, which involves the study of learning and decision-making, strategic thinking, knowledge representation, pattern recognition and, perhaps most intriguingly, intuition.' There are a few throwaway lines about Nash from 'A Beautiful Mind,' although they don't mention the game he invented after getting frustrated with the inconsistencies of go."
There are dozens of variations of Go, in different board configurations and rules. Many have rules simliar to cellular automata, such as Attaxx by Atari. Also the microscope game in the 7th Guest, which is based on Attaxx. I still prefer Othello(TM) or MacGO, with it's very hard to beat NerfMaster level.
My Other Computer Is A Data General Nova III.
there is no maybe about it. you are ignorant
My question has always been is Go really that much harder for a computer to play than Chess or is Chess just more popular and more energy has been devoted to developing computers to play it?
I took a grad-level AI class in college nearly 30 years ago; our final exam was a round-robin tournament among Go-playing programs that we had to write. (More precisely, we each wrote two routines--one to evaluate the board, one to generated a list of moves--and a minimax framework called our routines.) It was a great introduction as to why AI is hard.
..bruce..
I still play Go occasionally, and though I am a mediocre player at best, I can usually beat any Go-playing programs that I've found.
Bruce F. Webster (brucefwebster.com)
The NYTimes is not exactly correct about the Kasparov/Deep Blue match. The IBM programmers studied Kasparov's playing style intensely, and programmed Deep Blue to not just play chess but more specifically play and beat Kasparov, which is a slightly different thing from "playing chess." (Granted the machine could still beat almost anyone, but maybe not other masters with a different playing style.) Kasparov, on the other hand, was not allowed to study how Deep Blue might play at all. I also recall that Kasparov became a bit unhinged early on. So yes, Deep Blue did beat Kasparov, but the problem for it was not just "play chess" it was "beat Kasparov."
People generally use the same "bullshit logins" for everything. I tried test1234:test1234 and got right in! Slashdot should have a link to the NYT login generator.
It doesn't work no more, cos they put some funky referrer check in. You need to save it to your computer first. The link is here
Try this site.
It also has instructions on how to teach Go, if you're interested.
"I have never let my schooling interfere with my education." - Mark Twain
the two that come to mind as striking examples are "a beautiful mind" and "Pi"
im sure ther're others. theories? other movies? is it just a trend?
I want 2D games back.
lie in the way that the decisions are made and the differences in how they affect the playing field. The average game of Go actually lasts longer than the average chess game and is far older...
For starters, Go in its pure form is played on a 19x19 board as supposed to an 8x8 board. Chess's famous plays, games and styles have all been archived, whereas Go's strategies are largely abstract and can only be learned by repeated play. The game only begins to take structure after 30 to 50 moves. According to this site, Go has approximately 10 to the 750th power of possible board positions. This makes it a very hard game for computers to learn.
On the historical side, Go is a complex game that originated in China close to 4000 years ago and has remained constant to its' original form despite being introduced to many southeast Asian countries since.
Chess players are known to have huge egos. Check out Bobby Fisher for example. So Kasparov is probably just whining.
Hmm...worked for me...
Actually, Hex was first invented by Piet Hein, who is perhaps better known for the Soma cube. Nash claims to've invented the game independently, but somehow I just find that hard to believe.
Slashdot - News for Herds. Stuff that Splatters.
The NYT (registration required, blah blah)
Why the blah, blah? Why can't you just say (registration required)?
Why do you have to qualify it?
The trend towards Massively Parallel Computers, such as the STARAN developed in the 50s/60s at Goodyear Aerospace Corporation by Ken Batcher were discarded for the most part. Pipelined machines were easier to design, cheaper to build, and easier to program (i.e. could use existing languages).
It would seem that a Massively Parallel Processor would be ideal for this applications, especially a STARAN with it's large Content Addressable Memory. Or do I, as a former STARAN user & developer of similar machines, just see this as a nail since I have the hammer in my posession?
"Glory is fleeting, but obscurity is forever." --Napoleon Bonaparte
I'd mod you down for slagging off my favorite game, but I can't cos you have the same damned IP address...
I was never a big fan of hex. My favorite game right now is Rithmomachia (or rythmomachia), but it's not good for AI stuff, since it's kinda based on simple number theory. Apparently, it competed with chess for a couple of hundred years as the big intellectual board game before essentially falling into obscurity. Rules are atl
http://www.gamecabinet.com/rules/Rithmomachia.htm
-1, "1337" speak
ha
For an example of how elementary a regular Go AI is, visit kgs.kiseido.com and click "Play Go Against Your Computer". You'll notice how sometimes the computer passes for no reason, or continutally defaults the game in certain stone patterns.
Hex was actually first created in 1942 by a Danish mathematician, Piet Hine. It was then discovered independantly later on by Nash in 1947. It is another game which has only been solved on small boards. A good beginner's game (written in java) with 7 hex to a side is available here and a better one with more info can be found here. There's also a games site where you can play this against other people, but I'm at work and can't find it now. Sadly, there is seldom anyone else there :-(.
TIA for any feedback
Kavau
There was a really good article about Go on kuro5hin maybe three weeks ago. In fact, it caused me to start playing again and it still is much fun. :-)
Just try it. There are lots of free Go servers online. I prefer the KGS server. All you need is to download the client or just play it online in your browser with others (Java required). There are usually ~100 people online in the English room (yes, chat included).
It's a wonderful game.
42. Easy. What is 32 + 8 + 2?
I love go (I'm a 2 kyu player), and I'm an AI researcher. But I don't work on go-playing programs. Much as I'd like to, I don't think it would be a productive activity for me.
I think that the minute you start to write a game-playing program, you're trapped by the very natural structures you have to use to make the program even play a legal game. You can't help but start to use minimax search. With go, you add modules for life & death evaluation, influence generation functions, the list goes on and on.
But all these things are just hard-coded approximations of some of the ways people think about go when they play, ripped out of their essential representational context. Real people have rich conceptual networks linking all of these skills together, which multiplies their power enormously. Give a beginning human player a perfect black-box life and death evaluator, like go programs ideally have, and he will never become a strong player. Only by solving life and death problems yourself (to take just one example) can you integrate that kind of knowledge into your total go knowledge. I maintain that this integration is essential.
Will computers ever beat people at go? Sure. But I'll bet the first program to do so will be a general-purpose near-human level AI, that thinks of board positions in terms of physical metaphors. It will have a rich mental landscape.
Bob Hearn
I've just started playing Go recently with my flatmates and a friend. It's all because of this amazing anime series "Hikaru no Go" about a boy who meets the spirit of a thousand year old Go master from the Heian period, who teaches and encourages him to start learning the game. From there his own love of the game develops, and he heads towards being a pro.
HNG was sponsored by the Japanese Go society as a way of making Go more popular, and Japanese Go schools are currently being swamped by new players. It's up to episode 38 already, so you'll have some catching up, but the fansubs are great. This link http://www.toriyamaworld.com/hikago/ has some of the original manga if you're interested.
Go and find out more about Go!!!
Must not have been any fires or people trapped in a hole or anything today. That would've been more interesting. Anybody who thinks they understand how the human brain works because they can program a calculator on steroids to play chess or whatever is certainly lacking the authentic form of intelligence. For these people the artificial kind is all they can hope to attain.
It's still far more fun (for now) to play other people online - try your hand at http://kgs.kiseido.com/
Surprised I haven't seen this yet, but there is a GnuGo project. I've played with it a little bit, it's okay in terms of AI, but definitely needs a lot of work. I played a palm adaptation of it, and the scoring was done incorrectly, and if you figured out the quirks of the AI you could beat it everytime.
What?
There are so many choices at each stage of the game that it's hard to model. The tree branches too often. See this discussion with the inventor. Octi is online. It also happens to be a lot of fun and pretty easy to teach to people.
Anyone interested in a good book an artifical intelligence in game playing should read blondie24 by Larry Fogel. It takes an evoloutionary computing approach to checkers and is a very accessable and interesting read. It also dispels many fallacies of AI especially the Deep Blue comment made in this article.
In fact, there are quite a large number of reasons why Go is harder for computers than chess.
First, there is the board size and the fact that you can play (almost) anywhere on the board, which accounts for the large branching factor (number of possible moves in each position) for the search tree.
Next, there is the fact that games take more moves to finish (about 300 ply, i think, for about 80 for a chess game), which makes the search tree even more staggeringly big. Many many millions of times bigger than that of chess, even when you do a shallow search.
Then there is the difficulty of deciding when the game is over. In go, this happens when both players pass, so this means you have to know when there are no sensible moves anymore. This turns out to be a major problem, whereas in chess the end of a game is more clearly defined.
In fact, it is even very difficult to determine the score for a game when both players have passed. Especially in human expert games, end positions require a great amount of understanding of the game to determine the score.
These, and many other reasons, make Go a very difficult game for a computer. Many (brute force) search/evaluation methods we use in chess and checkers are really not up to the task of playing Go. So we try and figure out some more 'intelligent' methods...
BTW, I have not read the NYT article, but i really doubt they can say anything sensible about 'intuition'. We don't know what intuition is, and even if we would, I think the strenghts of computers lie elsewhere. Let people do what they are good at (intuition, fuzzyness), let computers do what they are good at (count really really fast)...
I'm a mediocre Go player (not bad at tactics, but too little experience to effectively manage the whole board). I'm absolutly wretched at chess. I've always been kind of interested in why Go seems to be so much easier for me than Chess but so much harder for computers. I think that what's going on is that Go uses a completely different kind of logic than chess. Any thoughts?
You are attempting to read sigs. Cancel or Allow?
It was a great day for AI but in retrospect a sad day for chess. However it's going to a long time before Chess engines play chess with attitude, emotion and an individual style. If Chess engines just used minmax, alphaBeta pruning, the quality of play would not be very high. Storing opening lines and end game rules makes it a much tougher opponent.
However when these programs are able to store every combination of every possible game and then based the outcomes move up the tree to decide what move to make Then chess will truly be dead.
That will take more than a few EMC boxes! - More like (~35 options per move (starting with 20), ~100 moves per game) = 35^100 = ~2.55e+154 positions. Roughly assuming each position uses 64 bits = 1.85e+143 TB (> a googol Tera bytes!) When you have this 'database' 'populated' you can tell what moves ensure sucess by looking at the end node outcomes.
But for now Go play chess !
what's simple to you is incredibly difficult for a computer
I think what's difficult is writing the actual program. It's easy for the computer once you give it the correct instructions.
One caveat, however, being processor speed.
The revolution will be televised. Blackout restrictions apply.
Not revive a dead horse, but what would the good doctor say about this. Could his approach do any better at Go than current attempts?
Only occasionally does a computer prove a theorem previously unsolved by humans, such as Robbins algebras are Boolean, but these tend to be problems (like this one) involving simple algebraic manipulations. Something like Fermat's Last Theorem, forget it; Wiles' proof has not even been verified by computer, much less automatically proved. The correctness of Wiles proof is at this point based on a consensus of human mathematicians, who may or may not (hopefully not) have overlooked some subtle flaw in its incredibly deep proof.
BTW don't confuse theorem provers with symbolic algebra systems such as Mathematica, Maple, or the GPL'ed Maxima. While indispensable for complicated calculus problems etc. beyond what a human can practically do, AFAIK they cannot prove even a simple abstract result such as the irrationality of the square root of 2.
Hex is indeed a beautiful game. It has very simple rules, yet it is a very deep game. You can try yourself against the computer champion . Yes, it's a windoze program but I am almost finished with a KDE one that's slightly stronger.
Actually, hex was invented in 1942 by Piet Hien. Nash independently invented virtually the same game in 1948, but he was a little late. Kind of like Thomas Edison and what's his name's race with the telephone. Funny how in one case the second inventor is virtually unknown while in the other, it's Nash who gets the credit.
Look here for documentation of this.
A more in-depth article on go programming, from the point of view of a programmer and a player, originally published in The Sciences: http://mechner.com/david/compgo/ Click on "All Systems Go".
Estimated number of Atoms in the Universe: 1.00E+81
Soo.... If you show me:
1. A way to make a single atom store 10 to the power of 62 terabytes of information
2. A government-stamped letter of permission to turn the known universe into a chess computer
then I'll admit that chess is dead.
Note 1: Deep Blue is no longer the most powerful chess computer, that honour has passed to Deep Fritz which is capable of running on an i86 architecture(unlike th proprietary machine that ran deep blue). Also, Deep Fritz was not designed to beat anyone in particular, yet it has succeeded at defeating both Deep Blue and Kramnik(the current world chess champion).
Note 2: I know that my 10E-81 figure does not include free subatomic particles(photons, free electrons, mesons, etc.), but you get the idea.
lysergically yours
For those of you interested in learning more about Go, here's some links to resources I've found helpful since starting to play 3 weeks ago.
k5 had an article about go which is what initially piqued my interest and got me started in the game.
Kiseido Go Server is my favorite place to play online, and very newbie friendly.
Some great introductions are available from Kiseido The Interactive Way to Go and Tel's Go Notes
Uligo and Goproblems.com are great places for learning how to play in common situations.
If you prefer a phyiscal board and stones check out Samarkand and Kiseido
Also, anyone in the Chicago area should check out the Evanston Go Club
A word of caution, if you decide to learn go, expect to lose most of your first 50-100 games. It's a long road, but once you start making progress, you'll grow quickly. I know I sure have. Anyone who's up for a game look for 'jjarmoc' on KGS.
It really did not play a very good game, but it was fairly well reviewed in the Apple II magazines because at least it could play (and perhaps because of the money I spent on advertising in those magazines!)
Anyway, I agree that Go is a great platform for AI research (probably only real time robot soccer is better in my opinion).
-Mark
All are very strong Go players, and it takes a strong Go player to write even a weak Go program.
I think that line captures the problem I have with the article. The purpose of AI is to produce a computer where the programmer doesn't even have to know that the game of Go exists. Yes, an intelligent computer can play Go half-decently, but a computer which can play Go half-decently isn't necessarily showing any intelligence.
So yes, writing a good Go program is challenging, but I wouldn't exactly call it research, unless you're using a method completely different from all the successful ones out there (basically a pruned tree search).
I looked on PalmGear but they only have apps that give you a Go board which can record and replay games. I need someone to play against!
The AI doesn't have to be that great as I'm only a beginner.
Any ideas?
Avantslash - View Slashdot cleanly on your mobile phone.
As he mentioned, the NYT does referral checks now. By disabling referral forwarding in Opera the site worked perfectly, but when it was enabled the NYT denied it.
Remember that Douglas Hofstadher made just that claim about Chess in the 60's. Humans may use a large part of their intelligence to play Go, but that doesn't mean a computer has to.
It seems like there must be some task so hard that it requires general intelligence, but so far I haven't heard of anyone really good at predicting that.
this is off-topic, but i need to say it.
thomas edison did not invent the telphone.
he had nothing to do with it,
It was Alexander Graham Bell, a Scotsman living in Canada, who invented the telephone.
There WAS a race for the patent, because at least four different researchers were indpendently working on the same project at the same time.
lysergically yours
I've been a big Go fan for several years now, ever since I started playing it online in the early 90's on The Sierra Network (TSN) aka ImagiNation Network (INN).
I had not even heard of it before but the mind power involved in playing drew me to it. Anyone elses brain hurt the first few times they played? Another example of an interest of mine that I didn't have in common with anyone else I knew.
I bought "Many Faces of Go" by Ishi Press, which played pretty well for someone like myself (14kyu) who only played maybe 20 games over a year.
The nice thing about a game like that for beginners is you can make a mistake (bad move) and realize it right away and go back a few moves and try a different move, in order to see what would have been best. Being able to save and go back is a very good learning tool.
I would agree with most posters here in that once you're to a certain level it's best to play against real people anyway. Not only because they're better, but they're also much more unpredictable. Many Faces of Go was somewhat unpredictable, but nothing can beat a human opponent when it comes to that area.
Moreover, being able to watch players a few notches above your playing level is IMO more useful to improving your game than even playing yourself.
-- Scientist: You aren't going to leave me here, are you? Boagh! Thump...
I respect what you are saying here and understand your reasons for not working on a go-playing program yourself, but I would challenge you with this: Even though you will probably not be the person to write the go ai program that is "near-human level", the person who does eventually write it (X number of years/decades in the future) will most definitely only be able to do it because he learned from people who came before him and attempted the endeavor. In short, it takes Newton to formulate the basic laws for physics and the calculus before Einstein can go further and discover relativity and quantum physics. And as Newton said, the only reason he could accomplish what he did was because he "stood on the shoulders of giants" that had come before him.
I am sure that this is not a new idea to you, but I present it again because I think it is very valid. We are at a very primitive state when it comes to computer ai, as anyone who has done any ai knows, both because of our lack of understanding of how our own intelligence/consciousness works, and because of our lack of good programming tools that allow us to work at a high abstraction of thought (i.e. most of the code we write is very tedious, and even though it is necesssary for our ai programs, it has little to do with actual ai). It is similar to knowing that you need a modern race-car when oil refineries, engines, and smelting have not even been invented yet. It is up to us to create those go-carts, pardon the pun, and start exploring how we might create a smelter, looking forward to the day when the infrastructure will be in place for others to continue the progress.
I know what you mean when you say that when you begin work on an ai problem like go, you are immediately trapped into things you have been taught, common procedures that you know others have used for similar types of problems, etc. However, this does not mean that you cannot be the one to think up the next innovation with respect to ai, taking the next step in creating a "rich mental landscape" that will lead to the integration you believe is essential to true ai.
I am quite positive that you are more knowledgeable about ai than me, since I have only dabbled in it here and there, but I hope you take my encouragement in the spirit I have intended to give it.
Peace to you,
Devin
Here's a neat little (9x9) free version of The Many Faces of Go. Download Go
It provides a nice taste of go for noobs.
My only thought is that if computers are no good at Go, then I must really stink since I can't even beat the free intro version most of the time.
This link seems to show pretty conclusively that little has changed in the past five years...
http://www.anusha.com/times-go.htm
It's an article originally from the New York Times, more or less about the same thing.
Slightly off topic, but Britain has a Go Association. I imagine they are pretty pleased to see the game coming back in style. They have lots of info about the game, downloads, etc. available.
6 3000/2163584.stm
The BBC had a story in their CBBC kids section about Go just yesterday or the day before.
http://news.bbc.co.uk/cbbcnews/hi/world/newsid_21
I'd never heard of the game before I saw this story. I've obvsiously never played it, but they way they described it, it seemed like games could take a very long time when you use the larger board. I could see how this could be very complicated.
Most people would die sooner than think; in fact, they do.
I prefer IGS server. Client is way worser than with KGS, but it easier to get to play in IGS. Also pros hang out in the IGS.
-- nyri
American Go Association
What inconsistencies?
The movie Beautiful Mind kind of made it sound like the guy was just miffed because he lost a game, and justified his loss with "the game is flawed".
As someone who's been studying go avidly for about 3 or 4 years, I can say it's quite beautiful.
Ok, maybe ko isn't The most graceful thing ever, and I'm not wild about the bent-four exception in the Japanese rules.
First referece I found was this. You can google from there.
Bleh!
If any Slashdotters are interested in Go and reside in the Boston area, there is a 24-hour Go club (only two exist in the US) in Somerville (Davis Sq. stop off the Red Line T, about 5km or so away from Harvard) is the Massachuetts Go Association. While I'm not a member any more (moved to Rhode Island), they're a great club and very much interested in helping new players become familiar with the game. Their book selection in the library is quite impressive as well, covering all the obvious topics (fuseki, joseki) as well as strategy, tactics, theory, etc.
Generally, a newcomer would start off on board with a 9x9 grid and progress from there to a 13x13 and then a 19x19. The great thing about go is that since each piece (stone) is precisely the same as any other stone, it is quite straightforward to handicap a strong player so that an equitable game can be found vs. almost anbody simply by giving the weaker player position on the board before the game begins.
It's a fantastic game, and without being too bombastic (I hope), it can teach the player quite a number of things entirely outside the scope of the game itself.
My
Limekiller
Do what I do, VNC into your work machine (or at work VNC home).
---
BAS
Actually, "intuition" is not that hard to define: intuition is the ability to leap to useful conclusions with inadequate data.
A bit longer winded: An intuitive person senses patterns and potentials inherent in a situation, and is able to formulate a probable solution to a problem or plan a probably successful course of action, though there is no rigorous line of logical argument that will prove the correctness of the conclusion.
Intuition and and reasoning are not mutually exclusive. Indeed, one is often used to support the other. You may sense a weakness in an argument, then use your reasoning to determine precisely what that weakness is. The value of intuition is that it allowed you to narrow your focus and avoid wasted effort in following dead ends.
Peter (who never registers for anything on principle)
if you're interested in starting out with go, try samarkand. sorry for the blatant plug, but i started playing go a few months ago and this site was very helpful. the link goes to their equipment guide, but they also have an excellent online store. its founded by Janice Kim, one of the best go players in america and author of several go books.
To be a kid again...
Bleh!
Trevanian wrote a book back in the late 70's that got me interested in go about 15 years ago. Actually, that whole book got me interested in a bunch of different things, spelunking, basque, kicking cars, go, and tantric sex.
good stuff!
----------- destroy evil immediately!
I just got my first go board a few days before the article on K5. Coincidence. I didn't know it was in "a beautiful mind". I like go better than hex because hex is frustrating when you fall behind. (I felt that) there's often a clear leader. Sure, the leader can "slip up", do a mistake, and the game is good again, but...
I've played a lot of Othello but never mastered it really. Fiddly to flip those pieces. I played gAttaxx some, too, when I was playing with the old Gnome.
Go is bad if you're clumsy at finger work, at least the board I have. Unlike Gomoku or Hex you have to pick up stones occasionally, when they DIE.
Go is a really nice game, I prefer it over Shogi. I've never won a shogi game in my life. Shogi is like trying to learn chess all over again.
If you like logic games or puzzle games, check out "Sherlock" at Kaser Software . (It's all shareware.) It first came out in the early 80's, I think, and I have been playing ever since. (I have purchased every new version.) It's a very simple game that, at the higher levels of difficulty, can be very, very challenging. As each game is randomly generated, every game is unique. Beyond the ideas of level of difficulty, the images used (or created by the player) can add considerably to the ultimate difficulty level. He also makes a bunch of other logic and puzzle shareware games, but this is my favorite. (If you ever heard of KASM, KLINK, & KINT, this is him.) Enjoy.
Have fun.
MadDad32
It's a quote from Moby Dick. Unfortunately, the character limit to Slashdot sigs left me with the choice of attributing the source or cutting the quote short.
lysergically yours
(* And for all you Trek fans out there - remember the great Moriarty episodes? "Computer, design a foe good enough to challange Data" *)
Another interesting one is where a grandmaster of a certain game (don't remember name, had air-finger connectors) came on board and was giddy and pompous about beating the famous Data.
Data eventually realized that he could never beat the grandmaster, at least not by "winning" the game. Instead he learned ways in which to increasingly postpone his loss. Eventually the grandmaster would physically tire, which androids allegedly don't do, and thus win by attrition.
The frustrated grandmaster stormed out of the room in a Kasperov-like fit, and Data was cheered by the crew for rattling his chain.
(In reality, the rules would probably eventually be altered such that the discovered attrition pattern does not work any more. Or, some way to get a score after a set period of time.)
Anyhow, it was one of my favorite episodes.
Table-ized A.I.
Star is a game related to Hex but much more intricate. It was created by Craige Schensted (a physicist) and popularized in Games Magazine back in '83.
Star is similar to Go and Hex in the simplicity and consistancy of the rules. The play and tactics are those of Hex (connect stones on a hexagonal board), but there's an additional strategic element involving groups of connected stones that touch the edges at as many points as possible.
A free version of "Many Faces of Go".
igowin
The computer player is pretty good on this small board. You'd be surprised.
For those who want to jockey about the complexity of the games they play, here's a link that gives the computational complexity of a variety of games, along with references.
Of course, if you're really going to get into arguments, you might want to research it a bit more, but it's an interesting site nonetheless.
while everyone is mentioning go-like and chess-like games of recent invention, i thought i'd throw a plug out there of a game i came up with (though it's similar to several) a couple years ago, called the Aggravator.
. i've never beaten it, and i don't know anyone who has. it has several levels, each with their own "goal". i tend to think that some of them are impossible to attain, but a math major friend of mine tells me that, using the progression rules in the game, it's possible to attain any board state, but then, he's just a grad student, so what can he know?
of course, i failed to check my spelling at the time, so the game is acually called "aggrivator" which only adds to my aggravation.
anyhoo, it's a fun little game on a 5x5 board. you can play it online (requires shockwave plugin) here: http://www.niftee-tron.com/shock/aggrivator.html.
i've managed to beat it - once. the rules are fairly simple, but the goal is to get all the squares on the board to look the same, which is fiendishly difficult.
the sequel, aggrivator 2.0 is also online, http://www.niftee-tron.com/shock/aggrivator2.html
anyhoo, maybe some of the distributed might of the slashdot crowd can solve A2.
- Entertaining Bits from the Ancient Kernel Tree
IBM needs to be careful with their wording! Did IBM detect a power surge on the bridge? They're lucky Deep Blue didn't call the "arch".
Competition is far superior on IGS. The ratings on IGS were recently adjusted by four stones and are still a stone or two stronger than AGA ratings. IGS is good for your game; the others are for kicking the weak around the board.
illegitimii non ingravare
I suppose it's natural that the usually crowd here thinks it's just a matter of time before "ai" triumphs over humans. One too many sci-fi books read I guess. Humans are good at go through their free will and infinite nonquantized storage of previous quantized input. Computers will have to solve the entire game to be good, and that's only possible in later universes that have more energy.
Writing a Go program may not be exceptionally difficult. It is just a very large problem. Most previous attempts were done by one or two people, in an attempt to have a commercial success. A large team of people would be required. Probably, this could only be done within an open-source framework.
There might be some things that can be learned from Chess programs, for example how to solve Life and Death problems, but a completely different approach will be needed.
I believe that people have attempted to solve the wrong problem. The problem is not
but, If you are a Go player, you know that in the middle game, you can usually come up with a decent move within a few seconds, but if you walk over to a game being played by other people in the middle game, it would probably take you several minutes of intense thought to analyze the board, figure out what is alive and what is dead, and who is ahead. Therefore, the program needs to save its state between moves. Figuring out the next move should then be MUCH easier.Most open-source programs are designed by one or a few people, and then outsiders either just fix bugs, or add additional functionality within the current design. For a Go program to have a decent chance of achieving dan level play, not only does it have to be open-source, but open-design.
Assume that a framework exists, and that modules which perform discrete tasks can be plugged into this framework. A standard interface is defined for each module. There would be modules for fuseki, joseki, life and death, etc. The overall framework which would perform multi-threading, saving of state, communication between modules and the client could be designed and coded by one person. But each of the Go specific modules could be designed and coded by a different person. Modules such as Life and Death are probably straightforward, but what about a module that determines good and bad shape? Many different people would have different ideas of how to do this. The framework should allow multiple competing shape modules to be written. They should be interchangeable, so that any of them can easily be plugged into the framework. In this way, many people can take part in the design of the system. There would be no political fights over how a shape module should be implemented. Different people can write their own, and the one that performs the best within the framework would be used.
Using this set of ideas, I believe that a small subset of the many people who both play Go and are software developers could develop software far better than anything now existing.
I intend to have such a framework implemented by the spring of 2003. I have not posted anything online yet. If you might be interested in participating, feel free to email me at dweiss51@yahoo.com.
The truth is we won't know whether it was easier to solve or harder until either:
It has been my observation that this kind of article is written about each hard game as programmers try to get a grip on the strategy. I can remember 25 years ago when similar things were said about chess: too many combinations for brute force; too much of great play was intuitive; chess players cannot describe just what they do.
Ten years ago we heard similar things about bridge. Now, it's Go. As in most journeys, we won't know what it's like until we get there.
As far as Reading The Fine Article, the poster may well have read the article, WHICH DID NOT DEAL WITH HIS POINT to any significant degree. Chess proved to be a very hard problem, which required decades of concentrated effort by some of the best programmers in the world. It was a classic problem which attracted huge amounts of effort. While Bridge and Go afficiados may love to think of their games as more difficult that Chess, neither has had a fraction of the theoretical effort lavished on it that Chess had.
The article was a very superficial treatment. Not only did it fail to deal adequately with the question of the relative amount of effort put into Chess and Go, but many of the facts it presented are either wrong or misleading.
Take the combinatorial questions, for instance: At the beginning of a game of Go, there are 19^2(=319) possible legal moves. If a programmer uses brute force, the combinations go up very quickly (319 x 318 x 317 ...). However, a Go master only considers four of those legal moves for his first stone.
At the beginning of a chess game, there are 20 possible moves, but a good chess player must have a thoroughgoing understanding of at least six of them, with another six being in the realm of possibility. So, over half of the moves must be considered in any brute-force algorithm. Most chess-playing programs do not consider all branches of all trees to the same depth. The ratio of likely-to-be-considered-moves-to-legal-moves is much higher in Chess than Go. Indeed, in Go there are many situations when only one possibility need be considered as the consequences of failure to respond to a particular attack can be so catastrophic.
Another difference between Go and Chess is the degree to which moves open up new possibilities. Most moves in Chess create the possibility of new moves on the following turn which were not legal on the present turn. Indeed, one could argue that one of the key strategies in Chess is opening up as many possible moves as possible. Most moves in Go reduce the number of legal moves (for both players).
Go players are much more likely than Chess players to follow out long sequences of moves without considering alternatives at each step along the way. Chess players find they must consider branches as they think ahead in most such situations unless responses are forced.
I find it interesting that Danny Hillis thinks Go is more intuitive than Chess. But we may be talking about an intuition about intuition. Hillis' intuitions about how computers can be taught intuitive processes are probably worth considering. Other than that, the article offered very little accurate information about programming Go.
Eternal vigilance only works if you look in every direction.
Go is a beautiful game that his 'beautiful' mind couldn't handle :) There are no inconsistencies about it.
If the computational problem with go is so huge, then maybe a quantum computer would be the solution.
I understand the split as Traditional/Chinese versus Modern Reformed/Japanese. The split includes a few other rules.
Chineses scoring counts your enclosed territory AND all your stones on the board. Japanese scoring counts your enclosed territory and captured stones.
If you consider the case of a throw-in into your territory, and the stones you use to kill the attack, versus the prisoners you take, you should see that the methods are roughly equivalent.
Specific handling of Ko and repeat configurations (meta-Ko), allowable suicide (I never understood that one...), and the amount of komi (points 'paid' for going first) are among the other differences I recall.
(MetaSlashdot: Knowledge on a topic that makes for good moderation makes for good posts... I'm torn. Knowing the abuse of post&moderate, does anyone have any ideas for a third choice? (Anonymous posting is just a cludge...)
The program Goban is a Go client for OS X with GnuGo 3.2 packaged into it. It now also supports two internet Go servers, IGS and NNGS, so you can play against more than just the computer.
--
"Open source is good." - Steve Jobs
"Open source is evil." - Microsoft
As I understand it, Chess programs need not have any concept of strategy. They can use opening dictionaries and brute force searches to work their magic.
Go has a true strategic level and there's no obvious way around it. Three issues contribute to this strategic level:
1. The Go board starts empty (in an even game) and the only restrictions on piece placement are strategic and tactical considerations. Chess starts out fully-populated with many restrictions in the opening moves.
This open-board, open-possibilities start to Go creates a huge branching factor and puts a premium on strategic thinking.
2. An individual Go piece has essentially no value. Value is created by pieces being placed in groups. Groups radiate influence, the amount depending on the group's configuration, its position on the board, and its relationship to most or all of the other groups on the board.
Even defining "group" is hard. In fact, every game of Go will feature at least one battle that rages around whether what one player feels is a "group" is actually a group and if so whether it is a viable group.
3. Go is played on a 19x19 board and the pieces don't move, while Chess is played on an 8x8 board and some pieces can move entirely across the board. This makes Chess a rather small, tactical game, IMHO, while Go has a large-scale, strategic aspect to it.
The larger board means that you essentially start with four separate tactical skirmishes that eventually spill into the sides and then into the center, where they all collide in a rather chaotic way. It's difficult to quantify why a good dictionary opening in one corner of the board ("joseki") doesn't work with another good dictionary opening in another corner.
And this means that brute force and dictionaries don't work so well as in Chess, where there is essentially one tactical skirmish.
I am a Go player (3kyu) and Computer Programmer.
Some random thoughts
Professional Go players can remember every game they ever played professionaly. I talked to a professional player about that once, and he explained that as a beginner you can see lots of options for every move, but as a master you only see 3-4 options for every move (sure you see a bit more at fuseki). Remembering a game becomes much simpler when there are less options. Keeep in mind there are 19x19 legal positions at the beginning of a Go game.
For quite a while there was a 1 Million dollar award for the first Go program to beat a professional human. Interestingly I can consistently beat the best Go AI out there, and if I played a pro I would probably lose with a 10 stone handicap. (in rough chess analogy that would probably be like playing with no queen, bishop an rook)
As posted earlier I do not think standard minmax search does much good with Go AI. It appears that a whole new set of non traditional techniques are required to solve this problem.
I think that if any AI researchers want to get closer to solving this program they will have to spend lots and lots of time with professional players
- Sam
Go and Chess are EXPTIME-complete. (when generalized to an nxn board). http://www.ics.uci.edu/~eppstein/cgt/hard.html
EXPTIME = Union (over k) TIME(2^n^k). This means that, were we to expand the the number of spaces on a chess board from 8x8 to 9x9 to ... to nxn it would become exponentially more complex with every step. All problems in EXPTIME are equally complex, so can be reduced to each other. So, if Deep Blue were generalized to play nxn chess, you could write a program that could (very quickly!) convert each Go move to a Chess move and ask Deep Blue what to do.
There are several basic classes of complexity: POLYNOMIAL TIME, Nondeterministic POLYNOMIAL TIME, POLYNOMIAL SPACE, EXPTIME, etc... The easiest way to understand these is to see what kinds of problems they each contain.
Checking if something is alphabatized is in P - you can just go straight through and do it.
Factoring Primes is NP-Complete -- you have to try every combination to find a factorization
Checkers and Othello are PSPACE-Complete -- every possible move leads to a completely different set of subsequent moves, but pieces can't be removed (othello) or game play is just too simple (checkers).
Chess and Go are EXPTIME-Complete -- spaces can be filled, emptied, and refilled. Something about KO in Go makes it EXPTIME-Complete (and not just PSPACE-Complete).
Hopefully all that made some sense. If not well, it took a whole class (possibly the hardest CS class I've had) before it all made sense to me.
So Go is only harder for the computer because it has a higher branching factor, or basically because it's on a 19x19 board instead of 8x8. The article says the branching factor is 25-35 for chess and around 240 for go.
A couple questions I have is
1) How many possible games are there? I'd guess Go has on the order of 361!. I think the number for chess has been figured out... anyone know?
2)More interestingly, is Go a harder game than Chess for humans? Or are they both so obscenely complex that our pattern-matching/heuristic skills take over and perform the calculations necessary to play well in either game?
There is a slight difference between being "the hardest game for computers to play" and "A hard game for computers to play; one that is harder than chess".
Noone can deny that more scientific effort has been put into programming chess than has been put into programming go. Still I am sure go is harder.
The reasoning that Go has a higher branching factor than chess has been mentioned a couple of times here. I don't think this is so relevant.
Much more important is the fact that it is impossible to write a quick evaluation function that gets it approximately right. In chess, the programs do a couple of moves of quiescence search (i.e. only trying captures) and then evaluate the position statically with a couple of heuristics. In Go, if you wanted to write a minimax search, you would have to make a complicated "life-and-death"-search (analyzing local battles) just to evaluate each end node. And existing programs cannot even do this life-and-death search reasonably.
To answer your question differently: If the same effort that has been put into GNU Go, had been put into a chess program, you might have a programs that is a lot worse than the top programs, but it could still beat a good amateur. In Go, a beginner can beat GNU Go after a few months.
To beat a similar beginner at chess, it might be enough to set up an alpha-beta search with 2 or 3 well-known pruning algorithms, and spend a week or so on tuning the evaluation function.
Finally, be warned that I am definitely not objective, as I have spent some time on improving GNU Go