Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: perpetual check

Author: Robert Hyatt

Date: 14:05:01 10/16/01

Go up one level in this thread


On October 16, 2001 at 16:02:42, Uri Blass wrote:

>On October 16, 2001 at 14:24:00, Robert Hyatt wrote:
>
>>On October 16, 2001 at 11:13:38, John Merlino wrote:
>>
>>>On October 16, 2001 at 07:58:15, Steffen Jakob wrote:
>>>
>>>>Hi,
>>>>
>>>>this is a position from a blitz game Hossa - Sjeng:
>>>>
>>>>[D]7k/4QP2/7p/6rP/8/1K6/6r1/8 b
>>>>
>>>>For a human it's obvious that this is a draw. Hossa was rather clueless and
>>>>thought that white was winning. Are there any engines which show a draw value at
>>>>once (without significant search depth)?
>>>>
>>>>Greetings,
>>>>Steffen.
>>>
>>>Chessmaster 8000 sees the draw in less than a second:
>>>
>>>Time	Depth	Score	Positions	Moves
>>>0:00	1/3	1.18	7319		1...R2g3+ 2. Kc2 Rg2+ 3. Kd3 R2g3+
>>>					4. Kc4 R3g4+ 5. Kc3 Rg3+ 6. Kb2
>>>					Rg2+ 7. Kc1 Rg1+ 8. Kd2 R1g2+ 9.
>>>					Ke3
>>>0:00	2/4	0.95	23824		1...R2g3+ 2. Kc2 Rg2+ 3. Kd3 R2g3+
>>>					4. Kc4 R3g4+ 5. Kc3 Rg3+ 6. Kb2
>>>					Rg2+ 7. Kc1 Rg1+ 8. Kd2 R1g2+ 9.
>>>					Ke3 R2g3+ 10. Ke2 Rg2+ 11. Kf1
>>>					Rg1+ 12. Kf2
>>>0:00	3/5	0.00	45109		1...R2g3+ 2. Kc2 Rg2+ 3. Kd3 R2g3+
>>>					4. Kc4 R3g4+ 5. Kc3 Rg3+ 6. Kb2
>>>					Rg2+ 7. Kc1 Rg1+ 8. Kd2 R1g2+ 9.
>>>					Ke3 R2g3+ 10. Ke2 Rg2+ 11. Kf1
>>>					Rg1+ 12. Kf2 R1g2+ 13. Ke3
>>>0:01	4/6	0.00	110883		1...R2g3+ 2. Kc2 Rg2+ 3. Kd3 R2g3+
>>>					4. Kc4 R3g4+ 5. Kc3 Rg3+ 6. Kb2
>>>					Rg2+ 7. Kc1 Rg1+ 8. Kd2 R1g2+ 9.
>>>					Ke3 R2g3+ 10. Ke2 Rg2+ 11. Kf1
>>>					Rg1+ 12. Kf2 R1g2+ 13. Ke3
>>>0:02	5/7	0.00	246089		1...R2g3+ 2. Kc2 Rg2+ 3. Kd3 R2g3+
>>>					4. Kc4 R3g4+ 5. Kc3 Rg3+ 6. Kb2
>>>					Rg2+ 7. Kc1 Rg1+ 8. Kd2 R1g2+ 9.
>>>					Ke3 R2g3+ 10. Ke2 Rg2+ 11. Kf1
>>>					Rg1+ 12. Kf2 R1g2+ 13. Ke3
>>>0:04	6/8	0.00	498686		1...R2g3+ 2. Kc2 Rg2+ 3. Kd3 R2g3+
>>>					4. Kc4 R3g4+ 5. Kc3 Rg3+ 6. Kb2
>>>					Rg2+ 7. Kc1 Rg1+ 8. Kd2 R1g2+ 9.
>>>					Ke3 R2g3+ 10. Ke2 Rg2+ 11. Kf1
>>>					Rg1+ 12. Kf2 R1g2+ 13. Ke3
>>>0:08	7/9	0.00	1039196		1...R2g3+ 2. Kc2 Rg2+ 3. Kd3 R2g3+
>>>					4. Kc4 R3g4+ 5. Kc3 Rg3+ 6. Kb2
>>>					Rg2+ 7. Kc1 Rg1+ 8. Kd2 R1g2+ 9.
>>>					Ke3 R2g3+ 10. Ke2 Rg2+ 11. Kf1
>>>					Rg1+ 12. Kf2 R1g2+ 13. Ke3
>>>0:16	8/10	0.00	2092486		1...R2g3+ 2. Kc2 Rg2+ 3. Kd3 R2g3+
>>>					4. Kc4 R3g4+ 5. Kc3 Rg3+ 6. Kb2
>>>					Rg2+ 7. Kc1 Rg1+ 8. Kd2 R1g2+ 9.
>>>					Ke3 R2g3+ 10. Ke2 Rg2+ 11. Kf1
>>>					Rg1+ 12. Kf2 R1g2+ 13. Ke3
>>>
>>>jm
>>
>>
>>It isn't seeing "the draw".  It is seeing "a draw".
>
>
>
>I do not know
>The score is positive at depth 2/4 when the main line is 22 plies
>so it can see advantage for white and only later changes it's opinion to draw
>score.
>
>  "the draw" is way deep
>>here.  "the draw" is probably beyond 40 plies deep.
>
>It is possible that it can see 40 plies at depth 3/5 or bigger depthes
>45109 positions may be enough if you search the right lines.
>
>I do not know.
>
>Uri


I _know_ that Crafty saw a draw too, but that it did not possibly reach 40+
plies in that position to see the longest possible two-fold repetition.  I
don't think _any_ program wants to see 40+ plies in that position.  If they
do, they are going to see 40+ plies in _many_ positions where it is not
important at all, and they will pay a big performance price there...

I based 40 plies on the fact that the king is going to visit 4 squares on
the a, b, c, d and e files before it has to repeat something.  That is 20 moves
or 40 plies.

I've personally seen my program burned by such positions, but I haven't tried
to take any "evaluative action" as it seems dangerous.  Move the queen just
a bit and maybe it isn't a draw if the king approaches and the queen attacks
the key checking square.  Move the pawns over a file toward the center and it
will change whether the resulting KPP vs KP ending is drawn or lost as well.

It is (IMHO) too hard to try to statically evaluate this.  It is also too hard
to try to evaluate it with search.  I don't have a good "solution" at the
moment, which is unfortunate.  Because I know how _I_ evaluate this, and I do
so by recognizing that the checks will go on forever if a couple of conditions
can't be met...



This page took 0.01 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.