Author: Bernhard Bauer
Date: 20:13:03 08/11/98
Go up one level in this thread
On August 11, 1998 at 13:11:56, Robert Hyatt wrote:
>On August 11, 1998 at 00:20:16, Bernhard Bauer wrote:
>
>>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
>
>Sorry, but this last is wrong... I posted the "original crafty" results on this
>this morning and it finds Rc2 in about 90 seconds on my 4 processor machine...
>
>This isn't a real null-move issue at all, just depth... Took me 14 plies, but
>I got there in under 2 minutes with the current null-move approach..
I suppose you have used your latest version of crafty and it is really good
news. It sounds that you have overcome that nasty null move problem.
Congratulations!
I have used the older version of crafty. It's version 15.17 and I went on for 15
min up to ply 17 and crafty could *not* find Rc2. By the way this position
is from Schwerfiguren-Opfer-Profil test from S. M. Kaminer.
Here is my output from Crafty 15.17
starting thread 1
1 0.04 -2.06 1. Bd2
1-> 0.04 -2.06 1. Bd2
2 0.05 -2.28 1. Bd2 Qf5
2 0.05 -2.23 1. Be1+ Kg5 2. Bd2+ Kf5 3. Kg3
2 0.05 -2.21 1. g3+ Kg5 2. h4+ Kf5 3. Re2
2-> 0.07 -2.21 1. g3+ Kg5 2. h4+ Kf5 3. Re2
3 0.08 -1.86 1. g3+ Kg5 2. Rf2 Kh6 3. Bd2+ g5
3-> 0.10 -1.86 1. g3+ Kg5 2. Rf2 Kh6 3. Bd2+ g5
4 0.10 -1.68 1. g3+ Kg5 2. Rf2 Kh6 3. Bd2+ Kg7 4.
Bf4
4-> 0.13 -1.68 1. g3+ Kg5 2. Rf2 Kh6 3. Bd2+ Kg7 4.
Bf4
5 0.16 -1.85 1. g3+ Kg5 2. Rf2 Kh6 3. Bd2+ Kg7 4.
Bg5 Qh8
5-> 0.22 -1.85 1. g3+ Kg5 2. Rf2 Kh6 3. Bd2+ Kg7 4.
Bg5 Qh8
6 0.29 -1.79 1. g3+ Kg5 2. Rf2 Kh6 3. Bd2+ Kg7 4.
Bg5 Qe6 5. Bf6+ Kh6
6-> 0.43 -1.79 1. g3+ Kg5 2. Rf2 Kh6 3. Bd2+ Kg7 4.
Bg5 Qe6 5. Bf6+ Kh6
7 0.52 -1.74 1. g3+ Kg5 2. Rf2 Kh6 3. Bd2+ Kg7 4.
Bg5 Qe6 5. Bf6+ Kh6 6. Kg2
7-> 0.91 -1.74 1. g3+ Kg5 2. Rf2 Kh6 3. Bd2+ Kg7 4.
Bg5 Qe6 5. Bf6+ Kh6 6. Kg2
8 1.40 -1.81 1. g3+ Kg5 2. Rf2 Kh6 3. Bd2+ Kh7 4.
Be3 Qe6 5. Bd4 Qe4 6. Bf6
8-> 2.41 -1.81 1. g3+ Kg5 2. Rf2 Kh6 3. Bd2+ Kh7 4.
Be3 Qe6 5. Bd4 Qe4 6. Bf6
9 4.86 -1.85 1. g3+ Kg5 2. Rf2 Kh6 3. Bd2+ Kh7 4.
Rf7+ Kg8 5. Rf3 Qc2 6. Rf2 Qc5 <HT>
9-> 14.11 -1.85 1. g3+ Kg5 2. Rf2 Kh6 3. Bd2+ Kh7 4.
Rf7+ Kg8 5. Rf3 Qc2 6. Rf2 Qc5 <HT>
10 16.90 -1.81 1. g3+ Kg5 2. Rf2 Kh6 3. Bd2+ Kh7 4.
Re2 Qd8 5. Bf4 Qf6 6. Be5 Qf3 7. Re1
<HT>
10 21.16 -1.74 1. Rb2 Kg5 2. Rf2 h4 3. Bd2+ Kh5 4.
g4+ hxg3+ 5. Kxg3 Qc4 6. Be3 Qh4+ 7.
Kg2 g5 8. Bc5 Kg6
10 25.18 ++ 1. Rf2!!
10 25.57 -0.66 1. Rf2 Qb8+ 2. Kh1 Qb1+ 3. Kh2 Qd3
4. Be1 Qd6+ 5. Kh1 Kg5 6. Bd2+ Kh4
7. Rf4+ Kg3 8. Rf3+ Kh4 9. Rf4+
10-> 25.65 -0.66 1. Rf2 Qb8+ 2. Kh1 Qb1+ 3. Kh2 Qd3
4. Be1 Qd6+ 5. Kh1 Kg5 6. Bd2+ Kh4
7. Rf4+ Kg3 8. Rf3+ Kh4 9. Rf4+
11 26.00 -0.66 1. Rf2 Qb8+ 2. Kh1 Qb1+ 3. Kh2 Qd3
4. Be1 Qd6+ 5. Kh1 Kg5 6. Bd2+ Kh4
7. Be1
11-> 31.27 -0.66 1. Rf2 Qb8+ 2. Kh1 Qb1+ 3. Kh2 Qd3
4. Be1 Qd6+ 5. Kh1 Kg5 6. Bd2+ Kh4
7. Be1
12 31.96 -0.66 1. Rf2 Qb8+ 2. Kh1 Qb1+ 3. Kh2 Qd3
4. Be1 Qd6+ 5. Kh1 Kg5 6. Bd2+ Kh4
7. Be1
12-> 43.19 -0.66 1. Rf2 Qb8+ 2. Kh1 Qb1+ 3. Kh2 Qd3
4. Be1 Qd6+ 5. Kh1 Kg5 6. Bd2+ Kh4
7. Be1
13 44.75 -0.66 1. Rf2 Qb8+ 2. Kh1 Qb1+ 3. Kh2 Qd3
4. Be1 Qd6+ 5. Kh1 Kg5 6. Bd2+ Kh4
7. Be1
13-> 1:05 -0.66 1. Rf2 Qb8+ 2. Kh1 Qb1+ 3. Kh2 Qd3
4. Be1 Qd6+ 5. Kh1 Kg5 6. Bd2+ Kh4
7. Be1
14 1:09 -0.66 1. Rf2 Qb8+ 2. Kh1 Qb1+ 3. Kh2 Qd3
4. Be1 Qd6+ 5. Kh1 Kg5 6. Bd2+ Kh4
7. Be1
14-> 1:55 -0.66 1. Rf2 Qb8+ 2. Kh1 Qb1+ 3. Kh2 Qd3
4. Be1 Qd6+ 5. Kh1 Kg5 6. Bd2+ Kh4
7. Be1
15 2:03 -0.66 1. Rf2 Qb8+ 2. Kh1 Qb1+ 3. Kh2 Qd3
4. Be1 Qd6+ 5. Kh1 Kg5 6. Bd2+ Kh4
7. Be1
15-> 4:12 -0.66 1. Rf2 Qb8+ 2. Kh1 Qb1+ 3. Kh2 Qd3
4. Be1 Qd6+ 5. Kh1 Kg5 6. Bd2+ Kh4
7. Be1
16 4:41 -0.66 1. Rf2 Qb8+ 2. Kh1 Qb1+ 3. Kh2 Qb8+
16-> 9:16 -0.66 1. Rf2 Qb8+ 2. Kh1 Qb1+ 3. Kh2 Qb8+
17 10:01 -0.66 1. Rf2 Qb8+ 2. Kh1 Qb1+ 3. Kh2 Qb8+
time: 15:00 cpu:200% mat:-1 n:208390912 nps:231432
ext-> checks:14754735 recaps:242929 pawns:272563 1rep:4263350
predicted:0 nodes:208390912 evals:73548959
endgame tablebase-> probes done: 147415 successful: 147415
hashing-> trans/ref:47% pawn:21% used:w99% b99%
White(1): Rf2
So it may be time to release Crafty 15.18 so we can agree?
Kind regards and thank you for posting your results.
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.