{"id":759,"date":"2006-11-30T22:54:01","date_gmt":"2006-11-30T20:54:01","guid":{"rendered":"http:\/\/www.randform.org\/blog\/?p=759"},"modified":"2006-11-30T22:54:01","modified_gmt":"2006-11-30T20:54:01","slug":"go-chess","status":"publish","type":"post","link":"https:\/\/www.randform.org\/blog\/?p=759","title":{"rendered":"go chess"},"content":{"rendered":"<div><img id=\"image760\" src=\"http:\/\/www.randform.org\/blog\/wp-content\/2006\/11\/gochess.png\" alt=\"gochess.png\" \/><\/div>\n<p>While the chess human-computer show duell between the world champion <a href=\"http:\/\/en.wikipedia.org\/wiki\/Vladimir_Kramnik\">Kramnik<\/a> (human) and <a href=\"http:\/\/en.wikipedia.org\/wiki\/Deep_Fritz\">Deep Fritz<\/a> (software) has reached its half time <!--more-->(three of the six matches have been played with two remis and one win of deep fritz) one can read every where that the computers becoming unchallenged winners is only a matter of time. With another (in western europe less known) board game the situation is still quite different: The best programs  playing <a href=\"http:\/\/en.wikipedia.org\/wiki\/Go_%28board_game%29\">the game of go<\/a> can only compete with stong human amatuers.<br \/>\nIn the game of chess modern computers have the chance to compute and evaluate up to about 9 moves ahead (this means generating all possible moves together with all their possible answers together with all their possible following moves&#8230;and so on). This brute force approach together with sophisticated evaluation funtions (the part of the software that assigns a value to a given configuration on the board and thus judges how good or bad the computer &#8220;thinks&#8221; the position is) makes up the main part of the incredible strength of todays chess programs.<br \/>\nBut it turned out that the strategies that make a computer program a good chess player basically fail to make a good go program. This has several reasons: First and foremost the number of possible moves is by magnitudes bigger than in chess games ( go is played on a 19 by 19 grid and in the beginning you can place your stones basically every where). Most of the moves are usually close to nonsense but this makes a brute force search though all possible moves slow and difficult. But then, writing a good evaluation function is much harder as well, since in go what a good position is depends more on your overall strategy than a programmer likes. Breaking things down to local considerations (&#8220;hey, the opponent played in the upper left corner, so lets focus on that part of the board only&#8221;) only works sometimes since the evaluation of a (seemingly) local configuration can sometimes only be decided by taking the whole boad into account.<br \/>\nSo besides the standard techniques to manage the huge search tree (like tree pruning (<a href=\"http:\/\/en.wikipedia.org\/wiki\/Alpha-beta_pruning\">this<\/a> kind not <a href=\"http:\/\/www.na.fs.fed.us\/Spfo\/pubs\/howtos\/ht_prune\/prun001.htm\">that<\/a> one) a go program needs clever heuristics (a fact that gives go programs more kind of a personality &#8212; and they are often said to resemble the playing style of their programmers). Here is a <a href=\"http:\/\/www.usgo.org\/resources\/computer.html\">list of go programs<\/a><br \/>\nA good free candidate is of course <a href=\"http:\/\/www.gnu.org\/software\/gnugo\/gnugo.html\">gnu go<\/a> and it is used by several go playing front ends.<br \/>\nSo computer go programs are still relatively weak (not for me though but I count as a bloody beginner since I never found time to really get into it &#8212; for the last 15 years).<br \/>\nLuckily the game of go has a feature that lets unequal (in strengh) opponents play interesting  matches against each other: the stronger player gives the weaker one a couple of stones head start.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>While the chess human-computer show duell between the world champion Kramnik (human) and Deep Fritz (software) has reached its half time<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[6,1],"tags":[],"_links":{"self":[{"href":"https:\/\/www.randform.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/759"}],"collection":[{"href":"https:\/\/www.randform.org\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.randform.org\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.randform.org\/blog\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.randform.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=759"}],"version-history":[{"count":0,"href":"https:\/\/www.randform.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/759\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.randform.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=759"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.randform.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=759"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.randform.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=759"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}