The SMP version
Speculative Move
Principle
The normal version first. Tests indicate a gain of 21 elo points. Improvements are marked in green on the idea-list.
ProDeo 2.2 (Winboard and UCI compatible) which you can run in multiple Interrfaces, among them the freeware Arena.
To run ProDeo you will need to announce the engine first.
______________________________________________________________________________________________________
The SMP playing style version
During the years (from the last REBEL version of 2003 on after my retirement and withdrawl from the competition while moving to the free ProDeo as a hobby) a lot has changed in the ProDeo search part. It were interesting times, the rise of a new generation in the 2005/6 period, Fruit, Zappa, Rybka, they took the old generation by surprise and quickly as well. Lots of new search ideas.
I still like(d) to follow the developments, understand the new ideas and sometimes try them to satisfy my curiosity. And so during the years I finally moved to full nullmove (giving up my own invented selective search which I used since 1984), rewrote futility pruning up to 6 plies, added LMR and it gave what it promised, elo.
However, I noticed a downside I disliked very much, the quality of the playing style went down. With all those reductions and pruning techniques (you need them to survive) you also cut in the chess knowledge as a result. I tried ways to fix this (which actually was surprisingly simple) but found out the elo loss that came with it was too big. I wanted a system that played more attractive without loss of elo.
I found the solution in using an extra core. Not the usual SMP approach to speed up the search, but the launch of a slightly different ProDeo engine running as slave in the background thinking about the same position but with a different (more spectulative) style. And when the slave reports another move that is clearly better (higher score) then the move of the slave is played.
Clearly better is defined and controlled by 2 parameters in the default ProDeo.eng
[Score Margin = 25] | The move of the slave engine must be at least 25 centipawns better. |
[Depth Margin = 0] | The move of the slave engine must have been searched with (at least) the same depth. Setting Depth Margin to 1 (or more) will accept a better move from the slave engine when it found something interesting one iteration less. 1 or even 2 can be handy using a slave personality with lots of extensions. |
Both settings are inferior to the standard version but with the safety margin of 0.25 the engine is expected hardly to loses any strenght while playing much more enterprising in critical situations. Some examples:
Rf6! is not found within 3 minutes and 20 plies, the SMP version gets it in 30 seconds.
SMP plays Nb4! in 8 seconds while the standard version takes 38 seconds.
Rxc6! 1:40 by ProDeo 2.2 (default), SMP in 25 seconds.
r3qrk1/4bppp/4p3/p2pP2Q/1p1B4/1PpPP3/P1P2RPP/5RK1 w - - bm Rf6;
r5k1/2p1b1p1/6bp/p4P2/q3pP2/2PnB2P/PP1N4/KR3Q1R b - - bm Nb4;
r3k2r/4b2p/p1n3pN/1p1q1p2/5B2/3p1P2/PP4PP/2RQR2K w kq - bm Rxc6;
______________________________________________________________________________________________________
Technical
[Core Personality = q3.eng] | Change to an (existing) personality in the Q3\PERSONAL folder. |
[Debug File = differences.epd] | Moves played by the SMP version are stored in EPD format. Example from the first diagram: r3qrk1/4bppp/4p3/p2pP2Q/1p1B4/1PpPP3/P1P2RPP/5RK1 w - - MASTER: 17 0.16 h5-g4; SLAVE : 18 1.10 f2-f6; |
[Output Margin = 200] | Only positions within a score window of -2.00 | +2.00 are stored. We simply are not interested in likely won | lost positions. |
______________________________________________________________________________________________________
Results and Future
______________________________________________________________________________________________________
Final remarks and downloads
Follow us at Facebook for the latest developments.