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.