Author: Bernhard Bauer
Date: 21:20:16 08/10/98
Go up one level in this thread
On August 10, 1998 at 04:59:04, Robert Hyatt wrote:
>On August 09, 1998 at 23:57:46, blass uri wrote:
>
>>
>>On August 09, 1998 at 23:28:43, Jouni Uski wrote:
>>
>>>Can any programming expert explain this: There are some simple positions, which
>>>Fritz5 is not able to solve because of null-move(as I have been told). But
>>>are they totally unsolvable even if I give Fritz enough time let's say one
>>>year?!
>>
>>I did not give fritz one year to run but I believe Fritz cannot solve them
>>and it is not a problem of time.
>>If there is no threat then fritz simply do not analyze so it cannot see.
>>There are positions other programs can solve in 1 second and fritz cannot solve
>>because it sees the result of 1 move is a draw and cannot see the result of a
>>second move is better because there is no threat in the second move.
>>
>>These positions are not common because fritz does not use null move in king and
>>pawn endgames and when there are queens in the board
>>position with no threat are not common.
>>
>>Uri
>>>
>>>Jouni
>
>
>
>Basically null-move fails whenever there is a zugzwang. Which means that
>not moving is the best move. There are few such positions when there are
This is the usual argument: There are few positions where null move fails.
However, chess seems to be a set of many types which seldom occur.
Bruce Moreland comes to mind when he provided code for a KNN-KP endgame and
soon after he did it happend.
If your program fails on nullmove uou are likely to never notice and that
will strengthen you that null move problems are very rare.
>pieces on the board, but they do exist. And in such positions, each time
>such a situation arises, the null-move fails high, not because the position
>is good for the side on move, but because the position is so bad that doing
>nothing is actually the best move...
>
>and no amount of searching will get around that, unless the null-move
>algorithm is modified in some way... It is possible, however, to reduce
>the frequency of occurrences, but it means turning null-move off at selected
>nodes...
If you use a chess program for analysis purposes time (speed) may not be
the most important thing - you may prefer accuracy. You may want your
program to solve any type of position, at least to some debth.
Here are two examples with a *modified* crafty to avoid the null move problem.
FEN: 8/2b2pk1/6p1/p2p3p/P2P1P1P/2P3P1/2qB2QK/8 b
+---+---+---+---+---+---+---+---+
8 | | | | | | | | |
+---+---+---+---+---+---+---+---+
7 | | | *B| | | *P| *K| |
+---+---+---+---+---+---+---+---+
6 | | | | | | | *P| |
+---+---+---+---+---+---+---+---+
5 | *P| | | *P| | | | *P|
+---+---+---+---+---+---+---+---+
4 | P | | | P | | P | | P |
+---+---+---+---+---+---+---+---+
3 | | | P | | | | P | |
+---+---+---+---+---+---+---+---+
2 | | | *Q| B | | | Q | K |
+---+---+---+---+---+---+---+---+
1 | | | | | | | | |
+---+---+---+---+---+---+---+---+
a b c d e f g h
Black(1): end-game phase
clearing hash tables
time surplus 0.00 time limit 10:00 (10:00)
depth time score variation (1)
starting thread 1
5 0.11 -0.66 1. ... Qd1 2. Kh3 Qg4+ 3. Kh2 Qd1
5-> 0.24 -0.66 1. ... Qd1 2. Kh3 Qg4+ 3. Kh2 Qd1
6 0.28 -0.66 1. ... Qd1 2. Kh3 Qg4+ 3. Kh2 Qd1
6-> 0.49 -0.66 1. ... Qd1 2. Kh3 Qg4+ 3. Kh2 Qd1
7 0.69 -0.66 1. ... Qd1 2. Kh3 Qg4+ 3. Kh2 Qd1
7-> 1.70 -0.66 1. ... Qd1 2. Kh3 Qg4+ 3. Kh2 Qd1
8 2.39 -0.66 1. ... Qd1 2. Kh3 Qg4+ 3. Kh2 Qd1
8-> 4.64 -0.66 1. ... Qd1 2. Kh3 Qg4+ 3. Kh2 Qd1
9 7.28 -0.66 1. ... Qd1 2. Kh3 Qg4+ 3. Kh2 Qd1
9-> 16.00 -0.66 1. ... Qd1 2. Kh3 Qg4+ 3. Kh2 Qd1
10 23.75 -0.66 1. ... Qd1 2. Kh3 Qg4+ 3. Kh2 Qd1
10 56.27 ++ 1. ... Qxa4!!
10 1:04 -0.27 1. ... Qxa4 2. Qxd5 Qc2 3. Qg2 a4 4.
f5 Qxf5 5. Bc1 Bd6 6. Bg5
10-> 1:19 -0.27 1. ... Qxa4 2. Qxd5 Qc2 3. Qg2 a4 4.
f5 Qxf5 5. Bc1 Bd6 6. Bg5
11 1:55 -0.01 1. ... Qxa4 2. Qxd5 Qc2 3. Qg2 a4 4.
f5 Qxf5 5. Bg5 f6 6. Be3 a3 7. c4
11-> 3:40 -0.01 1. ... Qxa4 2. Qxd5 Qc2 3. Qg2 a4 4.
f5 Qxf5 5. Bg5 f6 6. Be3 a3 7. c4
12 6:28 -0.08 1. ... Qxa4 2. Qxd5 Qc2 3. Qg2 a4 4.
f5 Qxf5 5. Bc1 Qg4 6. Bg5 a3 7. Be7
a2 8. Qxa2 Bxg3+
time: 10:00 cpu:200% mat:-1 n:128702148 nps:214364
ext-> checks:10118863 recaps:653709 pawns:565899 1rep:4053339
predicted:0 nodes:128702148 evals:11368176
endgame tablebase-> probes done: 10 successful: 10
hashing-> trans/ref:38% pawn:24% used:w99% b99%
Black(1): Qxa4
time used: 10:00
and FEN: 2q5/8/6p1/B6p/7k/7P/R5PK/8 w
+---+---+---+---+---+---+---+---+
8 | | | *Q| | | | | |
+---+---+---+---+---+---+---+---+
7 | | | | | | | | |
+---+---+---+---+---+---+---+---+
6 | | | | | | | *P| |
+---+---+---+---+---+---+---+---+
5 | B | | | | | | | *P|
+---+---+---+---+---+---+---+---+
4 | | | | | | | | *K|
+---+---+---+---+---+---+---+---+
3 | | | | | | | | P |
+---+---+---+---+---+---+---+---+
2 | R | | | | | | P | K |
+---+---+---+---+---+---+---+---+
1 | | | | | | | | |
+---+---+---+---+---+---+---+---+
a b c d e f g h
White(1): end-game phase
clearing hash tables
crafty is behind 1.5 on time, reducing by 1/3.
time surplus 0.00 time limit 10:00 (10:00)
depth time score variation (1)
4-> 0.16 -1.68 1. g3+ Kg5 2. Rf2 Kh6 3. Bd2+ Kg7 4.
Bf4
5 0.30 -1.85 1. g3+ Kg5 2. Rf2 Kh6 3. Bd2+ Kg7 4.
Bg5 Qh8
5-> 0.75 -1.85 1. g3+ Kg5 2. Rf2 Kh6 3. Bd2+ Kg7 4.
Bg5 Qh8
6 1.21 -1.79 1. g3+ Kg5 2. Rf2 Kh6 3. Bd2+ Kg7 4.
Bg5 Qe6 5. Bf6+ Kh6
6-> 2.91 -1.79 1. g3+ Kg5 2. Rf2 Kh6 3. Bd2+ Kg7 4.
Bg5 Qe6 5. Bf6+ Kh6
7 4.43 -1.74 1. g3+ Kg5 2. Rf2 Kh6 3. Bd2+ Kg7 4.
Bg5 Qe6 5. Bf6+ Kh6 6. Kg2
7-> 8.86 -1.74 1. g3+ Kg5 2. Rf2 Kh6 3. Bd2+ Kg7 4.
Bg5 Qe6 5. Bf6+ Kh6 6. Kg2
8 15.52 -1.79 1. g3+ Kg5 2. Rf2 Kh6 3. Bd2+ Kg7 4.
Bg5 Qe6 5. Bf6+ Kh6 6. Kg2 g5
8 29.61 -1.74 1. Rb2 Kg5 2. Rf2 Kh6 3. Bd2+ Kg7 4.
Bf4 Qe6 5. Kg3
8 34.63 -1.66 1. Rf2 Qb8+ 2. Kh1 Qe5 3. Bd2 g5 4.
Rf5 Qa1+ 5. Kh2 g4 6. hxg4 hxg4
8-> 34.97 -1.66 1. Rf2 Qb8+ 2. Kh1 Qe5 3. Bd2 g5 4.
Rf5 Qa1+ 5. Kh2 g4 6. hxg4 hxg4
9 35.27 ++ 1. Rf2!!
9 35.88 -0.66 1. Rf2 Qb8+ 2. Kh1 Qe5 3. Bd2 g5 4.
Rf5 Qg3 5. Bxg5+ Qxg5 6. Rxg5 Kxg5
9 2:03 ++ 1. Rc2!!
9 2:03 5.32 1. Rc2 Qxc2 2. Bd8+ g5 3. Ba5 Qe2 4.
Bc7 Qf2 5. Bd6 Qg1+ 6. Kxg1 g4 7. hxg4
Kxg4
9-> 2:03 5.32 1. Rc2 Qxc2 2. Bd8+ g5 3. Ba5 Qe2 4.
Bc7 Qf2 5. Bd6 Qg1+ 6. Kxg1 g4 7. hxg4
Kxg4
10 2:04 5.23 1. Rc2 Qxc2 2. Bd8+ g5 3. Ba5 Qf2 4.
Bc7 Qg1+ 5. Kxg1 g4 6. hxg4 Kxg4 7.
Kf2 Kf5
10-> 5:49 5.23 1. Rc2 Qxc2 2. Bd8+ g5 3. Ba5 Qf2 4.
Bc7 Qg1+ 5. Kxg1 g4 6. hxg4 Kxg4 7.
Kf2 Kf5
11 5:51 5.45 1. Rc2 Qxc2 2. Bd8+ g5 3. Ba5 Qf2 4.
Bc7 Qg1+ 5. Kxg1 g4 6. hxg4 Kxg4 7.
Kf2 Kf5 8. Bd6
time: 10:00 cpu:199% mat:-1 n:148236993 nps:246913
ext-> checks:11681254 recaps:634070 pawns:248794 1rep:4894127
predicted:0 nodes:148236993 evals:5607957
endgame tablebase-> probes done: 160638 successful: 160638
hashing-> trans/ref:39% pawn:4% used:w99% b99%
White(1): Rc2
time used: 10:00
In the second example the *modified* crafty needs only 123 sec to find the win.
The original crafty will not find a win in 100 years.
Kind regards
Bernhard
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.