Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Algorithm for storing Mate positions

Author: Tony Werten

Date: 06:59:41 03/07/05

Go up one level in this thread


On March 07, 2005 at 09:44:48, Les Fernandez wrote:

>On March 07, 2005 at 03:50:54, Tony Werten wrote:
>
>>On March 06, 2005 at 23:32:36, Les Fernandez wrote:
>>
>>>If I place a restriction that the chess positions involved in my coding scheme
>>>are guaranteed to lead to mate for the side to move then I can store a large
>>>number of chess positions with an average of very few bits.  In fact never,
>>>regardless of what is on the board, will it take more then Approx. 200 bits to
>>>store.  What is even more interesting is that entering 1 chess position with a
>>>guaranteed mate into my utility I can generate a slew of new mate positions and
>>>then store them into my encoding scheme. In fact the output below is from my
>>>utility called "Mate Cruncher".  I dont know currently what use it may offer but
>>>as you will see it is a good compression.  Perhaps some of you out here may find
>>>some use for it and I would be interested in hearing about them.
>>>
>>>Oh and BTW if you think this is good wait until I finish working on a similar
>>>thing that will potentially take 1 position and turn it into approx. 1500 very
>>>useful EPD's.  At the moment I prefer not to mention why they will be useful but
>>>STAY TUNED.
>>>
>>>The following continuous 225 bit string stores all the epd strings you see at
>>>the bottom.  This works out to an average of 2.6 bits/position.
>>
>>
>>Hmmm, aren't we just playing with numbers here ?
>
>Hi Tony,

Hi Les,
>
>I am not trying to play with numbers but merely reporting what this encoding
>scheme offers.  What should be emphasized is that I can generate a series of
>positions which also are mate positions without needing to do any engine
>analysis on them.  The encoding scheme offers a way of storing all those new
>positions in a smaller footprint that can be used as a lookup with the hope of
>saving time during a game.

Yes, I understand. I meant that by restricting the set of positions, the term
average bits per position, isn't really correct anymore.

I didn't mean that your way of encoding characteristics of a position rather
than the position ( my guess ) isn't interesting. On the contrary.

cheers,

Tony

