Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Forced moves

Author: Robert Hyatt

Date: 13:33:08 07/31/99

Go up one level in this thread


On July 31, 1999 at 15:16:02, blass uri wrote:

>
>On July 31, 1999 at 12:55:54, Robert Hyatt wrote:
>
>>On July 31, 1999 at 12:34:34, Robert Hyatt wrote:
>>
>>>On July 31, 1999 at 03:08:42, Ed Schröder wrote:
>>>
>>>>>This is easy to test.
>>>>>
>>>>>My hypothesis:  simple search is not good enough to discover that all moves
>>>>>but one lead to mate, in any positions except for those near the point where a
>>>>>game is already over (one side is mating the other).
>>>>>
>>>>>Ed's:  A simple search is good enough to discern forcing moves.
>>>>>
>>>>>How about someone looking for positions where all moves but one lead to a
>>>>>forced mate...  IE one move must _not_ get mated, while all the rest do.
>>>>>Then we decide whether the short search of Rebel can see this or not.
>>>>>
>>>>>Then we decide how often this kind of position occurs, and how often (when it
>>>>>does) is a shallow search enough to recognize the forced nature.
>>>>>
>>>>>I don't think (a) it will work very well; (b) that it is worth the effort to
>>>>>search with alpha=-inf, beta=+inf for every root move; (c) that by the time
>>>>>this might have a chance of identifying a forcing move, the game is already
>>>>>over and saving time is pointless...
>>>>>
>>>>>My opinion, of course...
>>>>
>>>>How about going one step further. Some years ago I did an experiment.
>>>>Search the first iteration without A/B, then:
>>>>
>>>>if (best_score - second_best_score > margin_one) limit time control.
>>>>if (best_score - second_best_score > margin_two) limit time control even more.
>>>>
>>>>etc.
>>>>
>>>>Also I tried this for the second iteration as well. Results were not bad at all
>>>>as it also catches forced moves that aren't recaptures and escapes from
>>>>checks. Moves sequences like 1..g5 2.Bg3 were also discovered and
>>>>2.Bg3 was played very fast. I also remember a case 1.a7 Ra8 preventing
>>>>the pawn to promote. Since 1..Ra8 was the only move 1..Ra8 was played
>>>>instantly.
>>>>
>>>
>>>
>>>that's an easy one to break.  Take the position Cray Blitz vs Belle (I will
>>>try to find the FEN but it is in one of the test suites (Bxh6 is a draw, Qxb6
>>>loses).
>>>
>>>I'll bet you that you discover that Qxb6 is +3 better than any other move with
>>>a 1 ply search.  And a 2 ply search...  and a 3, 4, 5 and 6 ply search...  and
>>>beyond... until you finally see that it loses badly.
>>>
>>>Using your approach will get you killed there.  Care to guess how I know?  I
>>>was there.  I used a scheme almost exactly like yours in 1980 or so, and it
>>>made that very same mistake in that very same game, and lost quickly...  A 2
>>>minute search would have shown Bxh6 drew and Qxb6 lost.  But CB assumed that
>>>"Qxb6 was 'easy'"
>>>
>>>
>>>
>>>
>>>>Note that Q-search in Rebel's first and second iteration were limited to 6 and
>>>>8 plies to prevent the search to explode when A/B is not active. I also do
>>>>check extensions in Q-search to discover mates which catches the most
>>>>important ones but not all of course.
>>>>
>>>>Ed Schroder
>>
>>
>>Here is the position:
>>
>>5r1k/6p/1n2Q2p/4p//7P/PP4PK/R1B1q/ w
>>
>>the position in ascii:
>>
>>       +---+---+---+---+---+---+---+---+
>>    8  |   |   |   |   |   | *R|   | *K|
>>       +---+---+---+---+---+---+---+---+
>>    7  |   |   |   |   |   |   | *P|   |
>>       +---+---+---+---+---+---+---+---+
>>    6  |   | *N|   |   | Q |   |   | *P|
>>       +---+---+---+---+---+---+---+---+
>>    5  |   |   |   |   | *P|   |   |   |
>>       +---+---+---+---+---+---+---+---+
>>    4  |   |   |   |   |   |   |   |   |
>>       +---+---+---+---+---+---+---+---+
>>    3  |   |   |   |   |   |   |   | P |
>>       +---+---+---+---+---+---+---+---+
>>    2  | P | P |   |   |   |   | P | K |
>>       +---+---+---+---+---+---+---+---+
>>    1  | R |   | B |   | *Q|   |   |   |
>>       +---+---+---+---+---+---+---+---+
>>         a   b   c   d   e   f   g   h
>>
>>
>>and my search results (PII/300 notebook):
>>
>>(early iterations like Qxb6 a lot, scores over +4.)
>>                8     8.27   0.26   1. Qxb6 Rf1 2. Qd8+ Kh7 3. Qd3+ e4
>>                                    4. Qxf1 Qxf1 5. b4 e3
>>                8->   9.56   0.26   1. Qxb6 Rf1 2. Qd8+ Kh7 3. Qd3+ e4
>>                                    4. Qxf1 Qxf1 5. b4 e3
>>                9    10.54   0.57   1. Qxb6 Rf1 2. Qd8+ Kh7 3. Qd3+ e4
>>                                    4. Qxf1 Qxf1 5. b4 e3 6. b5
>>                9->  12.16   0.57   1. Qxb6 Rf1 2. Qd8+ Kh7 3. Qd3+ e4
>>                                    4. Qxf1 Qxf1 5. b4 e3 6. b5
>>               10    13.17     --   1. Qxb6
>>               10    43.47   0.00   1. Qxb6 Rf1 2. Qd8+ Kh7 3. Qd3+ e4
>>                                    4. Qxf1 Qxf1 5. Kg3 Qe1+ 6. Kh2 Qf1
>>               10->  51.88   0.00   1. Qxb6 Rf1 2. Qd8+ Kh7 3. Qd3+ e4
>>                                    4. Qxf1 Qxf1 5. Kg3 Qe1+ 6. Kh2 Qf1
>>               11    54.47     --   1. Qxb6
>>               11     1:47  -2.58   1. Qxb6 Rf1 2. Qd8+ Kh7 3. Qd3+ e4
>>                                    4. Qxf1 Qxf1 5. a4 e3 6. Ra2 Qxc1 7.
>>                                    b4 Kg6
>>               11     2:12   0.00   1. Bxh6 Qxa1 2. Qxe5 Rf6 3. Bg5 Rf2
>>                                    4. Qe8+ Kh7 5. Qh5+ Kg8 6. Qe8+ Kh7
>>
>>As I mentioned, this is from Cray Blitz vs Belle, 1981 ACM NACC tournament.
>>
>>Bob
>
>I looked in this position and the latest version of Junior can find Bxh6 even at
>depthes 8 or 9 (eqvivalent to brute force depth of 4,5)
>
>It can find Bxh6 even at level 1 second per move on pentium200.
>
>I think that Cray blitz and crafty has problem in this position relative to part
>of the commercial programs.
>
>Uri

1. Crafty has difficulties with it because of null-move.

2.  Ed was talking about doing a _one_ ply search.  You just said it
takes junior to depth=8 or 9.  See what is wrong with your argument?  It
has to see it at depth=1, not depth=anything > 1.

So doing a _one_ ply search to choose obvious moves will conclude that Qxb6
is obvious, and it is a mistake...

you get the idea...

'obvious' moves are _extremely dangerous_...

And if someone finds that you are doing this in your program, they will start
to exploit it...  it isn't hard...  because accepting a sacrifice is _always_
obvious to a 1 ply search...



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.