Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: an evaluation problem of chess programs

Author: Robert Hyatt

Date: 19:10:29 10/02/98

Go up one level in this thread


On October 02, 1998 at 21:22:34, John Coffey wrote:

>On October 02, 1998 at 20:47:47, Robert Hyatt wrote:
>
>>On October 02, 1998 at 19:35:26, blass uri wrote:
>>
>>>
>>>On October 02, 1998 at 18:39:04, Robert Hyatt wrote:
>>>
>>>>On October 02, 1998 at 15:06:17, blass uri wrote:
>>>>
>>>>>
>>>>>On October 02, 1998 at 13:12:02, Robert Hyatt wrote:
>>>>>
>>>>>
>>>>>>>I understand that tablebases provide -MatNN,+MAtNN and draw scores
>>>>>>>but I do not understand how can you go to positions that you use tablebases
>>>>>>>at depth 12 from the initial position because tablebases are for KPP against K
>>>>>>>or KP against KP and not for positions with more pieces.
>>>>>>>You need to calculate more than 16 plies to go to positions that you can
>>>>>>>use tablebases if you do not do special extensions in pawn endings.
>>>>>>>
>>>>>>>I thought that If you can see by tablebases that the position is -MatNN because
>>>>>>>it is KPP against K then you can see without tablebases that the position is not
>>>>>>>-0.xx because the static evaluation function without tablebases is not -0.xx
>>>>>>>
>>>>>>>Uri
>>>>>>
>>>>>>
>>>>>>You are misunderstanding how I use them.  Imagine a position with KBN vs K.
>>>>>>You understand that in that position, crafty will play perfectly, and will win
>>>>>>with the KBN side, correct?
>>>>>>
>>>>>>IE in this position:
>>>>>>
>>>>>>       +---+---+---+---+---+---+---+---+
>>>>>>    8  | *K|   |   |   |   |   |   |   |
>>>>>>       +---+---+---+---+---+---+---+---+
>>>>>>    7  |   |   |   |   |   |   |   |   |
>>>>>>       +---+---+---+---+---+---+---+---+
>>>>>>    6  |   |   |   |   |   |   |   |   |
>>>>>>       +---+---+---+---+---+---+---+---+
>>>>>>    5  |   |   |   |   |   |   |   |   |
>>>>>>       +---+---+---+---+---+---+---+---+
>>>>>>    4  |   |   |   |   |   |   |   |   |
>>>>>>       +---+---+---+---+---+---+---+---+
>>>>>>    3  |   |   |   |   |   |   |   |   |
>>>>>>       +---+---+---+---+---+---+---+---+
>>>>>>    2  |   |   |   |   |   |   |   |   |
>>>>>>       +---+---+---+---+---+---+---+---+
>>>>>>    1  | K | B | N |   |   |   |   |   |
>>>>>>       +---+---+---+---+---+---+---+---+
>>>>>>         a   b   c   d   e   f   g   h
>>>>>>
>>>>>>crafty promptly says Kb2 Mat25...  ok so far...
>>>>>>
>>>>>>now lets modify the position to this:
>>>>>>
>>>>>>
>>>>>>       +---+---+---+---+---+---+---+---+
>>>>>>    8  | *K| *R| *Q|   |   |   |   |   |
>>>>>>       +---+---+---+---+---+---+---+---+
>>>>>>    7  |   |   |   |   |   |   |   |   |
>>>>>>       +---+---+---+---+---+---+---+---+
>>>>>>    6  |   |   |   |   |   |   |   |   |
>>>>>>       +---+---+---+---+---+---+---+---+
>>>>>>    5  |   |   |   |   |   |   |   |   |
>>>>>>       +---+---+---+---+---+---+---+---+
>>>>>>    4  |   |   |   |   |   |   |   |   |
>>>>>>       +---+---+---+---+---+---+---+---+
>>>>>>    3  |   | R |   |   |   |   | B |   |
>>>>>>       +---+---+---+---+---+---+---+---+
>>>>>>    2  |   |   |   |   |   |   |   |   |
>>>>>>       +---+---+---+---+---+---+---+---+
>>>>>>    1  | K | B | N |   |   |   |   |   |
>>>>>>       +---+---+---+---+---+---+---+---+
>>>>>>         a   b   c   d   e   f   g   h
>>>>>>
>>>>>>
>>>>>>In this position. crafty says Be4+ Mat34, with a 2 second search.  How did
>>>>>>it do that?  like this:
>>>>>>
>>>>>>                8     2.03  Mat34   1. Be4+ Ka7 2. Bxb8+ Ka6 3. Bb7+ Qxb7
>>>>>>                                    4. Rxb7 Kxb7
>>>>>>                8->   3.27  Mat34   1. Be4+ Ka7 2. Bxb8+ Ka6 3. Bb7+ Qxb7
>>>>>>                                    4. Rxb7 Kxb7
>>>>>>
>>>>>>What it did was to search deeply enough to see that it could trade bishop
>>>>>>and rook for the opponent's rook and queen, leaving it in a KBN vs K position.
>>>>>>And after searching the 8 plies into the future (as it did above) it then found
>>>>>>the endgame database position and said "aha, Mate in N from this point."
>>>>>>
>>>>>>This is why my current version (15.21) won't play Rxb2, because it can see
>>>>>>deeply enough into the future to see the white king eating the black pawns
>>>>>>and that gives "mate in N". Or in some variations it sees one black and one
>>>>>>white pawn being traded, and that also leads to mate in N.
>>>>>
>>>>>The difference is that in your example you have a line of 8 plies leading to the
>>>>>position that you use tablebases and
>>>>>you have not a line of 12 plies from the position before Rxb2 that can lead to
>>>>>KPP against K or KP against KP
>>>>>
>>>>>because the white king must do at least 9 moves to eat the black pawns
>>>>>Kxb2,Kc2,Kd3,Ke4,Ke5,Kf6,Kg7,Kxh7,Kxg6
>>>>>
>>>>>Uri
>>>>
>>>>
>>>>I'm not sure what your point is, however.  I do quite a few search
>>>>extensions, and the hash table has the effect of letting the search go
>>>>deeper than normal as well, in simple endings like this.  9 moves is
>>>>really 16 plies plus q-search, which means a 12 ply search only needs to
>>>>extend 4 plies to see that...  not difficult at all...
>>>
>>>my point is that I do not understand why crafty without tablebases does the move
>>>Rxb2 at depth 12
>>>If it can see the position of KPP against K then the evaluation without
>>>tablebases should prevent it to play it
>>>and if it cannot see the position of KPP against K then tablebases cannot help.
>>>
>>>Uri
>>
>>
>>because crafty doesn't evaluate KPP vs K or KP vs KP as won, in that
>>position.  Which is the point here.  If the black king couldn't get
>>into the square of the white pawn, it would say this is lost instantly,
>>or if it could get to KP vs K it can evaluate that perfectly.  But not
>>KPP vs K or KPP vs KP or whatever...
>>
>>And tablebases introduce a new bit of data, namely that white is not a
>>pawn ahead, but that white is *mating* black.  The difference is in the
>>value of the evaluation.  With the tablebase it is perfect and says mate.
>>Without it, it just counts pawns and comes to the wrong position.  Without
>>tablebases, my current version will play rxb2 at depth=10, because of the
>>new extension stuff I am doing.  But with tablebases it won't play it ever.
>
>
>That is great.  Don't tablebases involve a disk access?  If so, how do you
>prevent them from slowing down your program?  Are you checking the table-bases
>at every leaf of the tree?  (assuming that it is the right kind of position.)
>
>Does the time saved not having to search the tree make up for the time it takes
>to access the tablebases?
>
>Thanks in advance,
>
>John Coffey

there is a trick:  You only probe *after* making a capture that takes the total
pieces to 3 or 4, or else 5 with the specific case of KR*KR left.  Doing this
is slower than normal searching, but the perfect information it returns does
way more than offset the slower speed...



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