Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: One stupid(?) null-move question

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.