Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Nice end-game problem; here is another phenomenon, who can explain?

Author: Bernhard Bauer

Date: 04:39:16 04/27/99

Go up one level in this thread


On April 27, 1999 at 07:11:13, Jouni Uski wrote:

>On April 27, 1999 at 07:03:42, Bernhard Bauer wrote:
>
>>On April 27, 1999 at 05:03:34, blass uri wrote:
>>
>>>
>>>On April 27, 1999 at 04:09:08, Harald Faber wrote:
>>>
>>>>On April 26, 1999 at 23:48:50, Igor Syry wrote:
>>>>
>>>>>Hoped you enjoyed the problem...
>>>>>Igor
>>>>
>>>>Yes, I did. I also enjoyed this problem:
>>>>
>>>>qnb5/1p1kBK2/pPp5/P1p5/2P5/8/8/8 b - - 0 0
>>>>
>>>>White to move and win. It SHOULD be an easy one, only move#2 and the motive must
>>>>be found.
>>>>What amazes me is that Crafty and Fritz5.32 with their deepest search depth
>>>>don't find the final winning move in move#19 pv. They have only a draw eval
>>>
>>
>>It's white to move, so the FEN should be
>>qnb5/1p1kBK2/pPp5/P1p5/2P5/8/8/8 w
>>
>>>It is not surprising because it is a null move problem.
>>
>>Indeed. But you can easyly configure crafty *not* to do a null move search.
>>Then crafty will solve the above position in a second.
>>Here some output from crafty:
>>
>>              time surplus   0.00  time limit 60:00 (60:00)
>>              depth   time  score   variation (1)
>>starting thread 1
>>                1     0.11 -12.06   1. Bxc5
>>                1->   0.12 -12.06   1. Bxc5
>>                2     0.12 -12.00   1. Bxc5 Kd8
>>                2->   0.14 -12.00   1. Bxc5 Kd8
>>                3     0.14 -11.83   1. Bxc5 Kd8 2. Kg8
>>                3     0.15     ++   1. Bf8!!
>>                3     0.15   0.00   1. Bf8 Kd8 2. Be7+ Kd7
>>                3->   0.15   0.00   1. Bf8 Kd8 2. Be7+ Kd7
>>                4     0.17   0.00   1. Bf8 Kd8 2. Be7+ Kd7
>>                4->   0.17   0.00   1. Bf8 Kd8 2. Be7+ Kd7
>>                5     0.17   0.00   1. Bf8 Kd8 2. Be7+ Kd7
>>                5     0.19     ++   1. Bg5!!
>>                5     0.19   1.57   1. Bg5 Kd6 2. Bf4+ Kd7 3. Bc7 Qa7 4.
>>                                    bxa7 Kxc7 5. a8=Q
>>                5     0.20     ++   1. Bxc5!!
>>                5     0.20   6.18   1. Bxc5 Kd8 2. Be7+ Kd7 3. c5 Qa7 4.
>>                                    bxa7 Kc7 5. a8=Q
>>                5->   0.22   6.18   1. Bxc5 Kd8 2. Be7+ Kd7 3. c5 Qa7 4.
>>                                    bxa7 Kc7 5. a8=Q
>>                6     0.22     ++   1. Bxc5!!
>>                6     0.23   8.33   1. Bxc5 Kd8 2. Be7+ Kd7 3. c5 Qa7 4.
>>                                    bxa7 b6 5. axb8=Q bxa5
>>                6->   0.25   8.33   1. Bxc5 Kd8 2. Be7+ Kd7 3. c5 Qa7 4.
>>                                    bxa7 b6 5. axb8=Q bxa5
>>                7     0.26     ++   1. Bxc5!!
>>                7     0.28   9.47   1. Bxc5 Kd8 2. Be7+ Kd7 3. c5 Qa7 4.
>>                                    bxa7 Kc7 5. Bd6+ Kd7 6. axb8=Q
>>                7->   0.33   9.47   1. Bxc5 Kd8 2. Be7+ Kd7 3. c5 Qa7 4.
>>                                    bxa7 Kc7 5. Bd6+ Kd7 6. axb8=Q
>>                8     0.37   9.63   1. Bxc5 Kd8 2. Be7+ Kd7 3. c5 Qa7 4.
>>                                    bxa7 Kc7 5. Bd6+ Kd7 6. axb8=Q Kd8
>>                8->   0.47   9.63   1. Bxc5 Kd8 2. Be7+ Kd7 3. c5 Qa7 4.
>>                                    bxa7 Kc7 5. Bd6+ Kd7 6. axb8=Q Kd8
>>                9     0.48     ++   1. Bxc5!!
>>                9     0.69  Mat07   1. Bxc5 Kd8 2. Be7+ Kd7 3. c5 Qa7 4.
>>                                    bxa7 Kc7 5. Bd6+ Kd7 6. axb8=Q Kd8
>>                                    7. Qc7#
>>                9->   0.90  Mat07   1. Bxc5 Kd8 2. Be7+ Kd7 3. c5 Qa7 4.
>>                                    bxa7 Kc7 5. Bd6+ Kd7 6. axb8=Q Kd8
>>                                    7. Qc7#
>>              time=0.90  cpu=2049%  mat=-14  n=168812  fh=99%  nps=185507
>>              ext-> checks=9535 recaps=512 pawns=3374 1rep=1090 thrt:0
>>              predicted=0  nodes=168812  evals=564
>>              endgame tablebase-> probes done=0  successful=0
>>              SMP->  split=447  stop=17  data=6/64  cpu=18.65  elap=0.91
>>
>>mate in 7 moves.
>>
>>This version of crafty may not play very good because null move helps a lot.
>>But you may configure crafty in a way that it will normally use the null move
>>search, but not when there is low material on the board. Such a version gives:
>>
>>starting thread 1
>>                1     0.10 -12.06   1. Bxc5
>>                1->   0.11 -12.06   1. Bxc5
>>                2     0.11 -12.00   1. Bxc5 Kd8
>>                2->   0.11 -12.00   1. Bxc5 Kd8
>>                3     0.13 -11.83   1. Bxc5 Kd8 2. Kg8
>>                3     0.13     ++   1. Bf8!!
>>                3     0.13   0.00   1. Bf8 Kd8 2. Be7+ Kd7
>>                3->   0.13   0.00   1. Bf8 Kd8 2. Be7+ Kd7
>>                4     0.14   0.00   1. Bf8 Kd8 2. Be7+ Kd7
>>                4->   0.14   0.00   1. Bf8 Kd8 2. Be7+ Kd7
>>                5     0.16   0.00   1. Bf8 Kd8 2. Be7+ Kd7
>>                5     0.16     ++   1. Bg5!!
>>                5     0.16   1.57   1. Bg5 Kd6 2. Bf4+ Kd7 3. Bc7 Qa7 4.
>>                                    bxa7 Kxc7 5. a8=Q
>>                5     0.17     ++   1. Bxc5!!
>>                5     0.17   6.18   1. Bxc5 Kd8 2. Be7+ Kd7 3. c5 Qa7 4.
>>                                    bxa7 Kc7 5. a8=Q
>>                5->   0.19   6.18   1. Bxc5 Kd8 2. Be7+ Kd7 3. c5 Qa7 4.
>>                                    bxa7 Kc7 5. a8=Q
>>                6     0.19     ++   1. Bxc5!!
>>                6     0.21   8.33   1. Bxc5 Kd8 2. Be7+ Kd7 3. c5 Qa7 4.
>>                                    bxa7 b6 5. axb8=Q bxa5
>>                6->   0.22   8.33   1. Bxc5 Kd8 2. Be7+ Kd7 3. c5 Qa7 4.
>>                                    bxa7 b6 5. axb8=Q bxa5
>>                7     0.24     ++   1. Bxc5!!
>>                7     0.28   9.47   1. Bxc5 Kd8 2. Be7+ Kd7 3. c5 Qa7 4.
>>                                    bxa7 Kc7 5. Bd6+ Kd7 6. axb8=Q
>>                7->   0.33   9.47   1. Bxc5 Kd8 2. Be7+ Kd7 3. c5 Qa7 4.
>>                                    bxa7 Kc7 5. Bd6+ Kd7 6. axb8=Q
>>                8     0.44   9.63   1. Bxc5 Kd8 2. Be7+ Kd7 3. c5 Qa7 4.
>>                                    bxa7 Kc7 5. Bd6+ Kd7 6. axb8=Q Kd8
>>                8->   0.55   9.63   1. Bxc5 Kd8 2. Be7+ Kd7 3. c5 Qa7 4.
>>                                    bxa7 Kc7 5. Bd6+ Kd7 6. axb8=Q Kd8
>>                9     0.55     ++   1. Bxc5!!
>>                9->   0.94  10.02   1. Bxc5 Kd8 2. Be7+ Kd7 3. c5 Qa7 4.
>>                                    bxa7 Kc7 5. Bd6+ Kd7 6. axb8=Q Kd8
>>               10     1.38     --   1. Bxc5
>>               10     1.41     ++   1. Bxc5!!
>>               10->   2.10  10.01   1. Bxc5 Kd8 2. Be7+ Kd7 3. c5 Qa7 4.
>>                                    bxa7 Kc7 5. Bd6+ Kd7 6. axb8=Q Kd8
>>               11     2.11     ++   1. Bxc5!!
>>               11     3.44  Mat07   1. Bxc5 Kd8 2. Be7+ Kd7 3. c5 Qa7 4.
>>                                    bxa7 Kc7 5. Bd6+ Kd7 6. axb8=Q b6 7.
>>                                    Qc7#
>>               11->   4.63  Mat07   1. Bxc5 Kd8 2. Be7+ Kd7 3. c5 Qa7 4.
>>                                    bxa7 Kc7 5. Bd6+ Kd7 6. axb8=Q b6 7.
>>                                    Qc7#
>>              time=4.63  cpu=415%  mat=-14  n=1208305  fh=99%  nps=261537
>>              ext-> checks=62247 recaps=4809 pawns=14553 1rep=4646 thrt:171
>>              predicted=0  nodes=1208305  evals=5100
>>              endgame tablebase-> probes done=0  successful=0
>>              SMP->  split=999  stop=32  data=7/64  cpu=19.19  elap=4.62
>>
>>mate in 7 moves.
>>
>>All computation done on a 2XPPro 232 MHz.
>>>
>>>If black has the right not to play then white cannot threat the black king at
>>>d7(the pawns cannot move and the bishop cannot see d7)
>>>
>>>
>>>I suggest that you use better programs like Genius3 for analyzing studies.
>>>
>>>Junior is also better in this position but it has practical problems in other
>>>studies
>>>(for example when there is under promotion)
>>>
>>>Uri
>>
>>So no need to take Genius, ...
>>Crafty is very nice and powerfull.
>>Kudo's to Bob.
>>
>>Kind regards
>>Bernhard
>
>Interesting! Can You show how to do the special configuration?

1. Crafty without use of nullmove:
   Change the lines in chess.h
   from
        #define NULL_MOVE                 0
        #define DO_NULL                   1
        #define NO_NULL                   0
   to
        #define NULL_MOVE                 0
        #define DO_NULL                   0
        #define NO_NULL                   1
that should do it.

2. Crafty
   Change lines 186 and 187 in search.c
   from
        pieces=(wtm) ? TotalWhitePieces : TotalBlackPieces;
        if (do_null && !tree->in_check[ply] && pieces && (pieces>5 ||
depth<421)) {
   to
        pieces=(wtm) ? TotalBlackPieces : TotalWhitePieces;
        if (do_null && !tree->in_check[ply] && (pieces>7) && depth<421) {
   or something similar. You may play a little around.

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.