CM Sarg0n said:
Brains in Bargain.
LOL
mdinnerspace said:
But how much of that is superior algorithms, and how much is due to hardware advances?
This is quite easy to answer: about 80% (my estimate) is hardware advances, 17-18% is making use of these hardware advances and about 2-3% is optimizing the implementation of the same algorithms used 15 years ago.
The algorithmic side of chess programming has not changed over the last years: you construct a search tree of all possible positions and work on that with a minimax algorithm by using alpha-beta pruning to intelligently limit the necessary work. This is the algorithmic side of the problem.
Real-world chess programs (experimental programming concepts aside) are implementations of this concept and the difference in playing strength is just reflecting the different optimisation strategies used by the programmers. Chess programming (along with signal processing) is probably the last stand of assembler programming in a world where languages like C are already considered low-level. *)
What makes todays chess programs better is mostly the raising of the calculating horizon and the fact that endgame databases are getting always bigger AND it is possible to store them on current storage. With more pieces covered the number of positions rises dramatically, as Kyrill Kryukov once pointed out:
2: 462
3: 368,079
4: 125,246,598
5: 25,912,594,054
6: 3,787,154,440,416
7: 423,836,835,667,331
8: 38,176,306,877,748,245
(from: http://kirill-kryukov.com/chess/nulp/results.html )
Assuming the relationship of positions and necessary space to store them to be O(n) it is clear that one needs the increased size of todays long-term storage media to make practical use of these databases in a program.
This and the feasibility of storing ever-growing opening books all contributes to the programs increasing strength.
krasnaya
*) Compare the time to start M$$ Winword 6 on a 386 and the time the latest Word version takes to start on your current i7-system. It takes about the same time even though you have hardware a thousand times faster. This is what that "high-level integrated intelligent visual optimized 3D-pointy-clicky-blah-blah" development environments do to the resluting code. A couple of gigabytes just for starting a hello-world-program.
CM Sarg0n said:
Brains in Bargain.
LOL
mdinnerspace said:
But how much of that is superior algorithms, and how much is due to hardware advances?
This is quite easy to answer: about 80% (my estimate) is hardware advances, 17-18% is making use of these hardware advances and about 2-3% is optimizing the implementation of the same algorithms used 15 years ago.
The algorithmic side of chess programming has not changed over the last years: you construct a search tree of all possible positions and work on that with a minimax algorithm by using alpha-beta pruning to intelligently limit the necessary work. This is the algorithmic side of the problem.
Real-world chess programs (experimental programming concepts aside) are implementations of this concept and the difference in playing strength is just reflecting the different optimisation strategies used by the programmers. Chess programming (along with signal processing) is probably the last stand of assembler programming in a world where languages like C are already considered low-level. *)
What makes todays chess programs better is mostly the raising of the calculating horizon and the fact that endgame databases are getting always bigger AND it is possible to store them on current storage. With more pieces covered the number of positions rises dramatically, as Kyrill Kryukov once pointed out:
2: 462
3: 368,079
4: 125,246,598
5: 25,912,594,054
6: 3,787,154,440,416
7: 423,836,835,667,331
8: 38,176,306,877,748,245
(from: http://kirill-kryukov.com/chess/nulp/results.html )
Assuming the relationship of positions and necessary space to store them to be O(n) it is clear that one needs the increased size of todays long-term storage media to make practical use of these databases in a program.
This and the feasibility of storing ever-growing opening books all contributes to the programs increasing strength.
krasnaya
___________
*) Compare the time to start M$$ Winword 6 on a 386 and the time the latest Word version takes to start on your current i7-system. It takes about the same time even though you have hardware a thousand times faster. This is what that "high-level integrated intelligent visual optimized 3D-pointy-clicky-blah-blah" development environments do to the resluting code. A couple of gigabytes just for starting a hello-world-program.