[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: [computer-go] Pattern matching - example play
At 12:42 2-12-2004 -0200, Mark Boon wrote:
>
>
>> -----Original Message-----
>> From: computer-go-bounces@xxxxxxxxxxxxxxxxx
>> [mailto:computer-go-bounces@xxxxxxxxxxxxxxxxx]On Behalf Of Vincent
>> Diepeveen
>> Sent: Wednesday, December 01, 2004 16:32
>> To: computer-go; computer-go
>> Subject: Re: [computer-go] Pattern matching - example play
>>
>> However there are some huge differences between 9x9 and 19x19.
>> First of all
>> if some top chess programmers build a 9x9 go program in combination with a
>> deep search, parallel hardware, i really doubt any human will be able to
>> beat it.
>>
>> There simply has not been put any big commercial effort yet into 9x9 go.
>
>You're overlooking one important aspect: evaluating a 9x9 Go position is
>way, way more difficult than evaluating a chess-position.
>
>What you write seems based on the assumption that you can evaluate as many
>moves per second as in chess. Would it still be true if the maximum number
>of nodes per second on current hardware is in the neighbourhood of 1,000?
Change from JAVA to C and it's 3000 already. Add parallellism and it's
50000 already at a todays hardware.
I searched at 19x19 already 3000 nps of course incremental evaluating at a
P5-100Mhz.
But fundamentally spoken of course a go program will be slower than a chess
program evaluating.
Yet there are a lot of things possible to speedup things.
Like evaluation hashtables and such. Those start to make sense when you use
nullmove. You can use even halfsplithashtables (without mirrorring of course).
>Because that's what I estimate for an evaluation of a 9x9 Go position that
>is still not nearly as good as chess-evaluations.
Chess evaluations are notoriously wrong from strategical aspect. That's why
so much effort has been put in openingsbooks; in order to avoid a program
playing into a position where it for sure goes wrong.
In go 19x19 the problem is a tad bigger because the board is bigger, but
the evaluation swing is similar of course.
It's not that the chessevaluations are that good. No chessprogram will ever
miss a 20 ply sequence. That's why they are so strong.
You are of course correct when you notice that a swinging evaluation like
your program probably has, that it's harder to search deep with that, than
with a brain dead evaluation function.
Some chessprograms with brain dead evaluation function in 1999, were
searching 17 ply nominal (no forward pruning; only nullmove) at quad xeons
500Mhz.
The same program (fritz) was searching at a quad opteron 2.2Ghz in world
champs 2004 nominal 13-15 ply in middlegame. Note that i beated it with a
10-12 ply searching program.
Yet the big difference is this. In 1999 with simple hashtables, such as
most go programs have now, it was searching in endgame 17-19 ply. My own
program, which was a big idiot in 1999 when compared to what it is now.
Nowadays that same fritz program in endgame thanks to improved evaluation
but especially better hashtables, is searching 25 ply in endgame.
It's that 10-12 ply search which in combination with a good evaluation
function which kicks so much butt. Of course that excludes forced tactics,
selective search and so on.
However seeing ahead a move or 6 is *real* important.
Mankind has a worst case there which is very difficult to explain until you
search those depths.
Another important point, and this is REAL important is that todays software
generation kicks so much butt because they play very AGRESSIVE.
The 100% same program searching deeper with a passive tuning, is losing
from any titled chessplayer.
If you would todays chessprogram tune them not agressive, they will just
lose from even mediocre chessplayers.
Agressive play can hide positional and strategical weaknesses quite well.
There is just 1 player on the planet who is unique in his kind, a so called
Mozart.
Look majority of world champs in chess, just like the strongest 9 dan
players in go, they are passive players.
Kramnik, Anand, Karpov, Fischer all very passive playing players.
Technical great. All non-Russian world champs without any exceptions very
passive players. Of course they know how to setup an attack and if they can
they obviously will do it.
We have in modern chess just one player who is playing real agressive like
a Mozart. It's Kasparov. Kasparov is so agressive, in his highdays end of
80s, he played even at move 5 a new move against karpov in important world
champs.
The agressiveness of that move is very selfexplaining and even today this
move is very popular. Amazingly it hasn't been called Kasparov attack.
Positional play and strategics are less important if someone is just
pushing like crazy and forcing you to defend your own groups rather than
attack his.
In combination with bugfixing all algorithms, especially hashtables bigger
R for nullmove and of course hard work on evaluation functions, the more
agressive tuning of chess engines is the real boost in chess level from
1999 to 2004.
Of course the general program searches deeper when moving from 1999 to
2004. Yet for the world top that's not so clear.
Junior team in 1999 searched a superselective 17 ply to 19 ply. This world
champ they hardly got 17 ply when playing me. I saw also 16 ply pass by.
Their search past 5 years has not changed AFAIK.
5 years of hardware improvements and no increase in search depth.
Yet the programs are hyper agressive now!
_______________________________________________
computer-go mailing list
computer-go@xxxxxxxxxxxxxxxxx
http://www.computer-go.org/mailman/listinfo/computer-go/