Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Any Programs See THIS As A Draw? - question to programmers

Author: Jeremiah Penery

Date: 10:13:33 11/13/00

Go up one level in this thread


On November 13, 2000 at 10:18:30, Robert Hyatt wrote:

>On November 13, 2000 at 02:46:37, Jeremiah Penery wrote:
>
>>On November 12, 2000 at 02:42:20, Uri Blass wrote:
>>
>>>On November 12, 2000 at 01:41:43, Helmut Conrady wrote:
>>>
>>>>[D]8/8/8/2KR4/3R4/2k1b3/8/8 w - -
>>>>
>>>>In a test with Fritz 6a, Junior 6, Shredder 4, Century 1.2 Tiger 12, Hiarcs
>>>>7.32, Nimzo 7.32 no one did.
>>>
>>>
>>>It is an easy position.
>>>
>>>You only need the 5 piece tablebases.
>>>
>>>Uri
>>>>
>>>>What about an algorithm like this: if i have a graet material advantage and can
>>>>not make any progress after some moves I will check wheter it can be a draw!
>>>>
>>>>Helmut
>>>
>>>You should explain how to check it and the problem is that you may expect the
>>>opponent to get a position when you have small material advantage.
>>>
>>>The alpha beta does not tell you about second best move so you will not know
>>>that you cannot make progress before it is too late.
>>
>>I think you can check to see if the score is the same for some number of
>>iterations, and if there have been no captures (or certain other moves) in that
>>time, then you can return a draw score.  I think I remember someone talking
>>about implementing something like this (Hossa, IIRC) some time back.
>>I'm trying to implement something similar to this in Crafty right now, but I'm
>>having difficulty finding exactly where the code needs to go.
>
>
>This is a very old idea.  Dave Slate implemented what he called the "weariness"
>factor in chess 4.x... the idea was that as the 50 move rule draws closer, the
>score approaches a draw.  I used to do this in Crafty in fact, but it has some
>problems when dealing with the hash table since the 50 move counter isn't part
>of the stuff used to make the signature.
>
>But the idea is reasonable, and we copied it in Cray Blitz.  The only issue is
>_when_ do you let it kick in?  20 moves after you reset the 50 move counter?
>30?  15?

My idea was not to use the 50-move counter, but something else.  If the output
looks like this:

           8->    0.13   4.50   1. Rd8 Bxd4+ 2. Rxd4 Kb2 3. Rd8 Ka1
                                4. Kc6 Ka2 5. Rh8
           9      0.24   4.50   1. Rd8 Bxd4+ 2. Rxd4 Kb2 3. Rd8 Ka1
                                4. Kc6 Ka2 5. Rh8 Ka1
           9->    0.34   4.50   1. Rd8 Bxd4+ 2. Rxd4 Kb2 3. Rd8 Ka1
                                4. Kc6 Ka2 5. Rh8 Ka1
          10      0.56   4.50   1. Rd8 Bxd4+ 2. Rxd4 Kb2 3. Rd8 Ka1
                                4. Kc6 Ka2 5. Rh8 Ka1 6. Rg8
          10->    0.76   4.50   1. Rd8 Bxd4+ 2. Rxd4 Kb2 3. Rd8 Ka1
                                4. Kc6 Ka2 5. Rh8 Ka1 6. Rg8

Then to score it as a draw after 3 iterations where the same score is output.
(In that position, it was the exact same score from iterations 1 to 15.)
The reason for doing this is obvious - the program is up on material, but
clearly sees it can make no progress (that there are no pawns on the board is an
important point).  In the case above, this is a KRRKB position, where one of the
rooks is pinned on the king, therefore white can never make progress (shown by
the score).  After some iterations it gets:

15->   25.04   4.50   1. Rd8 Bg1 2. Rd7 Be3 3. Rd6 Kb3 4.
                      Kc6 Bxd4 5. Rxd4 Ka3 6. Kd6 Kb3 7.
                      Rd3+ Ka2 8. Kd5 Kb1
16     45.84     --   1. Rd8
16      1:03   1.65   1. Rd8 Bg1 2. Kc6 Bxd4 3. Ra8 Kb2 4.
                      Kd6 Bg1 5. Kd7 Kc2 6. Kc6 Kb1 7. Rh8
                      Kb2 8. Rh1 Be3
16->    1:20   1.65   1. Rd8 Bg1 2. Kc6 Bxd4 3. Ra8 Kb2 4.
                      Kd6 Bg1 5. Kd7 Kc2 6. Kc6 Kb1 7. Rh8
                      Kb2 8. Rh1 Be3
17      1:28   1.65   1. Rd8 Bg1 2. Kc6 Bxd4 3. Ra8 Kb2 4.
                      Kd6 Bg1 5. Kd7 Kc2 6. Kc6 Kb1 7. Rh8
                      Kb2 8. Rh1 Be3 9. Rh2+ Ka1
17->    1:46   1.65   1. Rd8 Bg1 2. Kc6 Bxd4 3. Ra8 Kb2 4.
                      Kd6 Bg1 5. Kd7 Kc2 6. Kc6 Kb1 7. Rh8
                      Kb2 8. Rh1 Be3 9. Rh2+ Ka1
18      2:00   1.65   1. Rd8 Bg1 2. Kc6 Bxd4 3. Ra8 Kb2 4.
                      Kd6 Bg1 5. Kd7 Kc2 6. Kc6 Kb1 7. Rh8
                      Kb2 8. Rh1 Be3 9. Rh2+ Ka1 10. Rh1+
                      Ka2

with again the same behavior.  And after 2. ...Bxd4, it's a KRKB ending, which
Crafty should see as 0.00 (it's supposed to have code for it...).



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.