Re: "Automated Discovery of Search Extensions"
Posted: Sat Jun 26, 2010 5:17 pm
That was in since R2.3.1, actually, it was ditched for Rybka 3 and became Rybka 3 Human instead.BB+ wrote:R3 (3153): Kaufman's eval
Independent Computer Chess Discussion Forum
https://open-chess.org/
That was in since R2.3.1, actually, it was ditched for Rybka 3 and became Rybka 3 Human instead.BB+ wrote:R3 (3153): Kaufman's eval
Ed, do you know of any articles that outline a kind of 'genealogy' of computer chess concepts, i.e., tracing the origins of the major contributions back to the 60s?Rebel wrote:One even might wonder if extensions (except maybe for checks) make sense any longer as they might bite the latest concept of LMR.
Another issue: Now that I understand this new LMR concept it's probably fair to say it was first introduced by Rybka and it became the sole reason for its dominance of the last years. But eventually the secret became known and it's now available for every chess programmer. The interesting question remains how the Rybka's secret became known. The most heard opinion is by RE. But it can also be more simple. If we go back to another breakthrough in CC, the discovery of recursive-null-move back in 1995 (or so) it was simply a voluntary leak by the inventor (Frans Morsch) himself. He told Donninger about it who then made it an article in the ICCA journal. Nowadays recursive-null-move is standard. What if Vas in a weak or openmoment (unconsciously) gave away the idea? We could stop all discussion then. No cloning.
Speculation: now that the algorithm is in the open we might expect a new race. A new chance is given for the old commercial generation, Fritz, Shredder, Hiarcs. If their evaluation is better than those of Rybka, Stockfish, Ippo* then they might have a chance to take the crown again.
So 3 subjects in 1 post.
Ed
when will you try the idea in prodeo, ed ?Rebel wrote: Speculation: now that the algorithm is in the open we might expect a new race. A new chance is given for the old commercial generation, Fritz, Shredder, Hiarcs. If their evaluation is better than those of Rybka, Stockfish, Ippo* then they might have a chance to take the crown again.
So 3 subjects in 1 post.
Ed
I am one of the SF developers, yes.Rebel wrote: Thanks MarcoJust for clarity, you are the SF author? Please forgive my ignorance nowadays, I am catching up lately.
![]()
Of course he won't. He never doesRebel wrote: Our Bob of course will comment, he always does. I am not sure if he totally agrees on the historic perspective.
Wow, is there a chance for a ProDeo 1.7/2.0 at all!?thorstenczub wrote:when will you try the idea in prodeo, ed ?
I think the best man to answer this is Bob.benstoker wrote: Ed, do you know of any articles that outline a kind of 'genealogy' of computer chess concepts, i.e., tracing the origins of the major contributions back to the 60s?
Only when Holland becomes WCthorstenczub wrote:when will you try the idea in prodeo, ed ?
Now wait a minute Marco, it was I who loved him firstmcostalba wrote:Of course he won't. He never doesRebel wrote: Our Bob of course will comment, he always does. I am not sure if he totally agrees on the historic perspective.that's why we love him.
We must be talking about different things. R3 certainly has what I call "Kaufman's eval" (the main features are: mobility; attacks, either good-SEE or of loose pieces, and also x-rays; and "king guards"; though other aspects such as colour-based handling of bad bishops could be mentioned here also). Comparatively, my perception is that earlier Rybkas mostly had a Fruit-like eval with mobility as the dominant item in piece eval. [I don't know when restrictions like safe-square and forward mobility were first used]. I think the principal difference with R3 and Rybka 3 Human is that Kaufman included some "human-like" tweaks that didn't test well.Ovyron wrote:That was in since R2.3.1, actually, it was ditched for Rybka 3 and became Rybka 3 Human instead.BB+ wrote:R3 (3153): Kaufman's eval
Code: Select all
0x0055228e: mov 0x28b19b(%rip),%rcx # 0x7dd430
0x0055229c: mov %rcx,%rax # that is, WhitePawns
0x005522a9: shr %rax
0x005522af: mov $0x5555555555555555,%r11
0x005522b9: and %r11,%rax
0x005522c9: sub %rax,%rcx
0x005522d9: mov %rcx,%rax
0x0055229f: mov $0x3333333333333333,%rbx
0x005522dc: and %rbx,%rcx
0x005522df: shr $0x2,%rax
0x005522e3: and %rbx,%rax [this code is easily
0x005522e6: add %rcx,%rax recognised as POPCNT
0x005522e9: mov %rax,%rcx to the cognoscenti]
0x005522ec: shr $0x4,%rcx
0x005522f0: add %rax,%rcx
0x005522bf: mov $0xf0f0f0f0f0f0f0f,%r10
0x005522f3: and %r10,%rcx
0x005522cc: mov $0x101010101010101,%r9
0x005522f6: imul %r9,%rcx
0x005522fa: shr $0x38,%rcx
0x005522fe: cmp $0x28,%ecx [ #WhitePawns vs 40 ]
0x00552308: cmovl %r12d,%edx [ so edx will be 1 ]
0x00552351: test %dl,%dl
0x00552358: je 0x552373 [ branch not taken]
0x00551e92: mov 0x2a2067(%rip),%r8d # 0x7f3f00
0x0055235a: test %r8d,%r8d [ 0 unless few pieces? ]
0x0055235d: jne 0x552369
0x0055235f: callq 0x46e300 [ "main" search func ]
0x00552364: jmpq 0x552611
0x00552369: callq 0x462a00 [ "other" search func ]
0x0055236e: jmpq 0x552611
[...]