IEEE Spectrum October, 2007 - 42

all the way up to the World Champion level-
about 2900 on the Chess Federation's scale. In
the end, this conjecture proved to be partly
true. That is, the program did continue to play
better as search depth increased, but additional gains in rating could also be achieved
by improving the evaluation function and the
selectivity of its search.

	

DeaD or alive?
to	play	any	board	game	well	you	have	
to	assess	the	situation	on	the	board	
astutely,	over	and	over	again.	For	go,	
doing	this	involves	determining	whether	
a	group	of	connected,	like-colored	
stones	(yours	or	your	opponent's)	is	
"alive"	or	"dead."	Stones	that	cannot	
be	captured	are	alive;	spaces	that	are	
surrounded	by	living	groups	of	the	first	
side	that	cannot	sustain	living	groups	of	
the	second	side	belong	to	the	first	side.	
the	game	ends	when	both	sides	agree	
on	the	final	disposition	of	territory.
the	challenge	of	go	comes	from	the	
fact	that	analyzing	whether	a	group	
of	like-colored	stones	is	likely	to	live	
or	die	can	be	a	hugely	tricky	affair.	In	
the	figure	below,	the	black	stones	are	

group	is	alive	or	dead	the	program	must	
search	many	moves	ahead.	In	the	figure	
below,	if	black	places	a	stone	on	C,	then	

D
go is played on a board crisscrossed by
19 vertical and 19 horizontal lines whose
361 points of intersection constitute the playing field. The object is to conquer those intersection points.
A player makes a move by placing a lozengeC
shaped "stone" on an intersection, then the
other player counters, and the two alternate moves. Players capture enemy stones
by surrounding them, that is, by removing
the	black	stones	will	live,	but	not	uncontheir "liberties," which consist of either the
ditionally.	that	is,	black	may	have	to	make	
vacant points adjacent to a stone itself or to
additional	moves	to	keep	the	stones	alive	
friendly stones to which it is itself connected
if	white	plays	nearby.	For	instance,	if	
(see illustration, "The Goal of Go"). When no
white	plays	on	any	of	the	points	marked	
more moves are possible, the players count up
in	red,	then	black	will	have	to	respond	
the intersection points they control, and the
appropriately-and	immediately-to	keep	
player with the most points wins.
the	black	group	alive.	
A
All the leading Go programmers today belitConsider	the	black	stone	labeled	D.	
tle brute force. In this they resemble the comIf	the	nearby	green	spaces	are	occupied	
puter chess experts of 40 years ago. Selective
by	white	and	black	doesn't	react	right	
B
search dominated thinking on computer chess
away,	then	white	can	kill	black	by	playfrom the late 1940s to the late 1970s, and that
ing	on	the	space	to	the	right	of	stone	D.	
mind-set prevented any program from advancIf	black	captures	the	new	stone,	then	
ing beyond the level of a Class C player.
white	plays	on	the	space	above	stone	D	
Go does, however, present two real probunconditionally	alive	as	they	have	
and	destroys	the	eye.	If	black	connects	
lems, both having to do with the amount of
two	"eyes,"	indicated	by	A	and	B.	the	
by	playing	on	the	space	above	stone	D,	
searching the program must perform.
liberties	A	and	B	cannot	be	occupied	
then	white	captures	the	four	newly	conThe first problem is the tree of analysis.
by	white	(for	a	white	stone	placed	in	
nected	stones,	killing	the	entire	group.
Because Go offers more possibilities at every
either	spot	would	itself	be	dead),	and	
A	program	would	have	to	follow	these	
turn, the tree is far bigger for Go than for chess.
therefore	black	stones	cannot	be	capbranching	possibilities	to	see	whether	the	
At the start of the game, the first player can place
tured	no	matter	what.	
black	stones	are	alive	or	dead,	a	far	more	
a stone on any one of 361 positions, the second
however,	the	situation	is	usually	more	 arduous	job	than	simply	counting	up	men	
player has 360 choices, and so on. A typical game
complicated,	and	to	judge	whether	a	
and	positional	features,	as	in	chess.		-F.H.
lasts about 200 moves, so it averages at least
200 move choices per turn-nearly 10 times as
many as in the average chess position.
alpha-beta pruning, and it works by curtailing the examination of a
The second problem is the evaluation of the end positions. move the moment it becomes clear that another move must be betIn Go you can't just count up stones, because you have to know ter. Let's say the program is comparing move A with move B, and
which stones are worth counting. Conquered territory is defined as it already knows that A leads to an advantage. If it finds, early on,
board space occupied or surrounded by "living" stones-stones the that move B allows the other side to obtain a draw at the very least,
opponent cannot capture by removing their liberties. Before you then the program can cut off its analysis, saving a lot of time.
can count a stone as live, you have to calculate several moves ahead
Alpha-beta pruning reduces the effective branching factor
just to satisfy yourself that it is really there in the first place.
to about the square root of the number of move choices. For
Put these two problems together and you get a computational example, to look ahead 12 plies in pure brute-force mode, you
problem that at first glance seems intractable. But there are would need to search only about 4 billion positions, or 4 x 10 9,
ways to engineer around it.
instead of 3812-or 1019-positions.
A newer way to cut back the overgrowth-null-move pruning-
let's start with the problem of the exploding tree of analysis. was not implemented in Deep Blue, even though one of its invenIf we assume that the program must consider every possible tors, Murray Campbell, was a key member of the Deep Blue team.
continuation that could arise 12 plies into the future, as Deep The algorithm performs a kind of thought experiment, asking how
Blue did in chess, you might expect to have to search a million the position would look if you were to give up the right to move
times as fast. But we don't really need to pay that high a price, for one turn, thus allowing your opponent to make two moves in
because there are ways to prune the tree of analysis.
a row. If after that enormous sacrifice you still have a good posiOne old standby, implemented in all chess programs, is called tion after a relatively shallow search, then the algorithm can stop
www.spectrum.ieee.org			

October	2007	|	IEEE	Spectrum	|	NA							53


http://www.spectrum.ieee.org

Table of Contents for the Digital Edition of IEEE Spectrum October, 2007

IEEE Spectrum October, 2007 - Cover1
IEEE Spectrum October, 2007 - Cover2
IEEE Spectrum October, 2007 - 1
IEEE Spectrum October, 2007 - 2
IEEE Spectrum October, 2007 - 3
IEEE Spectrum October, 2007 - 4
IEEE Spectrum October, 2007 - 5
IEEE Spectrum October, 2007 - 6
IEEE Spectrum October, 2007 - 7
IEEE Spectrum October, 2007 - 8
IEEE Spectrum October, 2007 - 9
IEEE Spectrum October, 2007 - 10
IEEE Spectrum October, 2007 - 11
IEEE Spectrum October, 2007 - 12
IEEE Spectrum October, 2007 - 13
IEEE Spectrum October, 2007 - 14
IEEE Spectrum October, 2007 - 15
IEEE Spectrum October, 2007 - 16
IEEE Spectrum October, 2007 - 17
IEEE Spectrum October, 2007 - 18
IEEE Spectrum October, 2007 - 19
IEEE Spectrum October, 2007 - 20
IEEE Spectrum October, 2007 - 21
IEEE Spectrum October, 2007 - 22
IEEE Spectrum October, 2007 - 23
IEEE Spectrum October, 2007 - 24
IEEE Spectrum October, 2007 - 25
IEEE Spectrum October, 2007 - 26
IEEE Spectrum October, 2007 - 27
IEEE Spectrum October, 2007 - 28
IEEE Spectrum October, 2007 - 29
IEEE Spectrum October, 2007 - 30
IEEE Spectrum October, 2007 - 31
IEEE Spectrum October, 2007 - 32
IEEE Spectrum October, 2007 - 33
IEEE Spectrum October, 2007 - 34
IEEE Spectrum October, 2007 - 35
IEEE Spectrum October, 2007 - 36
IEEE Spectrum October, 2007 - 37
IEEE Spectrum October, 2007 - 38
IEEE Spectrum October, 2007 - 39
IEEE Spectrum October, 2007 - 40
IEEE Spectrum October, 2007 - 41
IEEE Spectrum October, 2007 - 42
IEEE Spectrum October, 2007 - 43
IEEE Spectrum October, 2007 - 44
IEEE Spectrum October, 2007 - 45
IEEE Spectrum October, 2007 - 46
IEEE Spectrum October, 2007 - 47
IEEE Spectrum October, 2007 - 48
IEEE Spectrum October, 2007 - 49
IEEE Spectrum October, 2007 - 50
IEEE Spectrum October, 2007 - Cover3
IEEE Spectrum October, 2007 - Cover4
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1217
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1117
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1017
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0917
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0817
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0717
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0617
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0517
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0417
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0317
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0217
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0117
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1216
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1116
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1016
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0916
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0816
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0716
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0616
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0516
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0416
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0316
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0216
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0116
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1215
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1115
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1015
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0915
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0815
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0715
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0615
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0515
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0415
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0315
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0215
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0115
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1214
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1114
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1014
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0914
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0814
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0714
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0614
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0514
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0414
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0314
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0214
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0114
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1213
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1113
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1013
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0913
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0813
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0713
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0613
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0513
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0413
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0313
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0213
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0113
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1212
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1112
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1012
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0912
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0812
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0712
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0612
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0512
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0412
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0312
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0212
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0112
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1211
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1111
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1011
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0911
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0811
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0711
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0611
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0511
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0411
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0311
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0211
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0111
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1210
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1110
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1010
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0910
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0810
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0710
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0610
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0510
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0410
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0310
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0210
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0110
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1209
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1109
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1009
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0909
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0809
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0709
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0609
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0509
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0409
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0309
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0209
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0109
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1208
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1108
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1008
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0908
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0808
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0708
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0608
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0508
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0408
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0308
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0208
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0108
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1207
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1107
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1007
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0907
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0807
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0707
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0607
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0507
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0407
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0307
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0207
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0107
https://www.nxtbookmedia.com