Author: KarinsDad
Date: 11:53:58 07/13/99
Go up one level in this thread
On July 12, 1999 at 18:01:29, blass uri wrote: [snip] > >After a capture of white we see that white can get at most 2 good pawns and >After a capture of black we see that white can get at most 1 good pawn(the same >as black can get after a capture of white). > Uri, Well, I am still having problems understanding your concept of good vs. bad pawns, but I guess that it is just a different paradigm. I do understand the statement you made above here and how it applies to the i/j comparison in your program (and how the comparison works and that it is correct), so I guess that's the important thing. So, if I got it correctly, 3.70^46 is the upper bound so far. The placement of the kings is not 64 x 63 = 4032 possibilities, but rather 4 x 60 + 24 x 59 + 26 x 55 = 3086 possibilities. I did not see where you segregated the kings out so that illegal possitions of one king in the square next to the enemy king would be eliminated. So, the upper bound should change to 3.70^46 * 3086 / 4032 = 2.83^46. Now, side to move, en passant, and castling has to be added (adding the 50 move rule seems a little much). Side to move is one bit, en-passant can be effectively considered to be one bit (although this bit is not needed if the case cannot exist) and castling can easily be used to modify the 3086 king/king positions. For example, adding castling states to the kings can be done via adding 3 more king positions to each side (can castle kingside, can castle queenside, can castle both), so: 3086 + 3 * 59 (white can castle, black cannot) + 3 * 59 (black can castle, white cannot) + 3 * 3 (both can castle) = 3449 possibilities. Actually, this number is a little large since there are some illegal positions here such as if black's king is in check by white's rook when castling is allowed and it is white to move, but I didn't bother to yank them out. So, 3.70^46 * 3449 / 4032 (kings and castling) * 2 (side to move) * 2 (en-passant) = 1.267^48. This can be stored in 160 bits exactly (1.4615^48 is approximately equal to 2 to 160th power). Also, your program does not take into account illegal positions such as the side to move's king being in check via 2 knights or the side to not move's king being in check. I doubt any upper bounds program could. However, if your program is correct, it is nice to know that the information can be stored in 160 bits. Unfortunately, all of my recent undertakings in this area have convinced me that it will not be done via conventional bitwise compressions and possibly an enumeration can be done on a 160 bit value to extract any possibility (but what a nightmare!!). KarinsDad :)
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.