zullil wrote:Why has Crafty been "several 100 elo behind the best for years?" Thanks for the replies.
In my opinion, you're asking why the Wright Brothers did not land on the moon. Crafty is a great program, with some key "firsts". Crafty pioneered the use of rotated bitboards, which were a "crazy" idea at the time. Talk about thinking out of the box! Crafty also was the first (I think) program to use a parallel searching mechanism. Even after showing us the way to do it, this is still not an easy thing to program.
The Crafty source is
freely available which is a huge disadvantage. Programmers can use the concept of the engine match to spawn their own reports of orthogonal evaluation term weights which are aimed at directly exploiting any chess program's evaluation function. There have been papers written on how to do this. Crafty, not doubt, is part of any program's climb up the ladder. You don't hear about all of the private research that resulted in Crafty's wins, you only hear about the public losses after it "trained the opposition."
Recall that Crafty descended from Cray Blitz.
Cray Blitz won the World Computer Chess Championships in 1983 and 1986 (and there were none in 1984 and 1985, so this was a "repeat").
So, it was the best of the best for years.
Recently, I think there has been a "pendulum swing" of sorts. Back in the day, Ken Thompson wrote a paper about Belle playing games against itself with different search depths (3 ply vs. 4 ply, 4 ply vs. 5 ply, 5 ply vs. 6 ply, all the way up to 8 ply vs. 9 ply).
The result convinced everyone that the deeper searching program would always be vastly superior. Hans Berliner, creator of HiTech, performed a similar experiment. He disabled some of the IQ of HiTech, and had it play a "dumber, faster" version of the program, called LoTech. LoTech won the majority of the games, much to Berliner's dismay.
The thinking back then: Get deeper searches, even at the expense of knowledge!
But now, we are seeing how intelligent implementations of "knowledge" (with the amazing Rybka) allows a program to really outperform "blind deep searches". This cuts against the grain of the Crafty design metaphor.
I was programming during a time when it was questioned whether a chess program would EVER become a master. Then it became a matter of: "Will a software program" on a "microcomputer" ever become a master? Even after tremendous progress was made, NOBODY thought a program could ever defeat a Grandmaster, until Bent Larsen lost a game. Then SURELY the human World Champion would never lose to a computer, then Kasparov went down to Richard Lang's "chess genius."
In short, your question is one asked after programming geniuses poured lifetimes of effort into the field, most of the information has since become shared, and you have the gumption to pose your question the way you do?
Hey, Christopher Columbus, how come you can't outrun the Nuclear Submarine?