Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Never Say "Impossible"

Author: J. Wesley Cleveland

Date: 16:08:15 05/17/01

Go up one level in this thread


On May 17, 2001 at 05:44:03, Uri Blass wrote:

>On May 17, 2001 at 05:22:39, Graham Laight wrote:
>
>>On May 16, 2001 at 14:35:18, Uri Blass wrote:
>>
>>>On May 16, 2001 at 14:07:18, Robert Hyatt wrote:
>>>
>>>>On May 16, 2001 at 13:05:13, J. Wesley Cleveland wrote:
>>>>
>>>>>On May 15, 2001 at 22:11:15, Robert Hyatt wrote:
>>>>>
>>>>>>On May 15, 2001 at 12:18:43, J. Wesley Cleveland wrote:
>>>>>>
>>>>>[snip]
>>>>>
>>>>>>>>First, how do you conclude 10^25?  assuming alpha/beta and sqrt(N)?
>>>>>>>
>>>>>>>It is a classic alpha-beta search with a transposition table large enough to
>>>>>>>hold *all* positions found in the search. I'm guessing at the number of
>>>>>>>positions, but I feel that the same logic should hold, as only positions with
>>>>>>>one side playing perfectly would be seen.
>>>>>>
>>>>>>I don't follow.  We know that within the 50 move rule, the longest game that
>>>>>>can be played is something over 10,000 plies.  IE 50 moves, then a pawn push
>>>>>>or capture, then 50 more, etc.  Eventually you run out of pieces and it is a
>>>>>>draw.  But 38^10000 and 10^25 seem to have little in common.  The alpha/beta
>>>>>>algorithm is going to search about 38^50000 nodes to search that tree to max
>>>>>>depth of 10,000.
>>>>>
>>>>>Look at it another way. The only positions that are visited by an alpha/beta
>>>>>search (with perfect move ordering) are those where one side plays perfectly.
>>>>>The question is what fraction of the total number of positions that is.
>>>>>
>>>>
>>>>The precise formula is:
>>>>
>>>>    N = W^floor(D/2) + W^ceil(D/2) for all D.  floor means round down in integer
>>>>math, ceil means round up.  For the cases where D is even:
>>>>
>>>>    N = 2 * W^(D/2)  which is 2 * sqrt(minimax).
>>>>
>>>>If you assume that the total number of positions is roughly 2^168, then you
>>>>get 2 * sqrt(2^168) or 2 * 2^84.  Which is fairly close to the number of atoms
>>>>in the universe.  Note that 168 is not cast in stone either.  It might be a
>>>>few bits more or less, but it is probably close.
>>>
>>>It is proved to be clearly less than 2^168.
>>>I believe my counting program proved that it is less than 2^160 but I have not
>>>the numbers near me.
>>>I guess it is between 2^140 and 2^150.
>>>
>>>I had an idea how to get a good estimate for it by a program but nobody tried to
>>>calculate an estimate for it.
>>>
>>>My idea is simply to generate a lot of random pseudo legal positions(1000000 is
>>>enough) and try to find the number of legal positions.
>>>
>>>In order to generate pseudo legal position you need to the following steps:
>>>
>>>1)Calculate the number of pseudo legal positions for every possible legal
>>>material structure
>>>2)generate a random pseudo legal position.
>>>3)check if the pseudo legal position can be achieved by a chess game.
>>>
>>>If you find that the number of pseudo legal positions is 10^47 and you also find
>>>that 173 out of 1000000 pseudo legal positions are legal then
>>>10^47*173\1000000 is a very good estimate for the number of the legal positions.
>>>(If you have enough pseudo legal positions that are legal you can be sure with
>>>95% confidence that the mistake in the estimate is less than 10%)
>>>
>>>It seems that nobody is really interested in the number of legal positions so we
>>>are not going to know a good estimate.
>>>
>>>Uri
>>
>>If nobody is willing to to the large sample size, why not do it yourself with a
>>small sample size?
>>
>>If I were sufficiently interested, I would:
>>
>>* number each piece (e.g. 1 = white pawn, 2 = black pawn etc)
>>
>>* number the squares on the board from 1 - 64
>>
>>* select, at random, the number of pieces to put on the board
>
>It is not a good idea and you need to select at random the material structure
>with the right probability if you want to get equal probability for every
>pseudolegel position.
>
>>
>>* for each piece, select a random number from 1 - 64 to select it's board square
>>
>>* if I intended to do a very small sample (e.g. 20 tries), to get a ball-park
>>figure, I would set up a simple spreadsheet to to the above, and use my recalc
>>key to get a new list of pieces/positions
>
>I guess that you may get only 0 legal positions out of 20 if you choose a random
>pseudo legal position with equal probability so it is probably not enough.
>
>It is not important for me to investigate this problem so I do not work on it.
>>
>>* if I intended to do more than 100 samples, I would either write a more
>>sophisticated spreadsheet that would show something like a board (as well as
>>rudimentary checks like having 1 white and 1 black king), or write a program to
>>draw random boards
>
>You need to write a special program to generate random board even if you want
>only 20 samples because there is no easy way to choose a random position when
>every position gets the same probability without a special program.
>
>Uri

This seems overly complicated. If you have an encoding method, say, that encodes
all positions into 168 bits, then generate random 168 bit numbers and see what
percent of the corresponding positions are legal.



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.