|more useful options|
Re (tilly) 3: OO vs. global variables...by tilly (Archbishop)
|on Sep 04, 2001 at 22:41 UTC||Need Help??|
Be warned. While you might build a prototype in Perl, you will not have any possibility of succeeding in your eventual goal without rewriting in a different language. Perl is just too wasteful on memory to be great at this task.
OTOH traditional game-playing algorithms are simply incapable of playing Go well at any point in the forseeable future. We will not have great Go-playing computers unless we rethink how computers work (eg quantum computing) or else rethink how computers are supposed to play games.
For those who don't know about this problem, here is the general issue. Computers play chess by having a simplistic evaluation of a board, and then thinking through all possible interactions several moves ahead and evaluating the end position. The result is that consequences that humans understand by having a sophisticated internal understanding of how games evolve, a computer can figure out by analyzing far enough ahead that it sees that things will work that way, even if it cannot explain why.
As a result the same program that was a mediocre player on 1980's hardware was very good on 90's hardware and is grandmaster level on current hardware. The program isn't any better. We have just thrown hardware at it. In fact there appears to be an approximately linear relationship between the number of moves ahead the program works, and how strong it is. Looking ahead one more move takes exponentially more work, but computers get better exponentially fast, so in terms of chess strength computers progressed approximately linearly.
Go is a much simpler game than chess, but with a much larger number of possible choices for each move. Also a game lasts many more moves than in chess. The number of choices means that computers simply don't have the horsepower to analyze what will happen very far in advance, and the length of the game means that to play well, the computer has to anticipate things much farther ahead than they do in chess. So brute force doesn't go very far.
More precisely, looking ahead one more move does less good in Go than it does in chess, and it takes a heck of a lot more work. Assuming that things work in Go like they did in chess, and assuming that Moore's law continues to hold, computers will eventually trounce humans. But not for centuries to come. (And the physics of information theory tell us that Moore's law must halt before that day.)
So the problem is that we have never figured out how to have a computer "understand" games using anything other than very unsophisticated models. Which is why computers are not very good at Go. So if you want to do what dragonchild wants to do, what you need to do is learn all of the theory. Learn how to write games. It is all important because the last 5% of how humans play games uses all of that stuff. But then you need to find a creative way to do something completely different than that to fill in the missing 95%, because we know that our current approaches are useless for playing Go.