Slashdot Mirror


Cracking Go

prostoalex writes "IEEE Spectrum looks at current trends in artificial technology to crack the ancient Chinese game of Go, which theoretically has 10^60 potential endings. Is conquering the game via exhaustive search of all possibilities possible? 'My gut feeling is that with some optimization a machine that can search a trillion positions per second would be enough to play Go at the very highest level. It would then be cheaper to build the machine out of FPGAs (field-programmable gate arrays) instead of the much more expensive and highly unwieldy full-custom chips. That way, university students could easily take on the challenge.'"

55 of 328 comments (clear)

  1. I don't care how good it is by techpawn · · Score: 5, Funny
    --
    Ask not what you can do for your country. Ask what your country did to you
    1. Re:I don't care how good it is by Chris+Mattern · · Score: 5, Informative

      A computer will never beat a kid possessed by the ghost of an Edo period Spirit!


      Er, actually, Fujiwara no Sai is Heian era, not Edo.

      Chris Mattern
    2. Re:I don't care how good it is by Anonymous Coward · · Score: 4, Funny

      Anonymous coward.

    3. Re:I don't care how good it is by melikamp · · Score: 4, Funny

      hypocrite

    4. Re:I don't care how good it is by fbjon · · Score: 2, Interesting
      Q: Why were the neighbours taken away in the night?
      A: All their liberties were removed.


      Or the more serious corollary:

      When all your liberties have been removed, only your life remains to be taken.

      Or perhaps:

      That is not dead which can eternal lie. And with strange aeons even dead stones become useful.


      Go is like some heavy political commentary, with life lessons thrown in.

      --
      True confidence comes not from realising you are as good as your peers, but that your peers are as bad as you are.
    5. Re:I don't care how good it is by Anonymous Coward · · Score: 5, Funny

      Failure
      would have had two levels of funny if you posted AC.

    6. Re:I don't care how good it is by olehenning · · Score: 2, Funny

      It's filled with blacks and whites and they keep killing eachother for land?

  2. Exhaustive? by SavedLinuXgeeK · · Score: 4, Insightful

    Using an exhaustive method is silly in a realm of 10^60 possibilities. Obviously human players, with much more finite resources (computationally that is) can do a much better job. Why not spend more time and being able to analyze the board better, and mimic the decision making patterns of the masters. I realize this has already been tried, and is still being worked on, but exhaustive search just seems like a waste of time and effort. My .02

    --
    je suis parce que j'aime
    1. Re:Exhaustive? by UbuntuDupe · · Score: 3, Interesting

      Ditto. As long as we're going with gut feelings, my "gut feeling" is that this is a futile endeavor.

      So you can brute force a victory on a game with 10^60 possible endings? Okay, then I'll invent a game with a much bigger space to search and a bigger decision tree. Then what?

      You've found a way to weed out fruitless branches, so it collapses into a problem that requires only 10^12 flops to solve? And this method isn't in use yet? Submit it to a journal, and add it to the corpus of Go algorithms.

      So what's the breakthrough here?

    2. Re:Exhaustive? by smallfries · · Score: 5, Informative

      Oddly enough this very question forms the basis of the article that you haven't read... :)

      The basic asnwer is that we can optimise doing something simple and replicate lots, far, far better than optimisiing something complex and replicating it a few times. Which if you think about it is the approach that the brain / evolution of the brain opts for.

      The "brute-force" approach described is actually mid-way between a pure brute-force (exhaustive) search and a "smart" search using quite sophisticated techniques to prune the tree. The author talks about alpha-beta pruning, null-move generation and hypothesis testing. These techniques are still pure-search (brute force) techniques - ie you could apply them to any game tree, but their effects are similar to how a smart (tailored to the specific game) approach would work.

      --
      Slashdot: where don knuth is an idiot because he cant grasp the awesome power of php
    3. Re:Exhaustive? by eniac42 · · Score: 5, Insightful

      but exhaustive search just seems like a waste of time and effort

      Not so. The exhastive search approach provides a testable benchmark for true AI to exceed before it can prove it is productive AI. The famous Chess 4.6 program demonstrated that a simple "technical" tree search program could perform better than selective "intelligent" algorithms that tried to prune the search tree aggresively. With Go, this strategy fails - but the "intelligent" pruning mechanism is still eluding everyone..

      There is still a golden prize in game-search algorithms - solve this, and other problems in AI can be solved too..

      --
      "A nation that forgets its past is doomed to repeat it." - Churchill
    4. Re:Exhaustive? by zeromorph · · Score: 3, Interesting

      but exhaustive search just seems like a waste of time and effort.

      ...and is just awfully boring. The whole chess/go playing thing, as far as I am concerned, is a mean to get new intelligent solutions to decision making/inference/... problems.

      A not so successful program that would actually incorporate traditional strategic concepts would be an interesting solution. For example, if a program would actually be able to handle a concept like aji, roughly (latent) potential - now, that would be elegant, that would be interesting.

      --
      "Hannibal's plans never work right. They just work." Amy/A-Team
    5. Re:Exhaustive? by phantomfive · · Score: 4, Funny

      Read the article. Essentially, he has been spending all his time searching for ways to prune that tree to a reasonable level. He thinks that he has enough pruning techniques, and that computers have sped up enough, to solve the game of Go within the next 5 years.

      Unfortunately for him, he is working for Microsoft labs in China, and since 2008 is well known to be the projected year of linux on the desktop, Microsoft won't be around long enough to continue funding his project. Sigh.

      --
      Qxe4
    6. Re:Exhaustive? by CodeBuster · · Score: 4, Insightful

      but the "intelligent" pruning mechanism is still eluding everyone.

      It is not the pruning mechanism itself which is still eluding everyone, but rather the difficulty in formulating a sound evaluation function for use in the alpha-beta pruning optimization of the brute force search. The game of Go is interesting because it is often the case that a particular board configuration does not give much concrete information about its future potential. In other words, a seemingly disadvantageous board in the short run might actually lead to a better endgame than a seemingly more valuable board in the present. A small situation in one part of the board might effect the larger game in unexpected and interesting ways dozens of moves into the future. It is precisely this complexity which makes Go intriguing for players and difficult for computers.

    7. Re:Exhaustive? by fractoid · · Score: 3, Insightful

      Go for it. The article isn't about beating "UbuntuDupe's hypothetical game", it's about beating Go. There are lots of things that humans are better than computers at. None of that has any relevance to the article. Correct me if I'm wrong, UbuntuDupe, but - I don't think he was saying "let's solve a different game". He was just pointing out that the whole point Go is so hot in AI programming is that its state space is big enough that it *can't* be brute forced, and so whatever-it-is that you need to play it well with a human-sized intellect might just be 'intelligence'. Simply waiting until your hardware is swanky enough to brute force it is missing the point. Of course it may be that brute force state-space searches ARE the best approach to AI. Then again, it may not, and it's worth trying to find other approaches.

      Chess playing became a much less interesting proposition when hardware became chunky enough that you could cache the first few moves from archives of known openings, brute-force search the next 12-15 moves, and store all endgames for the last 8 or so moves in a lookup table.
      --
      Rampant carbon sequestration destroyed the Dinosaurs' tropical paradise. I'm here to help repair the damage.
    8. Re:Exhaustive? by foobsr · · Score: 2, Interesting

      Q: Where has AI failed?

      A: AI's greatest disappointment is the failure to come up with a general theory of intelligence, or anything like a general theory of intelligence. In 1970, if you had asked what's the general theory of intelligence, you would have gotten answers like, ``It's all means-ends analysis,'' or ``It's all theorem proving,'' but there are very few people nowadays who say it's all anything. There's just no answer to that question. I don't see anything on the horizon that will provide that kind of theory in the future.

      (c.f.)

      Which is why brute force is popular.

      CC.

      P.S.: good.luck@conference.edu

      --
      TaijiQuan (Huang, 5 loosenings)
    9. Re:Exhaustive? by phantomfive · · Score: 2, Insightful

      My gosh that is the worst joke I've ever heard in my life. haha. You should be shot or something. :)

      --
      Qxe4
  3. yay! by apodyopsis · · Score: 5, Insightful

    My favorite game.

    First time I played online I had my ass handed to me by a precocious 12 year old. Ah well, the memories.

    *Alot* more complex and tactical then Chess, believe it.

    See the rules at: http://www.britgo.org/intro/booklet.pdf

    Play online here: http://www.pandanet.co.jp/English/

    I recommend installing glGo and having a go vs. computer (on the easiest setting there is).

    Enjoy, I do.

    1. Re:yay! by zippthorne · · Score: 4, Insightful

      Pure number of game states does not equate to richness of experience.

      Would you say that "Diplomacy" is more or less tactical than "Axis and Allies?"

      --
      Can you be Even More Awesome?!
    2. Re:yay! by Laxitive · · Score: 2, Interesting


      True, but the richness of Go comes from the interplay of the moves permitted by an extremely SIMPLE set of moves. There are exactly 2 major rules and one minor rule in Go:

      1. you take turns placing pieces.
      2. pieces or groups of pieces "surrounded" by other pieces are captured.
      3. the board state cannot be repeated in two successive moves.

      From this simple specification emerges an amazingly beautiful game. There are particular structures and patterns which emerge with concrete properties, advantages and disadvantages. Watching interplay between these structures as a game evolves is like watching a dance.

      Now, this is all true for chess as well, but the ruleset for chess obfuscates it and hides it. Go takes the idea of a strategy game and strips it down to the barest essentials. That's what makes it so amazing for me. The sheer purity of it, the intuitiveness of the rules, and the depth of play that emerges from that.

      I'm an Indian. Chess is what I grew up playing. I love chess. I played it very frequently as a child and into my teens (and stopped playing after I got busy with school and also found it hard to find opponents in high school). I've spent hundreds of dollars on chess sets carved from ebony and sandalwood.

      All that said, Go blew me away when I learned it. I suck at the game, but every play is intense. At the end of every game I feel like I've participated in something majestic. More so than I ever felt with chess. Go is certainly a richer experience than chess.

  4. Not Any Time Soon by eklitzke · · Score: 4, Informative

    I'm not an active Go player anymore, but I used to me. And the current state of artificial Go intelligence is pretty sad. The best junior players in the world (10-13 or so, IIRC) can beat the very strongest computer Go programs, and they're literally orders of magnitude worse than the best human players.

    Playing Go is more than just searching a lot of positions. The game is _very_ subtle. To even understand how a professional 9 dan player (i.e. the very highest ranked players) plays every move in a game, you really need to be at least a 7 dan or so -- anything less than that and the moves just won't make a lot of sense. I have the feeling that it will be at least a decade (but probably much longer) before computer opponents can beat professional players, and even longer than that until they can beat the very best human player.s

    --
    #include ".signature"
    1. Re:Not Any Time Soon by shawnmchorse · · Score: 2, Interesting

      My favorite story is about Janice Kim (professional 3-dan). Back in 1997 the programmer of Handtalk was apparently boasting about the program's capabilities when Janice Kim stated flatly that he was wrong about it and she could defeat it easily with any handicap. Apparently this developed into a bit of pissing match and Janice offered a TWENTY FIVE STONE handicap (the largest handicaps generally used in human player are nine stones, by comparison). Things looked bad at first with such an enormous handicap of course, but Janice went on to defeat Handtalk by a few points. And honestly, the Go playing programs I've seen really haven't developed much in the previous decade. They have small incremental improvements, run on faster hardware, etc. but are still orders of magnitude worse than some humans that have studied the game for only a couple of months. Just as they were a decade ago.

    2. Re:Not Any Time Soon by ajs · · Score: 2, Insightful

      Playing Go is more than just searching a lot of positions. The game is _very_ subtle. This is provably incorrect. Searching a lot of positions gets you a solution to the game. The problem is that "a lot" is defined as 10^60, which though it looks like a nice, friendly number isn't even remotely manageable. To give you a sense, the current U.S. national debt is around 9 trillion dollars. That's on the order of 10^12. That's a huge number, but the number of go positions is 1,000,000, 000,000,000, 000,000,000, 000,000,000, 000,000,000, 000,000 times larger than that!

      This is an incomprehensibly large number, and the evaluation of each position alone is not trivial.
    3. Re:Not Any Time Soon by asparagus · · Score: 4, Interesting

      In the last year the UCT algorithm has really come of its own. It's a monte-carlo variant with weighting for winning lines. On 9x9 boards the programs play at the dan level. 19x19 requires roughly 32x the computing resources for the same level of performance: current machines simply can't handle the load. But MC scales nicely with additional computing power. 32x is only 5 doublings by Moore's law: it's not unreasonable to think that within a decade computers will be giving the masters a run for their money.

    4. Re:Not Any Time Soon by oni · · Score: 5, Interesting
  5. Good luck with positional evaluation by shawnmchorse · · Score: 5, Interesting

    Let's just take the final position of a game of Go. It takes a certain level of Go knowledge merely to determine which groups are alive, which are dead, which can be taken off the board, etc. in order to determine the final score. Beginning Go players will often not be able to determine this on their own and will have to "prove" to themselves that a group really is dead. And then there are the rare cases of dual life, which beginning Go players are frequently not warned about at all. Programming this stuff is HARD. There's a reason why the scoring portion of playing a Go game online is still done interactively (each player taking turns marking dead stones)... it's because there are no algorithms as of yet that can do it accurately enough. With this in mind, I have no idea why they would believe that searching huge numbers of positions would be helpful when computers are extremely hard pressed to come up with useful information about the score of the game at any given stage.

  6. Organizing the search space... by headkase · · Score: 5, Interesting

    It's a running joke that in artificial intelligence that to solve a problem you almost have to know the answer already. When you consider all the possible ways to be intelligent as a search space, the process of evolution has "narrowed down" what it is "almost" like to be a human and we as individuals fine-tune the rest of the answer starting from birth. The human mind is a remarkable pattern processing machine and the day a computer can play go against a human master and win is the day we truly understand how to replicate sentience in a machine.

    --
    Shh.
  7. Logical Extreme by digitaldc · · Score: 2, Interesting

    Carried to its logical extreme, the tree would grow until it exhausted every legal continuation, leaving the program nothing to do but examine the end positions to see which of them were wins--that is, checkmates--and which were draws, then work backward along the branching structure to choose the line that led to the best outcome, assuming that both sides play perfectly.

    This is exactly the method that Spock would utilize while playing 3-D Chess, and he would always win. However, due to his reputation for winning by always going to this logical extreme, noone ever would want to play with him.
    In the end, it was deemed a highly illogical method, since it killed his ability to play the game.

    --
    He who knows best knows how little he knows. - Thomas Jefferson
  8. Re:why check everything by madcow_bg · · Score: 2, Interesting

    ... What you do is design a nice directed heuristic, say, a multi objective algorithm, and train this to compute a reasonable set of possible moves from the current state. There is no need to describe an idea end state, just a decent ongoing performance requirement. Let me just tell you that a stone displaced by a mere one position can lead to very, very sure loss. Besides heuristics are good when we have at better understanding of the mechanics. All top books and players about go talk about "harmony", "beauty", "balance" ... let's just fix what the bleep are we talking about and THEN teach it to a computer, shall we? The theory is more of meditation than a strategy guide.

    Multi objective algorithms are fearsomely hard creatures to get right, but when working they can do great things. Use one to train a neural network with temporal properties (bases current decisions on past inputs at all positrons simultaneously), and you have a means to achieve a decent setup. It would take a long time to get right though. Please give me sources for the things you mentioned, couldn't understand a thing. Go is a game with "only" about 200 plausible positions for each turn, and let me assure you, the slightest error is more than enough to decide the outcome.

    Go is too complex for a total understanding, if ever there were an NP complete problem, this is it. thats why we have evolutionary algorithms. best solution? don't care about them, best possible in reasonable time? That'll do nicely. Are you sure you know what NP-complete is? Because it has nothing to do with game theory.
    You are right about evolutionary algorithms, they could be used to solve the game. If you have the computational power to let them evolve, that is.
    Go is believed by many to be the last bastion of man's mind after what Deep Blue did could be accurately described as "beat the crap out of" Kasparov. I do believe we'll have to develop an AI before the computers get good enough to beat the world champion in Go.
  9. Not artificial intelligence by Reality+Master+101 · · Score: 5, Insightful

    The fact that we're talking about trillion move/second machines rather than even attempting to do it the way humans do it ought to tell us what the current trend in artificial intelligence is.

    Basically, the current trend is the same as it was 20/30/50 years ago. This IS NO science of artificial intelligence. We don't have a freaking clue how intelligence works. I think we will someday, but it's going to take a fundamental breakthrough in theory. A "Principia Intelligentsia" (I'm probably mutilating the Latin) by some genius that throws out all the fumbling and finally Explains It All.

    --
    Sometimes it's best to just let stupid people be stupid.
    1. Re:Not artificial intelligence by Reality+Master+101 · · Score: 2, Insightful

      I would be really interested in knowing how you think we know that. We know they aren't consciously considering a trillion moves per second. But how do we know what kind of work the cognitive engine is doing underneath the consciousness? What if your brain evaluates quadrillions of moves per second, leaving you aware of only the best few it can find?

      Because the brain only has 100 billion neurons and, at best, can fire only a couple thousand times a second. If 1% of an entire brain was dedicated to being little Go Position Computers, it would be hard to imagine how you could get a million moves a second, considering communication and infrastructure overhead. Much less a billion, or a trillion, and certainly much less than a quadrillion.

      Of course, I could also make the argument just because we suck at rote computational things, and are wonderful at pattern matching things. If we really had exhaustive search capability like that, it would probably show up in some sort of everyday task.

      --
      Sometimes it's best to just let stupid people be stupid.
  10. Re:why check everything by Llywelyn · · Score: 2, Informative

    Go is not NPC. The Japanese Rules are EXPTIME-complete. Go Endgames are PSPACE-hard, and ladders are PSPACE-complete. Under the Chinese rules it is thought that the game might be EXPSPACE-complete, but this has not yet been proven.

    We also have yet to develop heuristics that even evaluate one position very well, especially during the opening or middle game. Machine learning is not a cure-all here: there's a combinatoric explosion that happens very quickly with this game which makes most of the techniques difficult to train even under the best of circumstances.

    Not to say that such won't eventually be possible, but it's handwaving.

    --
    Integrate Keynote and LaTeX
  11. Exhaustive Search is not realistic by jmdc · · Score: 2, Insightful

    ...theoretically has 10^60 potential endings. Is conquering the game via exhaustive search of all possibilities possible?

    No.

    A typical star is made up of ~10^57 hyrdogen atoms. If you could store an all the information you needed about a single ending position in a single atom, you'd need storage that had the mass of thousands of stars.

  12. Not brute force, Monte-Carlo !!! by Anonymous Coward · · Score: 2, Insightful

    This is one of the worst articles about computer-Go I've ever read. The author seems to completely overlook the recent advances in the field which made possible huge gains by replacing n-ply reading and evaluation by monte-carlo sampling of possible end positions. This is indeed some sort of brute-force but allows to avoid the proble of evaluating a partial position, which is very hard.

    Still far from the best human players, but at least improving :)

  13. Read an article to this effect.... by FooAtWFU · · Score: 2, Insightful

    I read an article to this effect in an AI class. Apparently the Latest Thing in solving things like Go is to take a good random sampling of just a few thousand (or tens of thousands of) possibilities in the future, and try to see what sort of move looks better, rather than trying to be exhaustive about the entire thing. I thought this was Quite Interesting. Meanwhile, the exhaustive search is really the least interesting way you could possibly do it, and won't likely provide you with much insight on Go, or related matters. *yawn*

    --
    The World Wide Web is dying. Soon, we shall have only the Internet.
    1. Re:Read an article to this effect.... by pclminion · · Score: 5, Interesting

      Meanwhile, the exhaustive search is really the least interesting way you could possibly do it, and won't likely provide you with much insight on Go, or related matters. *yawn*

      Exhaustive search may be boring, but it is also the only theoretically sound method. Aggressive forward pruning of game trees always has a danger factor (you might prune a move that looks bad at depth 5 but is actually a win at depth 10), and this danger is massively increased in games with large branching factors like Go. Basically you are greatly amplifying the horizon effect.

      Methods such as Prob-Cut and Multi-Prob-Cut have proven useful in games with extremely high branching factors where the evaluation function has strong correlations between depths (games like Amazons, which has an initial branching factor of 2176, far larger than Go's 361). However there is always risk associated with statistical pruning methods.

      Really, the only theoretically sound method of forward pruning is to define a specific evaluation function and then produce proofs that certain board configurations cannot cause an increase in the evaluation. But these proofs are hard or impossible to construct and often they only apply in positions which are already clearly bad.

      In my opinion, it's not that computers are terribly bad at Go. It's that humans are unusually good at it. I am regularly whomped by my own Amazons-playing program and that program can't even look to ply 2 at the opening of the game. On the other hand, I destroy most of the simpler Go programs, even though I absolutely suck at Go.

  14. Re:why check everything by Llywelyn · · Score: 2, Informative

    Technically speaking, solving go for the standard 19x19 board, or any fixed board size, is a constant-time operation, hence far short of NP-complete.

    Not any more than solving 128-bit cipher is a constant-time problem.

    Using the Japanese rules Go has been proven to be EXPTIME-complete.

    --
    Integrate Keynote and LaTeX
  15. Here we go again... by tiluki · · Score: 2, Interesting

    It is, and never will be, a question of optimisation - no matter how stochastic, fuzzy, or hardware based. Chess was only "solved" in this way - it wasn't solved the way we actually play it.

    Go... is all about pattern matching.

    The tigers mouth, the ladder, the bamboo joint, the turn... that's how I play.

    Just as the brain makes sense of our world. We make sense of go through the patterns we see.

    And no - I don't mean just throw a ANN at it:-) And yet, something stirs in the heart of AI... Something within the new approaches to statistical pattern matching...

    No, it ain't solved yet!

    1. Re:Here we go again... by igomaniac · · Score: 2, Interesting

      I'd say it's about pattern matching until you reach 1. dan, then you know almost all of the patterns and it becomes a game of high level strategic thinking.

      --

      The interactive way to Go -- http://www.playgo.to/iwtg/en/
  16. no, we won't do it by brute force by Surt · · Score: 2, Interesting

    The best fp devices top out under 10^15 operations / second. in a computer sized box.
    Lets assume we can design a go-specialized device that can outperform that by another 10^20th power (ridiculous, but let's imagine).
    We build 10^9th such devices (a billion!), and wire them all together to play go.
    It will still take 10^16th seconds (317,097,919 years) to figure out go.
    So no, it won't happen that way.
    Worse, I don't think go is that simple:
    http://en.wikipedia.org/wiki/Go_complexity

    --
    "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
  17. As a go developer by jshriverWVU · · Score: 2, Interesting

    It's definitely an interesting problem. I spent years researching Chess engines eventually ditching it for Go. If you want to really be on the bleeding edge check out the computer-go mailing list. We're all there. http://computer-go.org/mailman/listinfo/computer-go

  18. Progress in Computer Go by igomaniac · · Score: 5, Informative

    I'm a reasonably strong Go player myself (4. dan) and I've studied computational complexity - my gut feeling is that computers will not beat humans at Go in my lifetime even if Moore's law continues to apply. The only possibility is that someone comes up with a completely new approach, a bit like when alpha-beta search was invented for Chess. At the moment the most interesting approach is Monte Carlo methods applied to Go which has so far lead to a gain of at least two stones strength for the current programs. The strongest Monte Carlo based program is currently MoGo by Sylvain Gelly et al. which you can find more information about at http://www.lri.fr/~gelly/MoGo.htm.

    --

    The interactive way to Go -- http://www.playgo.to/iwtg/en/
  19. Re:FPGAs? by Shalth · · Score: 2, Informative

    Actually, if you are going for speed you do want to use an FPGA. Even though there is an inherant iteration problem associated with determining the best move for Go, you can create a very parrallel algorithm that would search many different paths at the same time. Now if you are refering to the clock speed of FPGA's, then that is not an issue either. Even though most modern dual core and quad core processors can run at 2.4+ Ghz, they are most times limited to several levels of pipelining. This limits each processor to maybe 10 billion opperations per second.

    Now with FPGA's, an average clock cycle that it would be run at would be around 200 Mhz. This may seem slow at first but once you realize that at this 200 Mhz clock speed you are calculating several thousand computations you will see that you can easily crush the 10 billion opperations per second of a normal processor and reach several trillion opperations per second with a single FPGA.

  20. I agree... no time soon.. by absynthe49 · · Score: 5, Interesting

    I have played a lot of go and am a programmer. This will not be solved anytime soon unless there is a very big breakthrough in AI.

    Go is challenging to program for many reasons:

    1) There is a ridiculous number of moves. As mentioned in the article.. there are 361 factorial moves as the game progresses. Many of these would never be done (a player would not move on the outer most edge of the board in the early stages). Some extra moves can happen as you kill groups and move new pieces into their positions. And of course.. both players pass well before the game is over.. so the board will never be filled up. So there are some limits on this huge number.. but whatever it turns out to be... it is crazy bigger than chess's possible moves.

    2) The rule set is much less restricted. In chess... you are very restricted.. each of the 6 types of pieces have very specific rules. All except the knight is blocked by other pieces. In go.. you can move almost anywhere you want (it may not be the best idea but there are no rules about not moving to an empty spot). I say almost because you cannot actually kill you piece by placing it into a spot that would immediately kill it. These spots however are small in number to the number of spots you can move.

    3) It is extremely difficult to decide the current state of the game with regards to one position being better than another. In the article he mentioned being able to shorten the move search tree by neglecting paths that led to worse positions. The earlier parts of the game are extremely difficult to decide. In fact.. there is probably no correct answer. This is probably one of this biggest issues with getting a computer to play effectively. There are probably spots that the computer with proper algorithms could deem as not so good.. but what about the 500,000 other positions that may turn out good.. may turn out bad. I think it would have a difficult choice when it has so many positions that it cannot grade as good or bad.

    4) The delicate balance between whole board and small area (strategy vs. tactics). He mentions in the article that the computer could focus on a small subsection of the board at a time. This is fine and dandy when the computer can magically know which of the small subsections is vital. As a 19x19 game progresses (especially earlier in the game) there are for example 20 zones of the board that could become hot very fast. If one player takes initiative in a section.. they may only play 3-8 moves there and then jump to a completely different section of the board. These to positions (potentially) will collide.. and the way that the player built these two sections and the way they collide is very important.. this will greatly hinder the computer simply focusing on a subset on the board... that would be to focus on tactics.. and strategy and tactics are constantly balancing back and forth in the human players mind.

    5) The human player makes new algorithms as they learn more about the game. One of the trickiest things about go is that there are no sets of rules that define a good move. There are "proverbs" which sometimes are philosophical about the game. Sometimes these are even contradictory. I doubt very much that people will find the golden set of algorithms that describe good play.. at least in a way that a modern computer interprets language.

    In the end... I think one day we will have a computer that will be better than people at go. The only thing is.. I am very sure that it will be a very long time from now.. or after a breakthrough happens in AI. Anyone who has played the game for at least 20 games on a 19x19 will see the amazing explosion of possible moves. They will feel how sometimes there are 10 hotspots that you just wish you could move, but you only have one. They have felt what it feels like to be focused on an area of the board and suddenly, due to their opponents craftiness, jump to a whole different area of the board and suddenly.. that area becomes vital. A single move can make a relatively safe area dreadfully

  21. Re:Sure it is possible to search 10^60 by $RANDOMLUSER · · Score: 5, Funny

    But don't expect to finish the game yourself.
    More like don't expect your grandchildren to finish the game. ;)
    More like don't expect your species to finish the game.
    --
    No folly is more costly than the folly of intolerant idealism. - Winston Churchill
  22. Very true. by Mahjub+Sa'aden · · Score: 2, Insightful

    The game is _very_ subtle.
    Absolutely. Last weekend -- Thanksgiving here in Canada -- my family vacationed in Northern Ontario. We didn't bring a television, but somebody did bring a Go set. I set about teaching most of my family how to play it. But what's amazing to me is how long it takes to get an adequate grasp of the basic concepts. Life, death, influence, strength, weakness, playing in the corners and sides, even scoring is hard. I don't even have a good handle on the game, and I've been playing extensively for some five years now.

    In that context, I don't wonder that it's hard for computers to handle Go. The game has facets that are hard to quantify. It's hard for intelligent humans, too. Much like life.

    Sort of makes you wonder; if a computer can figure out Go, how far from that point is real AI? Or does that question even mean anything?
    --
    What is is all that is. Isn't that obvious?
  23. Game complexity by Michael+Woodhams · · Score: 5, Interesting

    On complexity: perhaps the best definition (for matching our intuitive feeling for how complex a game is) I've come across for game complexity is this: Imagine a novice player who avoids glaringly wrong moves (e.g. sacrificing a queen for no benefit in chess) but otherwise randomly choses from the legal moves available to them. Call this a 'level 0' player. Now a player who is smart enough to beat the level zero player 2/3 of the time is a level 1 player, someone who beats a level 1 player 2/3 of the time is level 2 etc. Then the game's complexity is the level of the best human player. If I recall correctly, this gives naughts-and-crosses/tic-tac-toe a complexity of 1, chess was about 20 and go was about 40. Unfortunately, this is all from memory, I haven't found the right magic words to feed Google to get more information.)

    So yes, the game-state complexity can be a very poor measure of actual complexity, but go still has a very strong claim to being the most complex common human game. (An extreme example of high game-state complexity but trivial actual complexity would be a large game of "Brussel Sprouts".

    On the Diplomacy/Axis and Allies comparison. The three games being compared are very different in nature (although they are all zero-sum.)

    Go is two player, complete information, deterministic (as are chess, checkers, hex, naughts-and-crosses/tic-tac-toe) Such a game can, in theory, be completely analysed.

    Diplomacy is multi-player, deterministic, incomplete information because moves are simultaneous. I'm not sure if or how this could be analysed.

    Axis and Allies is (effectively) two player, probabilistic. It could (theoretically) be completely analysed as a very large dynamic programming problem. From a game-theoretical point of view, it resembles Yahtzee.

    --
    Quattuor res in hoc mundo sanctae sunt: libri, liberi, libertas et liberalitas.
    1. Re:Game complexity by evanbd · · Score: 3, Interesting

      This argument is intuitively appealing, and imho it has a lot to say for it. However, it has one major shortcoming:

      Define the game of 3-go to be playing 3 consecutive games of go; the winner of the 3-go match is the winner of the majority of the go games. If player A is 1 level better than player B at go, they will be more than one level better at 3-go, since their winning probability is up to 74% instead of 67%. So, by this definition 3-go is noticeably more complex than go. However, I can think of no meaningful way in which this is actually true.

      Also, if you count steps from a human player who knows the rules and has played a couple games to a human expert, you get 40-50 ranks. But that human player is easily 30 ranks about the true "random but no suicides" computer player. It doesn't take much work to build a computer program 20 ranks stronger than the random player, but that is still a truly *awful* program.

      In the early days of go programming, a very simple algorithm was defined. This is from memory, so it's probably wrong, but it went something like this. If you can capture an opponent's stone, capture a group chosen at random from the largest capturable groups. Failing this, if you have a group in atari that you can rescue from atari, rescue the largest such group. Failing this, if an opponent has a group with less than 4 liberties, play one of its liberties. Failing this, play a random legal move. This turned out to be remarkably potent against early programs, and will absolutely destroy a random player -- yet still lose to even the weakest of human players.

  24. Nice. by Mahjub+Sa'aden · · Score: 5, Funny

    I like that.

    Sometimes I imagine Go as the essence of life, distilled into a binary adversarial form. Of course, I snap out of it when my neighbours explain I can't just take their cars because "they had no liberties" when I double-park.

    --
    What is is all that is. Isn't that obvious?
  25. Re:why check everything by jpfed · · Score: 3, Insightful

    By that logic any problem can be called "constant time" as long as you've chosen an actual problem to solve. It's like that, although what I call a problem, you would likely call a class of problems, and what you would call a problem, I would call an instance of a problem. Using your terminology, it's useful to speak of the asymptotic complexity of a class of problems, but not of a single problem.

    Just because you've fixed n to some value doesn't change the problem's complexity. If I say that such-and-such a problem can be solved in O(n^2) time, then what I mean by that is that the number of computations required to solve this problem is less than some function of the form an^2 + bn + c for some a, b, and c. A simpler way to say this is that the number of computations required to solve this problem is less than dn^2 (with the right choice of d, this can be greater than an^2 + bn + c for any particular choices of a, b, and c). So, to summarize, O(n^2) time means the number of computations is strictly less than dn^2 for some d (where d does NOT change as problem size changes).

    Let's say I am going to bubble-sort a list that is n items long. The most aggressive (lowest) upper bound I can put on this operation is that it will take n(n+1)/2 swaps, so it will take O(n^2) time. Now, let's say that I know that the list is 10 items long. At this point, I can estimate the number of swaps will be at most 10*11/2 = 55.

    Now, 55 is O(1), because there is d*1 for some d that is larger than 55 everywhere. Therefore, a bubble-sort run specifically on a list that is 10 items long is constant time.

    There is an algorithm to find the median of a list that operates with a surprisingly low time-complexity (Iirc, it's O(n), but I might be wrong) that relies on the fact that a sorting problem of fixed size runs in constant time.
  26. It's 10^170, not 10^60 by PacoSuarez · · Score: 2, Informative

    The article says *chess* has about 10^60 positions. Go actually has 10^170. Now all the people that have made silly arguments about how 10^60 means the game is untreatable should apologize, I suppose. Oh, and go will fall too. My bet is 20 years before a computer beats the best human players. We know more about how to write a go program than most people think.

  27. True, and another observation... by wfolta · · Score: 2, Interesting

    Speaking of how hard it is to even decide if a board position is good or bad, there are three more things I can add:

    1. One of the key concepts of Go is "influence". Stones literally radiate influence. Different groupings of stones, in different regions of the board, and in opposition to other groupings, radiate differing amounts of influence. And in a Heisenberg-ish kind of way (at least during the early stages of a game) pushing too strongly for influence will create less space and pushing too strongly for space will lead to less influence. The master strives for just enough more influence or space to win.

    For example, fencing in areas near the edge of the board early on. You may be solidifying space -- though no guarantees if you are not very certain of what you are doing -- but you are giving your opponent great influence -- if they play well, no guarantees.

    No doubt chess has a similar concept (pieces, control, development potential), but it just feels different... Not as fluid or symmetrical in so many ways.

    In some sense, you are creating your pieces by placing atoms on the board. No doubt chess has a similar concept, say having a bishop and a knight work together, or two rooks, etc, but the small size of the board and the severe movement restrictions and clutter makes these chess meta-pieces much more awkward than Go.

    2. Sente (initiative) is a very important part of the game. You may jump around the board making five or six moves in sente, then finally go back to patch up a weakness in gote (yielding sente). One of the difficulties of the game is deciding how urgent moves are, and thus when you should yield sente in order to address them. (Of course, the perfect solution is to figure a way to make the urgent moves in sente, but...)

    Of course, in Go it is always advantageous to move if you can -- as opposed to, say, chess -- and the Go board is large-enough scale that it's easily possible to have a dozen places you'd LIKE to move but you have to rank them and decide how long you can postpone most of those moves so you retain sente. I just don't see this in chess -- though perhaps I don't know it well enough.

    3. Go has an aesthetic sense. You might say that it's simply a different word for intuition and chess is no different. But I don't think so, because chess does not allow you to move pieces arbitrarily to fulfill "balance" or other aesthetic concepts. I am only an intermediate Go player, but I have been amazed at the number of high-level games I've viewed over the years and I've been able to see where a move must go, based almost entirely on an aesthetic sense that the move somehow balances or fills in something.

    (The problem of course is sente -- WHEN should that move be made -- as well as playing the entire rest of the game at that same level of insight, stringing together move after move. Perhaps that's one way that Go is like golf. One of the reasons that golf is so addictive, IMO, is that any good player occasionally hits a shot that's as good as Tiger Woods. The rest of the game does not go that well, but they get a tantalizing taste of greatness for an instant and that's very addictive.)

  28. Re:What about this idea? by fractoid · · Score: 3, Funny

    No, he was going to say "what about a bewb", because bewbs are the best thing evar. But then he thought better of it.

    Heheh. Bewbiez.

    --
    Rampant carbon sequestration destroyed the Dinosaurs' tropical paradise. I'm here to help repair the damage.
  29. Re:Sure it is possible to search 10^60 by Workaphobia · · Score: 2, Insightful

    The greatest shortcoming of the human race is our apparent inability to understand the exponential function. You, the parent, the grandparent, and the summary seem to all not understand the nature of an intractable problem. "Trillions" of operations a second means nothing when the search space is that big, and no advance in computing (assuming we remain limited by Moore's law and level off in the foreseeable future) will help.

    So while you, the parent, and the grandparent were trying to be funny, you were all grossly understating the difficulty. Although I like that Self->Grandchildren->Species is possibly an exponential progression - I would have been annoyed if it had been Self->Grandchildren->GreatGreatGrandchildren.

    --
    Evidently, the key to understanding recursion is to begin by understanding recursion. The rest is easy.
  30. Re:Sure it is possible to search 10^60 by TapeCutter · · Score: 2, Insightful

    WOPR can solve it one digit at a time, 60 digits is no problem.

    --
    And did you exchange a walk on part in the war for a lead role in a cage? - Pink Floyd.