>
>
>>
>>Suppose I want to encode all winning KQk positions with KQ side to move. (is
>>always a win)
>>0 no win, or no KQk with KQ side to move position
>>1 won KQk position with KQ side to move
>>
>>Fast math: about 64*56 kingpositions * 62 queens positions. Divide by 2 for only
>>legal positions, multiply by 2 for color mirroring= 222208
>>
>>1 bit for these positions, so I only need 4.5*10^-6 bits per position.
>>
>>Tony
>>
>>
>>
>>>
>>>110110010100101101100101001000111101000100000100100100100111000110010000011
>>>011000000011001011101001111100101011010001111000100010100100110100001000101
>>>100000000100000110111100001100000110000010000001111000111100011111001000000
>>>
>>>In the above binary exists all the information you see here (88 epd positions)
>>>
>>>2kn4/2pr4/pp3Q2/8/3P4/2P4P/PP4P1/4R1K1 w - - pv Qf5; ce 32754;
>>>2kn4/2pr1Q2/pp6/8/3P4/2P4P/PP4P1/4R1K1 w - - pv Qf5; ce 32754;
>>>2kn1Q2/2pr4/pp6/8/3P4/2P4P/PP4P1/4R1K1 w - - pv Qf5; ce 32754;
>>>2kn4/2pr4/pp4Q1/8/3P4/2P4P/PP4P1/4R1K1 w - - pv Qf5; ce 32754;
>>>2kn4/2pr3Q/pp6/8/3P4/2P4P/PP4P1/4R1K1 w - - pv Qf5; ce 32754;
>>>2kn4/2pr4/pp6/6Q1/3P4/2P4P/PP4P1/4R1K1 w - - pv Qf5; ce 32754;
>>>2kn4/2pr4/pp6/7Q/3P4/2P4P/PP4P1/4R1K1 w - - pv Qf5; ce 32754;
>>>2kn4/2pr4/pp6/8/3P2Q1/2P4P/PP4P1/4R1K1 w - - pv Qf5; ce 32754;
>>>2kn4/2pr4/pp6/8/3P1Q2/2P4P/PP4P1/4R1K1 w - - pv Qf5; ce 32754;
>>>2kn4/2pr4/pp6/8/3P4/2P2Q1P/PP4P1/4R1K1 w - - pv Qf5; ce 32754;
>>>2kn4/2pr4/pp6/8/3P4/2P4P/PP3QP1/4R1K1 w - - pv Qf5; ce 32754;
>>>2kn4/2pr4/pp6/8/3P4/2P4P/PP4P1/4RQK1 w - - pv Qf5; ce 32754;
>>>2kn4/2pr4/pp6/8/3PQ3/2P4P/PP4P1/4R1K1 w - - pv Qf5; ce 32754;
>>>2kn4/2pr4/pp6/8/3P4/2PQ3P/PP4P1/4R1K1 w - - pv Qf5; ce 32754;
>>>2kn4/2pr4/pp6/8/3P4/2P4P/PPQ3P1/4R1K1 w - - pv Qf5; ce 32754;
>>>2kn4/2pr4/pp6/8/3P4/2P4P/PP4P1/1Q2R1K1 w - - pv Qf5; ce 32754;
>>>2kn4/2pr4/pp6/4Q3/3P4/2P4P/PP4P1/4R1K1 w - - pv Qf5; ce 32754;
>>>2kn4/2pr4/pp6/3Q4/3P4/2P4P/PP4P1/4R1K1 w - - pv Qf5; ce 32754;
>>>2kn4/2pr4/pp6/2Q5/3P4/2P4P/PP4P1/4R1K1 w - - pv Qf5; ce 32754;
>>>2kn4/2pr4/pp6/1Q6/3P4/2P4P/PP4P1/4R1K1 w - - pv Qf5; ce 32754;
>>>2kn4/2pr4/pp6/Q7/3P4/2P4P/PP4P1/4R1K1 w - - pv Qf5; ce 32754;
>>>2kn4/2pr4/pp2Q3/8/3P4/2P4P/PP4P1/4R1K1 w - - pv Qf5; ce 32754;
>>>4nk2/4rp2/2Q3pp/8/4P3/P4P2/1P4PP/1K1R4 w - - pv Qc5; ce 32754;
>>>4nk2/2Q1rp2/6pp/8/4P3/P4P2/1P4PP/1K1R4 w - - pv Qc5; ce 32754;
>>>2Q1nk2/4rp2/6pp/8/4P3/P4P2/1P4PP/1K1R4 w - - pv Qc5; ce 32754;
>>>4nk2/4rp2/1Q4pp/8/4P3/P4P2/1P4PP/1K1R4 w - - pv Qc5; ce 32754;
>>>4nk2/Q3rp2/6pp/8/4P3/P4P2/1P4PP/1K1R4 w - - pv Qc5; ce 32754;
>>>4nk2/4rp2/6pp/1Q6/4P3/P4P2/1P4PP/1K1R4 w - - pv Qc5; ce 32754;
>>>4nk2/4rp2/6pp/Q7/4P3/P4P2/1P4PP/1K1R4 w - - pv Qc5; ce 32754;
>>>4nk2/4rp2/6pp/8/1Q2P3/P4P2/1P4PP/1K1R4 w - - pv Qc5; ce 32754;
>>>4nk2/4rp2/6pp/8/2Q1P3/P4P2/1P4PP/1K1R4 w - - pv Qc5; ce 32754;
>>>4nk2/4rp2/6pp/8/4P3/P1Q2P2/1P4PP/1K1R4 w - - pv Qc5; ce 32754;
>>>4nk2/4rp2/6pp/8/4P3/P4P2/1PQ3PP/1K1R4 w - - pv Qc5; ce 32754;
>>>4nk2/4rp2/6pp/8/4P3/P4P2/1P4PP/1KQR4 w - - pv Qc5; ce 32754;
>>>4nk2/4rp2/6pp/8/3QP3/P4P2/1P4PP/1K1R4 w - - pv Qc5; ce 32754;
>>>4nk2/4rp2/6pp/8/4P3/P3QP2/1P4PP/1K1R4 w - - pv Qc5; ce 32754;
>>>4nk2/4rp2/6pp/8/4P3/P4P2/1P3QPP/1K1R4 w - - pv Qc5; ce 32754;
>>>4nk2/4rp2/6pp/8/4P3/P4P2/1P4PP/1K1R2Q1 w - - pv Qc5; ce 32754;
>>>4nk2/4rp2/6pp/3Q4/4P3/P4P2/1P4PP/1K1R4 w - - pv Qc5; ce 32754;
>>>4nk2/4rp2/6pp/4Q3/4P3/P4P2/1P4PP/1K1R4 w - - pv Qc5; ce 32754;
>>>4nk2/4rp2/6pp/5Q2/4P3/P4P2/1P4PP/1K1R4 w - - pv Qc5; ce 32754;
>>>4nk2/4rp2/6pp/6Q1/4P3/P4P2/1P4PP/1K1R4 w - - pv Qc5; ce 32754;
>>>4nk2/4rp2/6pp/7Q/4P3/P4P2/1P4PP/1K1R4 w - - pv Qc5; ce 32754;
>>>4nk2/4rp2/3Q2pp/8/4P3/P4P2/1P4PP/1K1R4 w - - pv Qc5; ce 32754;
>>>4r1k1/pp4p1/2p4p/3p4/8/PP3q2/2PR4/2KN4 b - - pv Qf4; ce 32754;
>>>4r1k1/pp4p1/2p4p/3p4/8/PP6/2PR1q2/2KN4 b - - pv Qf4; ce 32754;
>>>4r1k1/pp4p1/2p4p/3p4/8/PP6/2PR4/2KN1q2 b - - pv Qf4; ce 32754;
>>>4r1k1/pp4p1/2p4p/3p4/8/PP4q1/2PR4/2KN4 b - - pv Qf4; ce 32754;
>>>4r1k1/pp4p1/2p4p/3p4/8/PP6/2PR3q/2KN4 b - - pv Qf4; ce 32754;
>>>4r1k1/pp4p1/2p4p/3p4/6q1/PP6/2PR4/2KN4 b - - pv Qf4; ce 32754;
>>>4r1k1/pp4p1/2p4p/3p4/7q/PP6/2PR4/2KN4 b - - pv Qf4; ce 32754;
>>>4r1k1/pp4p1/2p4p/3p2q1/8/PP6/2PR4/2KN4 b - - pv Qf4; ce 32754;
>>>4r1k1/pp4p1/2p4p/3p1q2/8/PP6/2PR4/2KN4 b - - pv Qf4; ce 32754;
>>>4r1k1/pp4p1/2p2q1p/3p4/8/PP6/2PR4/2KN4 b - - pv Qf4; ce 32754;
>>>4r1k1/pp3qp1/2p4p/3p4/8/PP6/2PR4/2KN4 b - - pv Qf4; ce 32754;
>>>4rqk1/pp4p1/2p4p/3p4/8/PP6/2PR4/2KN4 b - - pv Qf4; ce 32754;
>>>4r1k1/pp4p1/2p4p/3pq3/8/PP6/2PR4/2KN4 b - - pv Qf4; ce 32754;
>>>4r1k1/pp4p1/2pq3p/3p4/8/PP6/2PR4/2KN4 b - - pv Qf4; ce 32754;
>>>4r1k1/ppq3p1/2p4p/3p4/8/PP6/2PR4/2KN4 b - - pv Qf4; ce 32754;
>>>1q2r1k1/pp4p1/2p4p/3p4/8/PP6/2PR4/2KN4 b - - pv Qf4; ce 32754;
>>>4r1k1/pp4p1/2p4p/3p4/4q3/PP6/2PR4/2KN4 b - - pv Qf4; ce 32754;
>>>4r1k1/pp4p1/2p4p/3p4/3q4/PP6/2PR4/2KN4 b - - pv Qf4; ce 32754;
>>>4r1k1/pp4p1/2p4p/3p4/2q5/PP6/2PR4/2KN4 b - - pv Qf4; ce 32754;
>>>4r1k1/pp4p1/2p4p/3p4/1q6/PP6/2PR4/2KN4 b - - pv Qf4; ce 32754;
>>>4r1k1/pp4p1/2p4p/3p4/q7/PP6/2PR4/2KN4 b - - pv Qf4; ce 32754;
>>>4r1k1/pp4p1/2p4p/3p4/8/PP2q3/2PR4/2KN4 b - - pv Qf4; ce 32754;
>>>1k1r4/1p4pp/p4p2/4p3/8/2q3PP/4RP2/4NK2 b - - pv Qc4; ce 32754;
>>>1k1r4/1p4pp/p4p2/4p3/8/6PP/2q1RP2/4NK2 b - - pv Qc4; ce 32754;
>>>1k1r4/1p4pp/p4p2/4p3/8/6PP/4RP2/2q1NK2 b - - pv Qc4; ce 32754;
>>>1k1r4/1p4pp/p4p2/4p3/8/1q4PP/4RP2/4NK2 b - - pv Qc4; ce 32754;
>>>1k1r4/1p4pp/p4p2/4p3/8/6PP/q3RP2/4NK2 b - - pv Qc4; ce 32754;
>>>1k1r4/1p4pp/p4p2/4p3/1q6/6PP/4RP2/4NK2 b - - pv Qc4; ce 32754;
>>>1k1r4/1p4pp/p4p2/4p3/q7/6PP/4RP2/4NK2 b - - pv Qc4; ce 32754;
>>>1k1r4/1p4pp/p4p2/1q2p3/8/6PP/4RP2/4NK2 b - - pv Qc4; ce 32754;
>>>1k1r4/1p4pp/p4p2/2q1p3/8/6PP/4RP2/4NK2 b - - pv Qc4; ce 32754;
>>>1k1r4/1p4pp/p1q2p2/4p3/8/6PP/4RP2/4NK2 b - - pv Qc4; ce 32754;
>>>1k1r4/1pq3pp/p4p2/4p3/8/6PP/4RP2/4NK2 b - - pv Qc4; ce 32754;
>>>1kqr4/1p4pp/p4p2/4p3/8/6PP/4RP2/4NK2 b - - pv Qc4; ce 32754;
>>>1k1r4/1p4pp/p4p2/3qp3/8/6PP/4RP2/4NK2 b - - pv Qc4; ce 32754;
>>>1k1r4/1p4pp/p3qp2/4p3/8/6PP/4RP2/4NK2 b - - pv Qc4; ce 32754;
>>>1k1r4/1p3qpp/p4p2/4p3/8/6PP/4RP2/4NK2 b - - pv Qc4; ce 32754;
>>>1k1r2q1/1p4pp/p4p2/4p3/8/6PP/4RP2/4NK2 b - - pv Qc4; ce 32754;
>>>1k1r4/1p4pp/p4p2/4p3/3q4/6PP/4RP2/4NK2 b - - pv Qc4; ce 32754;
>>>1k1r4/1p4pp/p4p2/4p3/4q3/6PP/4RP2/4NK2 b - - pv Qc4; ce 32754;
>>>1k1r4/1p4pp/p4p2/4p3/5q2/6PP/4RP2/4NK2 b - - pv Qc4; ce 32754;
>>>1k1r4/1p4pp/p4p2/4p3/6q1/6PP/4RP2/4NK2 b - - pv Qc4; ce 32754;
>>>1k1r4/1p4pp/p4p2/4p3/7q/6PP/4RP2/4NK2 b - - pv Qc4; ce 32754;
>>>1k1r4/1p4pp/p4p2/4p3/8/3q2PP/4RP2/4NK2 b - - pv Qc4; ce 32754;
>>>
>>>
>>>Thanks,
>>>
>>>Les



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.