For many people on this list, Computer Go is a hobby and that means that it is important to do whatever you find interesting and motivating, event if it may not
be the best or most promising direction in order to become the next world champion program. There is room for pushing limits in all directions, IMO.
Brian Sheppard wrote:
Maven was fast enough, but it was clearly the slowest
of all major Scrabble programs. Some programs were 5x
faster than Maven. Maven was slow because it was a
lot more than a move generator: it played the full
game with competent positional scoring. Scoring
requires much more time than move generation. So why
bother optimizing move generation?
I am finding that the same lesson applies to Go. But
more so because Scrabble is largely first-order
whereas Go is recursive. Pebbles averages ~10K trials
per turn. Aya is clearly stronger at 10K trials than
Pebbles. Fuego is stronger than Aya. Valkyria is
stronger than Fuego, and my impression is that Zen
trumps us all. Zen could be better than Pebbles + 400
rating points at 10K trials.
Now look at scaling. When Fuego runs a machine that
is ~20x as fast as mine, then Fuego is comparable to
Zen. Valkyria plays in 19x19 tournaments running on a
Pentium M, and scores 50% against much more powerful
computers. My conclusion is that the analytic skills
of Zen and Valkyria are worth a factor of 20, and I
expect the advantage will increase with computer
speeds.
The crucial issue is to support intelligence. Check
out David’s description of MFoG, and Remi’s papers
about CrazyStone. I am sure those programs pay
attention to speed, but the real issue is whether the
engine can do the necessary analysis. Magnus’s posts
to this list lament that Valkyria is so slow, but
Magnus is clearly excited that his engine supports
great analysis.
So de-emphasize speed. Can you build a great pattern
matcher using bit boards? Can you solve life & death
positions better? Can you read ladders faster or more
accurately? Do bit boards make the program easier to
program and debug?
Pebbles started with a bit board move generator, but
I have been adding other knowledge entities, like
liberty counts, string iterators, and eyespace
detectors. I am convinced that emphasizing domain
knowledge structures will pay off. (That being said,
I will borrow your intrinsic functions for my 9x9
template specialization. ☺ Every little bit helps.)
Best,
Brian
_______________________________________________
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/
_______________________________________________
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/