robertnurnberg / matetools

Python scripts to manipulate and provide mating PVs for Chest-like EPD files.
GNU General Public License v3.0
3 stars 1 forks source link

lengthen possibly short PVs found with engine support #36

Closed robertnurnberg closed 6 months ago

robertnurnberg commented 6 months ago

This PR uses the local engine to complete a possibly short PV.

Examples:

> pypy3 matetb.py --epd "8/8/8/8/NK6/1B1N4/2rpn1pp/2bk1brq w - -" --engine ./stockfish 
Running with options --epd "8/8/8/8/NK6/1B1N4/2rpn1pp/2bk1brq w - -" --excludeSANs "Nb6 Nb5 Nc4" --excludeFrom "a4 b3 d3" --excludeAllowingCapture --engine ./stockfish --limitDepth 2 --analyseAll
Restrict moves for WHITE side.
Create the allowed part of the game tree ...
Found 4437 positions in 9.16s
Connect child nodes ...
Connected 4437 positions in 0.58s
Generate tablebase ...
Tablebase generated with 6 iterations in 0.01s

Matetrack:
8/8/8/8/NK6/1B1N4/2rpn1pp/2bk1brq w - - bm #7; PV: b4a5 c1a3 a5a6 a3c1 a6b6 c1a3 b6a5 a3c1 a5b4 c1a3 b4a3 e2f4 ; PV is short;

Lengthening PV ... 

Matetrack with complete PV:
8/8/8/8/NK6/1B1N4/2rpn1pp/2bk1brq w - - bm #7; PV: b4a5 c1a3 a5a6 a3c1 a6b6 c1a3 b6a5 a3c1 a5b4 c1a3 b4a3 e2f4 a4c3;
> pypy3 matetb.py --epd "8/7p/8/8/NK6/1B1N4/2rpn1pp/2bk1brq w - -" --engine ./stockfish
Running with options --epd "8/7p/8/8/NK6/1B1N4/2rpn1pp/2bk1brq w - -" --excludeSANs "Nb6 Nb5 Nc4" --excludeFrom "a4 b3 d3" --excludeAllowingCapture --engine ./stockfish --limitDepth 2 --analyseAll
Restrict moves for WHITE side.
Create the allowed part of the game tree ...
Found 25625 positions in 31.45s
Connect child nodes ...
Connected 25625 positions in 2.28s
Generate tablebase ...
Tablebase generated with 17 iterations in 0.08s

Matetrack:
8/7p/8/8/NK6/1B1N4/2rpn1pp/2bk1brq w - - bm #27; PV: b4a5 c1a3 a5a6 a3c1 a6b6 c1a3 b6a5 a3c1 a5b4 h7h6 b4a5 c1a3 a5a6 a3c1 a6b6 c1a3 b6a5 a3c1 a5b4 h6h5 b4a5 c1a3 a5a6 a3c1 a6b6 c1a3 b6a5 a3c1 a5b4 h5h4 b4a5 c1a3 a5a6 a3c1 a6b6 c1a3 b6a5 a3c1 a5b4 h4h3 b4a5 c1a3 a5a6 a3c1 a6b6 c1a3 b6a5 a3c1 a5b4 c1a3 b4a3 e2f4 ; PV is short;

Lengthening PV ... 

Matetrack with complete PV:
8/7p/8/8/NK6/1B1N4/2rpn1pp/2bk1brq w - - bm #27; PV: b4a5 c1a3 a5a6 a3c1 a6b6 c1a3 b6a5 a3c1 a5b4 h7h6 b4a5 c1a3 a5a6 a3c1 a6b6 c1a3 b6a5 a3c1 a5b4 h6h5 b4a5 c1a3 a5a6 a3c1 a6b6 c1a3 b6a5 a3c1 a5b4 h5h4 b4a5 c1a3 a5a6 a3c1 a6b6 c1a3 b6a5 a3c1 a5b4 h4h3 b4a5 c1a3 a5a6 a3c1 a6b6 c1a3 b6a5 a3c1 a5b4 c1a3 b4a3 e2f4 a4c3;