Slight enhancement to PVS
Posted: 10 Jun 2007, 13:09
Here's a small analysis of zero window searches and perhaps a slight enhancment to PVS as well. Here's a slightly unconventional node type classification I use for imperfectly ordered trees:
Basically from the definitions, on OPEN nodes we know that a move will at a later time will likely increase alpha. On CUT nodes we know that the first move will likely cause a cutoff. On ALL nodes it is likely that all the moves will fail low. So basically just like in PVS we can do a "scout search" that tests only for the fail high or fail low and does a research of the move as an OPEN node if it doesn't:
Note this is identical to PVS in every manner except in how the research is handled. For the research, if the PV doesn't increase alpha, the node remains an OPEN node. PVS assumes that it becomes an ALL node which I think is a slight inefficiency because our scout search asserts that one of the lines will increase alpha except in the case of search instability...
Quick Benchmarks on a P4 2.8 Ghz with 64MB hash:
[diag]rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w[/diag]
[diag]4k3/5p2/6pp/B7/P1P5/6PP/5PK1/8 w[/diag]
[diag]R3r1k1/2qb1pbn/1n1p2p1/2pP3p/1p2P3/7P/1P2NPB1/1QBNR1K1 b[/diag]
My implementations:
- Code: Select all
OPEN Nodes
----------
The root node is an OPEN node.
All children of OPEN nodes are an OPEN nodes.
An OPEN node changes to an ALL node when alpha is raised.
ALL Nodes
---------
All children of ALL nodes are CUT nodes.
An ALL node changes an OPEN node when the scout search fails high.
(will define "scout search" later)
CUT Nodes
---------
The first child of a CUT node is an ALL node.
A CUT node changes to an ALL node when the first move fails low.
Notes:
======
Parallelism isn't good on OPEN nodes because there is too much search overhead for the current window. It is very likely that the window will be smaller at a later time and that parallel search should wait until the window is smaller.
Parallelism isn't good on CUT nodes because there is too much search overhead because one of the moves will cutoff the search.
Parallelism is possible only on ALL nodes.
Basically from the definitions, on OPEN nodes we know that a move will at a later time will likely increase alpha. On CUT nodes we know that the first move will likely cause a cutoff. On ALL nodes it is likely that all the moves will fail low. So basically just like in PVS we can do a "scout search" that tests only for the fail high or fail low and does a research of the move as an OPEN node if it doesn't:
- Code: Select all
a=alpha=lowerbound
b=beta=upperbound
On OPEN nodes search normally.
On nodes with a == b+1 search normally.
ALL Nodes:
Because ALL nodes are expected to fail low, all you need to do is prove the fail low so you can do a scout search on all moves assuming the current window is (a,a+1). If it fails high the node type changes to OPEN and you do a research.
CUT Nodes:
You always enter a CUT node in a zero window because it always succeeds an ALL node and scout search is done for all moves in an ALL node. And from the above conditions for zero windows, you always do a normal search on CUT nodes.
Note this is identical to PVS in every manner except in how the research is handled. For the research, if the PV doesn't increase alpha, the node remains an OPEN node. PVS assumes that it becomes an ALL node which I think is a slight inefficiency because our scout search asserts that one of the lines will increase alpha except in the case of search instability...
- Code: Select all
#define OPEN_NODE 0
#define CUT_NODE 1
#define ALL_NODE 2
int childNodeType(const int previous_type)
{
switch(previous_type)
{
case ALL_NODE: return CUT_NODE;
case CUT_NODE: return ALL_NODE;
default: return OPEN_NODE;
}
}
int alphabeta(int depth, int alpha, int beta, int p_nodeType)
{
int score = -MATE;
int nodeType = childNodeType(p_nodeType);
//Depth=0, Game decidable recognizers, Hashtables,
//Mate-distance pruning for beta only, Nullmove, stuff...
for( /* every move m */ )
{
int tempscore;
int lowerbound = max(alpha,score);
<makemove m>
//a CUT_NODE always has a zero window
if(lowerbound+1==beta || nodeType==OPEN_NODE)
tempscore = -alphabeta(depth-1, -beta, -lowerbound, nodeType);
else /* Node is a non-zero window ALL node */
{
tempscore = -alphabeta(depth-1, -(lowerbound+1), -lowerbound, nodeType);
if(tempscore > lowerbound && tempscore < beta)
{
nodeType = OPEN_NODE;
tempscore = -alphabeta(depth-1, -beta, -(tempscore-1), nodeType);
}
}
<unmakemove m>
if(nodeType == CUT_NODE && tempscore<beta)
nodeType = ALL_NODE;
if(tempscore>score)
{
score = tempscore;
if(score >= beta)
return score;
if(score > alpha)
{
if(nodeType == OPEN_NODE)
nodeType = ALL_NODE;
}
}
}
return score;
}
Quick Benchmarks on a P4 2.8 Ghz with 64MB hash:
[diag]rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w[/diag]
- Code: Select all
Times are not accurate, look at node counts.
<depth> <score> <centiseconds> <nodes> <PV>
PVS
1 25 0 1 Nc3
1 59 0 9 d4
1 63 0 11 e4
1 63 0 22 e4
2 0 0 43 e4 e5
2 0 0 89 e4 e5
3 34 0 409 e4 Nf6 Nc3
3 56 0 639 d4 Nf6 e3
3 56 1 661 d4 Nf6 e3
4 -36 1 1132 d4 e6 Qd3 Qh4
4 0 1 1573 Nc3 Nc6 Nf3 Nf6
4 8 1 2040 e4 Nf6 e5 Nd5
4 8 1 2926 e4 Nf6 e5 Nd5
5 30 4 6205 e4 d5 Qf3 e6 a4
5 31 4 7883 Nc3 Nc6 e3 Nf6 Bd3
5 56 6 11704 e3 Nf6 Qf3 e5 Nc3
5 56 7 12630 e3 Nf6 Qf3 e5 Nc3
6 -6 10 20287 e3 Nc6 d4 d5 Qh5 Qd6
6 -1 18 33467 Nc3 e6 e4 Nc6 Qh5 g5
6 -1 28 52737 Nc3 e6 e4 Nc6 Qh5 g5
7 27 53 97857 Nc3 Nc6 d4 e5 dxe5 d6 Nf3
7 29 65 125602 Nf3 d5 d4 h6 Qd3 Qd6 Ne5
7 29 75 147888 Nf3 d5 d4 h6 Qd3 Qd6 Ne5
8 -6 107 207087 Nf3 d5 d4 h6 Nc3 Qd6 Ne5 g5
8 0 231 438253 d4 d5 Nc3 Nc6 h3 h6 g4 g5
8 1 293 559851 e3 Nc6 Bb5 Nf6 Qf3 e5 Nc3 d5
8 1 448 797145 e3 Nc6 Bb5 Nf6 Qf3 e5 Nc3 d5
9 11 900 1714216 e3 d5 Nf3 Nc6 Nd4 Nxd4 exd4 Qd6 Qh5
9 22 1125 2187834 Nf3 d5 d4 Nc6 Qd3 Qd6 h3 h6 Nc3
9 22 1290 2535906 Nf3 d5 d4 Nc6 Qd3 Qd6 h3 h6 Nc3
10 3 1640 3233235 Nf3 d5 d4 Nf6 Qd3 Qd6 Nc3 h6 Qb5+ c6 Qc5
10 4 1996 3958070 Nc3 Nc6 d4 d5 Bf4 f6 Nf3 g5 Bg3 h5
10 4 3867 7847359 Nc3 Nc6 d4 d5 Bf4 f6 Nf3 g5 Bg3 h5
11 19 6982 13935286 Nc3 Nc6 d4 d5 Bf4 Nf6 e3 a6 Be5 Nxe5 dxe5
11 19 7834 15791726 Nc3 Nc6 d4 d5 Bf4 Nf6 e3 a6 Be5 Nxe5 dxe5
NTS (Node-Type Search is a good name?)
1 25 0 1 Nc3
1 59 0 9 d4
1 63 0 11 e4
1 63 0 22 e4
2 0 0 45 e4 e5
2 0 0 91 e4 e5
3 34 1 416 e4 Nf6 Nc3
3 56 1 646 d4 Nf6 e3
3 56 1 668 d4 Nf6 e3
4 -36 1 1139 d4 e6 Qd3 Qh4
4 0 1 1580 Nc3 Nc6 Nf3 Nf6
4 8 1 2047 e4 Nf6 e5 Nd5
4 8 3 2933 e4 Nf6 e5 Nd5
5 30 4 6224 e4 d5 Qf3 e6 a4
5 31 4 7902 Nc3 Nc6 e3 Nf6 Bd3
5 56 7 11710 e3 Nf6 Qf3 e5 Nc3
5 56 7 12636 e3 Nf6 Qf3 e5 Nc3
6 -6 10 20292 e3 Nc6 d4 d5 Qh5 Qd6
6 -1 17 33338 Nc3 e6 e4 Nc6 Qh5 g5
6 -1 28 52613 Nc3 e6 e4 Nc6 Qh5 g5
7 27 51 97498 Nc3 Nc6 d4 e5 dxe5 d6 Nf3
7 29 64 125345 Nf3 d5 d4 h6 Qd3 Qd6 Ne5
7 29 75 147637 Nf3 d5 d4 h6 Qd3 Qd6 Ne5
8 -6 104 206687 Nf3 d5 d4 h6 Nc3 Qd6 Ne5 g5
8 0 217 438000 d4 d5 Nc3 Nc6 h3 h6 g4 g5
8 1 275 560066 e3 Nc6 Bb5 Nf6 Qf3 e5 Nc3 d5
8 1 392 797900 e3 Nc6 Bb5 Nf6 Qf3 e5 Nc3 d5
9 11 851 1721569 e3 d5 Nf3 Nc6 Nd4 Nxd4 exd4 Qd6 Qh5
9 22 1079 2197230 Nf3 d5 d4 Nc6 Qd3 Qd6 h3 h6 Nc3
9 22 1245 2544411 Nf3 d5 d4 Nc6 Qd3 Qd6 h3 h6 Nc3
10 3 1596 3239388 Nf3 d5 d4 Nf6 Qd3 Qd6 Nc3 h6 Qb5+ c6 Qc5
10 4 1957 3963162 Nc3 Nc6 d4 d5 Bf4 f6 Nf3 g5 Bg3 h5
10 4 3882 7858987 Nc3 Nc6 d4 d5 Bf4 f6 Nf3 g5 Bg3 h5
11 19 6950 13694847 Nc3 Nc6 d4 d5 Bf4 Nf6 e3 a6 Be5 Nxe5 dxe5
11 19 7800 15529047 Nc3 Nc6 d4 d5 Bf4 Nf6 e3 a6 Be5 Nxe5 dxe5
Alphabeta
1 25 0 1 Nc3
1 59 0 8 d4
1 63 0 9 e4
1 63 0 20 e4
2 0 0 41 e4 e5
2 0 0 87 e4 e5
3 34 0 309 e4 Nf6 Nc3
3 56 0 481 d4 Nf6 e3
3 56 0 503 d4 Nf6 e3
4 -36 1 876 d4 e6 Qd3 Qh4
4 8 1 1219 e4 Nf6 e5 Nd5
4 8 1 2259 e4 Nf6 e5 Nd5
5 30 3 5361 e4 d5 Qf3 e6 a4
5 31 4 6722 Nc3 Nc6 e3 Nf6 Bd3
5 56 7 12815 e3 Nf6 Qf3 e5 Nc3
5 56 7 12944 e3 Nf6 Qf3 e5 Nc3
6 -6 11 19360 e3 Nc6 d4 d5 Qh5 Qd6
6 -3 12 23287 Nc3 Nc6 Nf3 Nf6 h3 a5
6 -3 25 49879 Nc3 Nc6 Nf3 Nf6 h3 a5
7 27 46 89520 Nc3 Nc6 d4 e5 dxe5 d6 Nf3
7 29 61 120532 Nf3 d5 d4 h6 Qd3 Qd6 Ne5
7 29 70 144625 Nf3 d5 d4 h6 Qd3 Qd6 Ne5
8 -6 107 216627 Nf3 d5 d4 h6 Nc3 Qd6 Ne5 g5
8 0 181 369494 Nc3 Nc6 d4 d5 h3 h6 g4 g5
8 1 218 447072 e3 Nc6 Bb5 Nf6 Qf3 e5 Nc3 d5
8 1 473 946817 e3 Nc6 Bb5 Nf6 Qf3 e5 Nc3 d5
9 11 957 1864034 e3 d5 Nf3 Nc6 Nd4 Nxd4 exd4 Qd6 Qh5
9 24 1176 2278041 Nf3 d5 d4 Nf6 Qd3 Nc6 h3 Ne4 Bd2
9 24 1329 2614454 Nf3 d5 d4 Nf6 Qd3 Nc6 h3 Ne4 Bd2
10 4 1767 3476484 Nf3 d5 d4 Nf6 Qd3 Nc6 Nc3 Bg4 Ne5 Qd6
10 4 4796 9601553 Nf3 d5 d4 Nf6 Qd3 Nc6 Nc3 Bg4 Ne5
11 14 7217 14346966 Nf3 d5 d4 Nc6 Qd3 Qd6 a3 h6 h3 g5 g4
11 17 10100 20090312 Nc3 Nc6 d4 d5 h3 h6 a3 a6 Nf3 g5 Ne5
11 19 14156 28000545 d4 d5 Qd3 Nc6 Bd2 g6 Nf3 Nf6 Nh4 Ne4
11 19 15378 30591797 d4 d5 Qd3 Nc6 Bd2 g6 Nf3 Nf6 Nh4 Ne4
[diag]4k3/5p2/6pp/B7/P1P5/6PP/5PK1/8 w[/diag]
- Code: Select all
NTS
setboard 4k3/5p2/6pp/B7/P1P5/6PP/5PK1/8 w
analyze
1 648 0 1 c5
1 664 0 3 Bc3
1 682 0 5 Bd2
1 682 0 19 Bd2
2 646 0 30 Bd2 g5
2 652 0 52 Bc3 f5
2 652 0 83 Bc3 f5
3 672 0 149 Bc3 f5 Bd2
3 679 0 265 c5 g5 Bc3
3 680 1 322 Bd2 g5 g4
3 680 1 583 Bd2 g5 g4
4 674 1 683 Bd2 g5 g4 f6
4 674 1 1324 Bd2 g5 g4 f6
5 686 1 1893 Bd2 g5 g4 f6 a5
5 686 3 6646 Bd2 g5 g4 f6 a5
6 677 3 7850 Bd2 g5 g4 Kd7 Be3 f6
6 677 4 18529 Bd2 g5 g4 Kd7 Be3 f6
7 704 7 26092 Bd2 g5 a5 Kd7 a6 Kc6 g4
7 704 15 72221 Bd2 g5 a5 Kd7 a6 Kc6 g4
8 698 18 87499 Bd2 g5 a5 Kd7 a6 Kc6 g4 f6
8 698 40 191884 Bd2 g5 a5 Kd7 a6 Kc6 g4 f6
9 701 54 265455 Bd2 g5 g4 Ke7 f4 f6 Kg3 Ke6 f5+ Kd6
9 701 117 617088 Bd2 g5 g4 Ke7 f4 f6 Kg3 Ke6 f5+ Kd6
10 711 178 942646 Bd2 h5 a5 Kd7 a6 Kc6 a7 Kb7 Be3 f6 g4
10 711 315 1699560 Bd2 h5 a5 Kd7 a6 Kc6 a7 Kb7 Be3 f6 g4
11 720 393 2130461 Bd2 h5 a5 Kd7 a6 Kc7 Be3 Kb8 Kf3 f6 Ke4
11 720 845 4647235 Bd2 h5 a5 Kd7 a6 Kc7 Be3 Kb8 Kf3 f6
12 731 1035 5609027 Bd2 h5 a5 Kd7 a6 Kc7 Be3 g5 a7 Kb7 g4 hxg4 hxg4
12 731 2801 15028430 Bd2 h5 a5 Kd7 a6 Kc7 Be3 g5 a7 Kb7 g4 hxg4 hxg4
13 739 3329 17175614 Bd2 h5 a5 Kd7 a6 Kc6 c5 f6 Bc3 f5
13 762 5332 26380133 g4 Kd7 Bd2 h5 gxh5 gxh5 Kg3 Kc6 Be3 f5 Kh4 Kb7 Kxh5
13 762 7395 37286379 g4 Kd7 Bd2 h5 gxh5 gxh5 Kg3 Kc6 Be3 f5 Kh4 Kb7
14 765 8992 45377299 g4 Kd7 Bb6 Kc6 Be3 h5 gxh5 gxh5 Kg3 Kb7 Kh4 Ka6 Bd2 f5
14 771 12326 62298321 Bb4 Kd7 Kf3 h5 a5 Kc6 Kf4 h4 g4 f5 Be7 fxg4 Kxg4 g5
14 774 13889 70426328 Bc3 Kd7 Kf3 Kc6 Kf4 h5 Bb4 Kd7 Ke5 h4 gxh4 Kd8 c5 Ke8
14 841 16159 82147663 Bd2 Kd7 Bxh6 Kc6 a5 Kb7 Bg7 Ka6 Bc3 Kb7 g4 f5 f4
14 841 19289 98335409 Bd2 Kd7 Bxh6 Kc6 a5 Kb7 Bg7 Ka6 Bc3 Kb7 g4 f5
PVS
1 648 0 1 c5
1 664 0 3 Bc3
1 682 0 5 Bd2
1 682 0 19 Bd2
2 646 0 29 Bd2 g5
2 652 0 51 Bc3 f5
2 652 0 82 Bc3 f5
3 672 0 146 Bc3 f5 Bd2
3 679 0 262 c5 g5 Bc3
3 680 0 319 Bd2 g5 g4
3 680 0 580 Bd2 g5 g4
4 674 1 677 Bd2 g5 g4 f6
4 674 1 1318 Bd2 g5 g4 f6
5 686 1 1887 Bd2 g5 g4 f6 a5
5 686 3 6640 Bd2 g5 g4 f6 a5
6 664 3 9426 Bd2 g5 f4 f6 f5 h5
6 676 6 17371 Bc3 Kf8 Bb4+ Kg7 a5 f5 Bd2
6 676 7 24735 Bc3 Kf8 Bb4+ Kg7 a5 f5 Bd2
7 684 15 62181 Bc3 Kd7 a5 Kc6 Bd4 f5 Bf6
7 704 18 75106 Bd2 g5 a5 Kd7 a6 Kc6 g4
7 704 23 101857 Bd2 g5 a5 Kd7 a6 Kc6 g4
8 698 28 120654 Bd2 g5 a5 Kd7 a6 Kc6 g4 f6
8 698 50 227055 Bd2 g5 a5 Kd7 a6 Kc6 g4 f6
9 701 65 304471 Bd2 g5 g4 Ke7 f4 f6 Kg3 Ke6 f5+ Kd6
9 701 139 704543 Bd2 g5 g4 Ke7 f4 f6 Kg3 Ke6 f5+ Kd6
10 711 190 986012 Bd2 h5 a5 Kd7 a6 Kc6 a7 Kb7 Be3 f6 g4
10 711 361 1861536 Bd2 h5 a5 Kd7 a6 Kc6 a7 Kb7 Be3 f6 g4
11 720 475 2376830 Bd2 h5 a5 Kd7 a6 Kc7 Be3 Kb8 Kf3 f6 Ke4
11 720 1056 5404921 Bd2 h5 a5 Kd7 a6 Kc7 Be3 Kb8 Kf3 f6
12 731 1232 6378347 Bd2 h5 a5 Kd7 a6 Kc7 Be3 g5 a7 Kb7 g4 hxg4 hxg4
12 731 3362 17181666 Bd2 h5 a5 Kd7 a6 Kc7 Be3 g5 a7 Kb7 g4 hxg4 hxg4
13 739 3900 20039434 Bd2 h5 a5 Kd7 a6 Kc6 c5 f6 Bc3 f5 Bf6 g5 Bxg5 Kxc5 a7 Kd6
13 762 6271 32826482 g4 Kd7 Bd2 h5 gxh5 gxh5 Kg3 Kc6 Be3 f5 Kh4
13 762 8970 47095627 g4 Kd7 Bd2 h5 gxh5 gxh5 Kg3 Kc6 Be3 f5 Kh4
14 766 11923 62486005 g4 Kd7 Kg3 Kc6 Bd2 g5 Bb4 Kd7 a5 f5 gxf5 h5 c5 Kc7 a6 Kc6 f4
14 771 19171 99330237 Bb4 Kd7 Kf3 h5 a5 Kc6 Kf4 h4 g4 f5 Be7 fxg4
14 839 23220 119908004 Bd2 Kd7 Bxh6 Kc6 a5 Kb7 Bg7 Kc6 f4 g5 f5 Kc5 Bf6 Kxc4
14 839 27703 142307559 Bd2 Kd7 Bxh6 Kc6 a5 Kb7 Bg7 Kc6 f4 g5 f5 Kc5 Bf6
Alphabeta
1 648 0 1 c5
1 664 0 2 Bc3
1 682 0 3 Bd2
1 682 0 17 Bd2
2 646 1 27 Bd2 g5
2 652 1 39 Bc3 f5
2 652 1 70 Bc3 f5
3 672 1 146 Bc3 f5 Bd2
3 679 1 195 c5 g5 Bc3
3 680 1 234 Bd2 g5 g4
3 680 1 495 Bd2 g5 g4
4 674 1 589 Bd2 g5 g4 f6
4 674 1 1237 Bd2 g5 g4 f6
5 686 3 1824 Bd2 g5 g4 f6 a5
5 686 3 8387 Bd2 g5 g4 f6 a5
6 664 4 10942 Bd2 g5 f4 f6 f5 h5
6 676 6 17331 Bc3 Kf8 Bb4+ Kg7 a5 f5 Bd2
6 676 7 25839 Bc3 Kf8 Bb4+ Kg7 a5 f5 Bd2
7 684 15 63687 Bc3 Kd7 a5 Kc6 Bd4 f5 Bf6
7 704 17 74460 Bd2 g5 a5 Kd7 a6 Kc6 g4
7 704 21 100826 Bd2 g5 a5 Kd7 a6 Kc6 g4
8 698 26 119744 Bd2 g5 a5 Kd7 a6 Kc6 g4 f6
8 698 45 223105 Bd2 g5 a5 Kd7 a6 Kc6 g4 f6
9 701 60 303715 Bd2 g5 g4 Ke7 f4 f6 f5 Kd6 Kg3
9 702 104 535850 Bb4 Kd7 a5 Kc6 Bf8 h5 Be7 Kd7 Bg5 Ke8 a6 Kd7 Bf4
9 702 137 723154 Bb4 Kd7 a5 Kc6 Bf8 h5 Be7 Kd7 Bg5 Ke8 a6 Kd7 Bf4
10 702 181 940674 Bb4 Kd7 a5 Kc6 Bf8 h5 Be7 Kd7 Bg5 Kc6 Be7
10 711 281 1441322 Bd2 h5 a5 Kd7 a6 Kc6 a7 Kb7 Be3 f6 g4
10 711 393 2024588 Bd2 h5 a5 Kd7 a6 Kc6 a7 Kb7 Be3 f6 g4
11 720 518 2691600 Bd2 h5 a5 Kd7 a6 Kc7 Be3 Kb8 Kf3 f6 Ke4
11 720 1064 5694121 Bd2 h5 a5 Kd7 a6 Kc7 Be3 Kb8 Kf3 f6
12 731 1357 7179708 Bd2 h5 a5 Kd7 a6 Kc7 Be3 g5 a7 Kb7 g4 hxg4 hxg4
12 757 2192 11767144 g4 Kd7 Bd2 g5 Bb4 f6 Bf8 h5 gxh5 Ke6 Kg3 f5 a5
12 757 3112 16508879 g4 Kd7 Bd2 g5 Bb4 f6 Bf8 h5 gxh5 Ke6 Kg3 f5 a5
13 762 4248 22764970 g4 Kd7 Bd2 h5 gxh5 gxh5 Kg3 Kc6 Be3 f5 Kh4 Kb7
13 762 8612 45821565 g4 Kd7 Bd2 h5 gxh5 gxh5 Kg3 Kc6 Be3 f5 Kh4
14 770 13832 71837921 g4 Kd7 Kg3 Kc6 Bd2 g5 Bb4 Kb7 a5 f5 gxf5 h5 f4
14 781 22021 111562629 Bb4 Kd7 Kf3 f5 Kf4 Ke6 h4 Kf6 Bc3+ Ke6 Bg7 Kd6 Bxh6
14 845 26145 132369211 Bd2 Kd7 Bxh6 Kc6 a5 Kb7 c5 f6 Bg7 f5 f4 Ka6
14 845 31943 160266360 Bd2 Kd7 Bxh6 Kc6 a5 Kb7 c5 f6 Bg7 f5 f4 Ka6
[diag]R3r1k1/2qb1pbn/1n1p2p1/2pP3p/1p2P3/7P/1P2NPB1/1QBNR1K1 b[/diag]
- Code: Select all
Alphabeta
setboard R3r1k1/2qb1pbn/1n1p2p1/2pP3p/1p2P3/7P/1P2NPB1/1QBNR1K1 b
analyze
1 218 0 1 Nxa8
1 241 0 2 Rxa8
1 241 0 43 Rxa8
2 211 0 82 Rxa8 Bf4
2 211 0 346 Rxa8 Bf4
3 234 0 544 Rxa8 f4 h4
3 234 0 1100 Rxa8 f4 h4
4 212 1 1539 Rxa8 f4 h4 f5
4 212 3 4233 Rxa8 f4 h4 f5
5 224 6 10129 Rxa8 f4 f5 Ne3 fxe4
5 224 7 14694 Rxa8 f4 f5 Ne3 fxe4
6 224 14 27143 Rxa8 f4 f5 Ne3 fxe4 Bxe4
6 224 20 43902 Rxa8 f4 f5 Ne3 fxe4 Bxe4
7 223 60 134889 Rxa8 f4 Qb7 Nf2 f5 b3 fxe4
7 223 64 140009 Rxa8 f4 Qb7 Nf2 f5 b3 fxe4
8 220 184 402680 Rxa8 f4 Qc8 Qd3 f5 Ne3 fxe4 Bxe4
8 220 207 460115 Rxa8 f4 Qc8 Qd3 f5 Ne3 fxe4 Bxe4
9 221 900 2015121 Rxa8 b3 h4 Nb2 Kh8 Qd3 f5 Nc4 Nxc4
9 221 940 2096937 Rxa8 b3 h4 Nb2 Kh8 Qd3 f5 Nc4 Nxc4
10 212 3046 6615608 Rxa8 b3 Qc8 Qd3 h4 Nb2 f5 Nc4 Nxc4 bxc4
10 212 3614 7906203 Rxa8 b3 Qc8 Qd3 h4 Nb2 f5 Nc4 Nxc4 bxc4
11 222 8379 18499881 Rxa8 b3 Qc8 Qd3 h4 Nb2 Qa6 Qxa6 Rxa6 Nc4 Nxc4
11 222 8678 19242666 Rxa8 b3 Qc8 Qd3 h4 Nb2 Qa6 Qxa6 Rxa6 Nc4 Nxc4
PVS
1 218 0 1 Nxa8
1 241 0 3 Rxa8
1 241 0 44 Rxa8
2 211 0 83 Rxa8 Bf4
2 211 1 335 Rxa8 Bf4
3 234 1 585 Rxa8 f4 h4
3 234 1 1141 Rxa8 f4 h4
4 212 1 1577 Rxa8 f4 h4 f5
4 212 3 4277 Rxa8 f4 h4 f5
5 224 6 9365 Rxa8 f4 f5 Ne3 fxe4
5 224 7 13643 Rxa8 f4 f5 Ne3 fxe4
6 224 14 25073 Rxa8 f4 f5 Ne3 fxe4 Bxe4
6 224 20 41789 Rxa8 f4 f5 Ne3 fxe4 Bxe4
7 223 57 127093 Rxa8 f4 Qb7 Nf2 f5 b3 fxe4
7 223 59 132156 Rxa8 f4 Qb7 Nf2 f5 b3 fxe4
8 220 228 498563 Rxa8 f4 Qc8 Qd3 f5 Ne3 fxe4 Bxe4
8 220 257 571305 Rxa8 f4 Qc8 Qd3 f5 Ne3 fxe4 Bxe4
9 221 665 1520852 Rxa8 b3 h4 Nb2 Kh8 Qd3 f5 Nc4 Nxc4
9 221 706 1603847 Rxa8 b3 h4 Nb2 Kh8 Qd3 f5 Nc4 Nxc4
10 212 2125 4645561 Rxa8 b3 Qc8 Qd3 h4 Nb2 f5 Nc4 Nxc4 bxc4
10 212 2500 5530674 Rxa8 b3 Qc8 Qd3 h4 Nb2 f5 Nc4 Nxc4 bxc4
11 222 4687 10372117 Rxa8 b3 Qc8 Qd3 h4 Nb2 Qa6 Qxa6 Rxa6 Nc4 Nxc4
11 222 5001 11128855 Rxa8 b3 Qc8 Qd3 h4 Nb2 Qa6 Qxa6 Rxa6 Nc4 Nxc4
NTS
1 218 0 1 Nxa8
1 241 0 3 Rxa8
1 241 0 44 Rxa8
2 211 0 85 Rxa8 Bf4
2 211 0 337 Rxa8 Bf4
3 234 0 594 Rxa8 f4 h4
3 234 1 1150 Rxa8 f4 h4
4 212 1 1586 Rxa8 f4 h4 f5
4 212 3 4286 Rxa8 f4 h4 f5
5 224 6 9386 Rxa8 f4 f5 Ne3 fxe4
5 224 7 13664 Rxa8 f4 f5 Ne3 fxe4
6 224 14 25094 Rxa8 f4 f5 Ne3 fxe4 Bxe4
6 224 20 41810 Rxa8 f4 f5 Ne3 fxe4 Bxe4
7 223 57 127219 Rxa8 f4 Qb7 Nf2 f5 b3 fxe4
7 223 60 132282 Rxa8 f4 Qb7 Nf2 f5 b3 fxe4
8 220 242 523875 Rxa8 f4 Qc8 Qd3 f5 Ne3 fxe4 Bxe4
8 220 271 594691 Rxa8 f4 Qc8 Qd3 f5 Ne3 fxe4 Bxe4
9 221 732 1652084 Rxa8 b3 h4 Nb2 Kh8 Qd3 f5 Nc4 Nxc4
9 221 773 1734585 Rxa8 b3 h4 Nb2 Kh8 Qd3 f5 Nc4 Nxc4
10 212 2187 4734066 Rxa8 b3 Qc8 Qd3 h4 Nb2 f5 Nc4 Nxc4 bxc4
10 212 2501 5476958 Rxa8 b3 Qc8 Qd3 h4 Nb2 f5 Nc4 Nxc4 bxc4
11 222 4709 10292837 Rxa8 b3 Qc8 Qd3 h4 Nb2 Qa6 Qxa6 Rxa6 Nc4 Nxc4
11 222 5004 11055657 Rxa8 b3 Qc8 Qd3 h4 Nb2 Qa6 Qxa6 Rxa6 Nc4 Nxc4
My implementations: