Microsoft Research Takes On Go
mikejuk writes "Microsoft Research has used F# and AI to implement a consumer-quality game of Go — arguably the most difficult two-person game to implement. They have used an interesting approach to the problem of playing the game, which is a pragmatic cross between tree search with pruning and machine learning to spot moves with a 'good shape.' The whole lot has been packaged into an XNA-based game with a story."
Hikaru no Go will slap this game around silly.... on a serious note, from what I've read previously on the Go AI attempts, if this is at all a good AI, then kudos to MS research.
Needs an Xbox 360 to play. Microsoft spam.
When I saw "Microsoft takes on Go", I thought of Google Go. It only adds to the confusion that both F# and Go attempt to solve some concurrency issues, though I thought it odd to compete with an imperative language using a functional one. I had to do a double-take to understand it was talking about a game.
Sheesh, I need sleep. And perhaps to stop learning so many useless programming languages.
Go is not a game because it does not have rules that are clearly interpretable, except the new Tromp/Taylor rules.
One sign of this is that Japanese monks have for about 400 hundred years quarreled about how certain patterns should be interpreted.
When I started to learn the game, I was told that it was exceedingly simple, but learned that there was a thick book of how to interpret patterns, which obviously is not simple. And after playing it a little, and thinking about it, it became apparent to me that there were end game effects that were simply ignored. The Japanese versus Chinese "rules" give very different endgames, but the practice is to simply ignore that and pretend there is no problem. One just stops when the players agree that the rest of the game would be obvious and boring, without that necessarily being true.
Robert Jasiek has done extensive analysis of Go, and seems to be the only one actually understanding the game as it is played in practice.
Here are a short list of the major mistakes that Go rulesets contain.
Here are lots of short analyses of different scoring methods.
Here are some game patterns that give different problems in different rulesets.
When it is not even possible to analyze parts of games then true optimal play regresses to quarreling about it, which is precisely what the Japanese tradition has done for at least some hundred years. Robert Jasiek has made the only consistent interpretation of the Japanese "rules", and it is somewhat insane to read, with 3 levels of recursion. It means that instead of there just being an ordinary game tree, the rules at each node in the game tree are determined by hypothetical game trees at these nodes, and the same goes for the hypothetical game trees. Gaaahrgle!
Those programming Go players typically do statistics on games played by humans instead of having a scoring function, or they use the Tromp/Taylor rules.
So Go is riddled with quarrels and pretense. Not a game in practice. More like politics, or Zen.
Kim0+
I thought C++, (as a well established Programming language) would have more libraries than XNA, which I had not previously heard of?
Reading a research paper a few years ago that presented the idea that the best way to approach the game was through catastrophe avoidance. The idea was to identify the moves that would lead to a massive loss, then to take another move at random. I wonder how their AI would fare in comparison.
Is it a dan yet?
I got excited when I saw the story. Sigh. This won't appeal to people who already play Go. It may appeal to people who have never played. I'm guessing that the game itself won't produce many more Go players. On the other hand, people may read the story on Slashdot and become curious.
It is relatively easy to beat the existing Go games on a 19x19 board. On the other hand, the existing games are OK on a 9x9 board. On the smaller board, tactics rule. On the full size board, strategy rules. If you make a mistake on the small board, you will be ruthlessly punished.
What does "beat" mean in Go? In Go, it is possible for an expert and a beginner to have a satisfying game. The weaker player gets to place a certain number of stones on the board before the stronger player makes his first move. The handicap system is pretty reliable and is part of Go culture. If they are properly handicapped, the weaker player will beat the stronger player 50% of the time.
If we want to seriously talk about how strong a computer game is, we have to talk about handicap. A computer game that needs only a one stone handicap to keep up with an expert would be exciting. With a zero stone handicap, it wouldn't sound very good because it would lose most of the time. Currently, the best programs, running on heavy duty computers, can keep up if they are given a six or seven stone handicap. Wiki
Go's a pretty cool game, but maybe some of you have heard of Chess? It involves pieces that can do a lot of interesting moves and some of the existing boards out there can be incredibly ornate.
Sorry, I wanted to be the equivalent of "That Guy" that shows up to discuss Go every time there's a chess story anywhere on the planet.
The British Go Association would capitalise Go, Chess and Checkers, although it would be more likely to refer to the last one as Draughts.
I don't know whether they're correct.
Monte Carlo
Yes, it's just a variant of Monte Carlo, but don't knock it. Recent programs implementing the algorithm have improved their handicaps by up to 5 stones, which is huge. The top bots at the KGS Go server are now ranked up to 4 dan (like a good amateur player) in games against humans.
You may want to read this short article in the Guardian about these recent improvements in the MoGo go bot. In October 2009 (6 months after this article appeared) a version of MoGo finally beat a top-ranking (9 dan) professional in an even game on a 9x9 board.
This article reads like a commercial without any scientific background w.r.t. the algorithms used. They even state it does not perform as well as other available programs.
Still, interested giving the game a try? It is really simple.
Start here to learn the rules: http://playgo.to/iwtg/
Like the problem solving, this is a good site for problems: http://goproblems.com/ Note, 30kyu problems are the easiest, then 25kyu etc. Hardest are the dan problems. (Believe me, they are really difficult)
Want to play against the computer? GnuGo is your friend> http://www.gnu.org/software/gnugo/gnugo.html
Playing against real oponents on the web, there are 2 options: Turn-based (the slow progress variant) or real-time. I can recommend for the turn-based variant Dragon Go Server and Online Go Server: http://www.dragongoserver.net/ http://www.online-go.com/
Personally, I'm not into real-time, but KGS is an alternative: http://www.gokgs.com/ Note, people might not always be in the mood for chatting here.
Getting hooked, try to find a local club or check for players in your neighbourhood: http://igolocal.net/
Have fun.
Microsoft keeps a "research team" for the sole purpose of paying people to not work for Microsoft's enemies (what at this point is pretty much everyone else). Microsoft's own interests are so far at odds with any kind of progress in technology, they can't give those "researchers" any projects that Microsoft itself can use in its own products, and this is the fact that I am going to bring to attention every time Microsoft Research is mentioned here.
Contrary to the popular belief, there indeed is no God.
What a load of horse shit. Where do tin foil hat wearing retards like you come from. MS couldn't afford to do that even if they wanted to. Not to mention the share holders would tear them to pieces for such an insane waste of money. MS research has produced a LOT of highly regarded research in many fields ranging from robotics to graphics, many of which do find there way into products eventually.
Wow. Is this mentioned in memo that was released as part of a court case? Is there something about it on Wikileaks? Or are you just making up sh!t because you just don't like Microsoft?
That and the kinect of course, the key component of which (the human body pose inference) came from their research department.
SJW n. One who posts facts.
In practice the problem you see (ambiguities in the endgame) are only really an issue for computer Go. Human players rarely disagree over when a game is "over", as typically the outcome becomes obvious long before each stone is played out to the absolute end.
How many times people have considered something "obvious" that later turns out to be wrong, when you analyze it to the absolute end? There seems to exist a consensus that some positions are better than others, but how do you know it unless you play it to the end?
I've never played go, but I often see comments on how difficult it seems to be to implement a good software to play go. Perhaps that's because go isn't really that well understood by humans either. When computers start playing go better than humans, some of these winning positions may not be so good after all.
I don't see Clippy. GnuGo is way more than adequate as a backend for my abilities.
Take it easy, Alex. It's too early to get so worked up.
You are welcome on my lawn.
Wow, you both fail reading comprehension and basic knowledge about the industry.
MSR work goes into a *lot* of Microsoft products. Everything from little improvements to crypto techniques (which are still often huge news in the relevant community), to significant features like grammar checking, to full-fledged products (Surface is the best-known at present, but not only; for example MSR also delevoped the game Allegiance which was somewhat before its time but open-sourced when it wasn't a commercial success).
Also, if MS is "only interested in product crap" then why does so much of MSR's work end up in use? Why do they release cool new stuff like Kinect? If MS is "maintaining a monopoly at any cost" then why do they support projects like Mono or develop ways to run Linux better inside their hypervisor? Why would they bother with things like Bing, when they don't have anywhere near a monopoly on search?
There's no place I could be, since I've found Serenity...
Oh, that's a great idea. Grab a bunch of researchers, give them a buglist, and throw them at an enormous codebase like Windows which they've never seen before. They're sure to fix more bugs than they create.
From the title, I expected something completely different.
It was a reasonable parsing of what you said. Either way, it does injustice to the Go Program writers: They have written programs that a go club attendee starting today can not take for granted that he will ever beat (assuming he has neither very much more or less talent than usual).
And that's not even taking program progression into account: 4d is simply out of reach for most of us. Most people on KGS seem to flatten out at 1k/1d or below, and use years for each further level - if they ever get them.
xkcd is not in the sudoers file. This incident will be reported.
Does retreating to chaotic gamespace work in other complex games too? It makes intuitive sense that if an opponent is better at you with pistols at ten paces, that you choose shotguns at twenty. If it is not considered bad form to refuse to acknowledge defeat until the last move, it seems this technique could turn Go into a game of mental endurance.
refactor the law, its bloated, confusing and unmaintainable.
It's Windows 7 Enterprise 64-bit with Microsoft Security Essentials. You're lucky not to have experienced this little annoying bug that is probably not enough of a time waster that it's worth seeking a solution online, let alone spending the time to submit a detailed bug report. Yes, I know approximately how big the Windows source code base is. Yes, I've made money writing software and also been paid to find workarounds to stupid bugs like this one. I would not allow them to actually change the code, just make suggestions to the "code monkeys." Serious point though: I think there is something wrong with a company that spends 9.5 billion annually on research yet they cannot manage to fix a bunch of six-month-old bugs in one of the most important parts of their flagship product.
The worst part of this I see is that Go now gets a storyline:
The game starts with the player receiving a letter from a Go master explaining that your twin is missing. When you visit the master, he tasks you with the Path of Go quest, through which you must find your twin. Through the experience, you learn and play the game. In the course of your journey you interact with a number of characters and challenge them in games of Go.
As much as I like good stories, there are situations where you just don't need a story. A computer adaptation of a casual game is one of those times.
Coming next year from Microsoft: The Great Solitaire Battle! As the evil sorcerer throws his magic cards at you, you must make order of them to build up your own magical reserves!
You do not have a moral or legal right to do absolutely anything you want.
You don't capitalize "checkers" or "chess"; you shouldn't capitalize "go".
It's one of those areas in which you're dealing with shades of gray. You wouldn't say "the chess" or "the go," which is a characteristic of a proper noun. (not being preceded by "the") Proper nouns are, obviously, capitalized. It really comes down to whether or not "chess" and "go" are proper nouns. They are names, which are generally proper nouns, but it's usually more _brand_ names than anything. It's not really something I would criticize though. It could really go either way..
You don't capitalize "checkers" or "chess"; you shouldn't capitalize "go".
The difference is, the words "checkers" and "chess" do not have any other meanings in the English language besides the games, so there is no ambiguity. The word "go", however, is a very common verb in the English language, so capitalizing the name of the game helps to clarify the meaning.
If I can be modded down for being a troll, can I be modded up for being an orc, or a balrog?
Yeah, i can just imagine all those PhDs sitting around all day thinking "well, I got my doctorate and all I'm doing with it is sitting here at Microsoft all day twiddling my thumbs not working for their competitors. i guess it's ok, at least i'm putting food on the table..." LOL
there's so much cool stuff from MSR it's not funny.
however, one the best things IMHO is the Z3 theorem proover and related projects such as Pex and http://research.microsoft.com/en-us/projects/specsharp/.
Check out their online game Pex4Fun.
For those that would like to try Go on a PC, there is a good version on Go for DOS & Windows called IGO by David Fotland, and it's free.
I've been using the DOS version which runs fine in a DOS window on a Windows PC.
There is a Windows version called Igowin and a version for the iPhone or iPod Touch or iPad.
I haven't tried the iPhone version yet.
IGO plays on a reduced sized 9x9 board, but is good for an introduction to the game.
The fill size version with a 19x19 board is called The Many Faces of Go and is available for purchase.
The readme.txt file says:
This program contains the same go engine as The Many Faces of Go, but only uses the first 5 levels (out of 10). It uses the same graphics as The Many Faces of Go, but is limited to 9x9 boards only.
To download:
http://www.smart-games.com/igo.html
http://www.smart-games.com/igowin.html
[the Windows has info on the iPod version]
Really? I find it hard to think of any examples. "The United States", sure, but that is very awkward. "The Germany"? "The Monopoly"? "The Phil"? "The Microsoft"? "The It's a Wonderful Life"? "The January"?
This rule seems to be not even remotely valid. Am I missing something?
I was sortof unclear, but I was saying that if it IS NOT preceded by "the," then it's a proper noun. "The United States" seems to be one of the few exceptions.
Microsoft already has the money you payed for Windows 7, so there's no reason to invest any more money in Windows 7 unless it is so buggy that you'll avoid the next version.
However, it's not as if this is the first Microsoft OS you've used. Knowing that the previous iterations had glaring bugs, you still bought this version of Windows. Everyone is in this boat - Microsoft owns the desktop market and has for some time.
All that aside, I do find it odd that MS continues to invest so much in research that never bears fruit for them. Why bother when their only successes come from appropriating and integrating the ideas of others? Microsoft has been "researching" pen computing and touch technology for at least 15 years, and yet they can't hope to compete with the iPad unless they throw out their work and crib from Apple. The existing MS work is a sunk investment that they are clearly having difficulty abandoning.
MS would be much better off keeping the focus on their competitors and forgetting their own delusions of inventiveness and creativity.
Haters gotta hate.
Oh? Really
Both words have more than one meaning in English. You should stop making random assertions like that.
Lost at C:>. Found at C.
This isn't impressive. 5x5 was solved (as in - optimal play has been mapped for the entire gamespace) around a decade ago. I wouldn't be surprised if 7x7 was also near to being solved by now (it's a mere 7.5 times as hard, probably) and I wouldn't be surprised to hear of 9x9 being solved while I'm still hearing with my ears instead of a machine. (Given the state of my ears, this is more challenging than it sounds. Pardon?)
But yeah - it's another competitor in the Computer Go stakes. It's unlikely to hurt the game. It may even help progress the art of Computer Go.
Birds are not dinosaur descendants;birds are dinosaurs, for all useful meanings of "birds", "are" and "dinosaurs"
it's a lot easier to do it if you start with the XNA framework (with the .NET language of your choice, possibly even C++).
Ordinarily, when porting a game, one would start with a game that has been designed with proper separation of model and view and writing a graphics engine as a new view. For example, one could start with a Windows or Linux game written in standard C++ and add an Objective-C view for Mac OS X or iOS and a Java view for Android. But XNA doesn't support standard C++ because standard C++ doesn't compile to 100% pure verifiably type-safe IL. C++/CLI with /clr:safe does, but this language isn't standard C++: it uses an incompatible syntax for pointers and arrays, and as I understand it, porting a game written in standard C++ to XNA would involve a line-by-line rewrite of both the model and view.
Plenty of proper names are used with "the": The Czech Republic. The People's Republic of China. The New York Times. The Lord of the Rings.
I stated that the absence of "the" implies that the noun that follows is a proper noun.
Thank you for clarifying. Your example of "the United States" confused the issue, making me think it was intended as a biconditional. But I have plenty of counterexamples to this statement as well, such as the name of every sport invented prior to 1923: football, cricket, baseball, basketball, ice hockey, etc. I imagine that checkers, chess, and go fall under the same rule as *ball.