Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: An idea for saving space in tablebases

Author: blass uri

Date: 12:47:21 10/09/98

Go up one level in this thread



On October 09, 1998 at 15:32:52, blass uri wrote:

>
>On October 09, 1998 at 15:15:22, Robert Hyatt wrote:
>
>>On October 09, 1998 at 09:56:20, blass uri wrote:
>>
>>>
>>>On October 09, 1998 at 09:35:55, Robert Hyatt wrote:
>>>
>>>>On October 09, 1998 at 08:54:02, blass uri wrote:
>>>>
>>>>>
>>>>>On October 09, 1998 at 08:10:51, blass uri wrote:
>>>>>
>>>>>>I think it is better to store the number of moves to win in the tablebases only
>>>>>>if this number is divisible by 2 because otherwise you can compute the number of
>>>>>>moves by search.
>>>>>>
>>>>>>Maybe it is possible practically to store it only if it is divisble by 3 or 4 (I
>>>>>>do not know what is the speed of reading the tablebases from harddisk)
>>>>>>
>>>>>>Uri
>>>>>I think it is easy to save at least 1 bit per position by this idea if in
>>>>>positions when there is win in N when N is divisible by 2 you store win in N/2
>>>>>and in positions when there is a win in N when N is not divisible by 2 you store
>>>>>a win in 1(you can discover by search that it is not truth).
>>>>>
>>>>
>>>>
>>>>this is imposible to do.  KNN vs KP is a mate in over 100 moves.  How do
>>>>I separate mate in 50 from mate in 100?  I certainly can't search to find
>>>>this out...
>>>
>>>I mean that when you store the number N/2 you mean win in N
>>>
>>>you have only to search 2 plies because if you have mate in 99
>>>the tablebases will tell you the number 1
>>>You know by search that there is no mate in 2  but you have in the tablebase
>>>mates in 98 so by  searching 2 plies you can read from the tablebases the mate
>>>in 98 after 2 plies.
>>>Searching 2 plies and reading the tablebases after every 2 possible plies(you do
>>>not need every 2 possible because of the alpha beta  is not impossible
>>>>
>>>>
>>
>>
>>How do I tell the difference from a mate in 49 and a mate in 48.  And *that*
>>is critical, because if I keep choosing mates in 49 I am going to draw.  In
>>fact, a mate in 49 that I think is a mate in 48 is probably exactly enough to
>>draw if there are exactly 50 moves to the mate to start with...
>>
>>
>>
>>>>
>>>>>By this idea you can use the same number of bits to every position.
>>>>>
>>>>>If you want to use different number of bits to every popsition you must add 1
>>>>>bit
>>>>>to tell if the is a position with win in number of moves divisible by 2 or not.
>>>>>
>>>>>of course if you lose it is not important to know the number of moves.
>>>>>
>>>>>I use the word win and not mate because it is a mistake to use mate
>>>>>because of the 50 move rule
>>>>>
>>>>>Uri
>>>>
>>>>
>>>>distance to conversion has the same 50-move problem...
>>>
>>>why?
>>>If the distance is more than 50 then you know it is a draw.
>>>
>>>Uri
>>
>>
>>but if it is *less* than 50 you don't know this.  Yet you can find a score
>>that is "conversion in 30" after you have played 30 non-capturing moves and
>>it ends up wrong there too...  ie both have problems with the 50-move rule
>>the way they are computed...
>
>You know the history of the game so if you find a score that is conversion in 30
>after you have played 30 non capturing moves then you translate it to conversion
>at 60
>The target is to achieve conversion as soon as possible and I do not see
>problems.

You do not have to translate it because you start to use the tablebases only
after a capture and there is no problem and the tablebases tell you the distance
to conversion and you try to do a capture or to move a pawn or doing checkmate
as soon as possible without missing the win.

Uri



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.