Home * People * Walter Faxon

Walter Faxon from the United States is one of the bitscan pioneers. His magic bitscan, invented in the 80s is still one of the most competitive on 32-bit architectures . On June 09, 2003 Walter made a thought-provoking appeal in CCC.

Magic Bitscan

Walter Faxon's 32-bit friendly magic bitscan [1] uses a fast none minimal perfect hashing function:
const char LSB_64_table[154] =
#define __ 0
   22,__,__,__,30,__,__,38,18,__, 16,15,17,__,46, 9,19, 8, 7,10,
   0, 63, 1,56,55,57, 2,11,__,58, __,__,20,__, 3,__,__,59,__,__,
   __,__,__,12,__,__,__,__,__,__, 4,__,__,60,__,__,__,__,__,__,
   __,__,__,__,21,__,__,__,29,__, __,37,__,__,__,13,__,__,45,__,
   __,__, 5,__,__,61,__,__,__,53, __,__,__,__,__,__,__,__,__,__,
   28,__,__,36,__,__,__,__,__,__, 44,__,__,__,__,__,27,__,__,35,
   __,52,__,__,26,__,43,34,25,23, 24,33,31,32,42,39,40,51,41,14,
   __,49,47,48,__,50, 6,__,__,62, __,__,__,54
#undef __
 * bitScanForward
 * @author Walter Faxon, slightly modified
 * @param bb bitboard to scan
 * @precondition bb != 0
 * @return index (0..63) of least significant one bit
int bitScanForward(U64 bb)
   unsigned int t32;
   bb  ^= bb - 1;
   t32  = (int)bb ^ (int)(bb >> 32);
   t32 ^= 0x01C5FC81;
   t32 +=  t32 >> 16;
   t32 -= (t32 >> 8) + 51;
   return LSB_64_table [t32 & 255]; // 0..63

Markoff - Botvinnik - Kaissa - Hsu - ABC - Berliner

Musings on nonstandard computer chess techniques.

What's new on the computer chess front? I note that Sergei S. Markoff's new program SmarThink (http://www.aigroup.narod.ru/detailse.htm) is supposed to use (among many other things) some of former world chess champion M.M. Botvinnik's ideas. Botvinnik's "Computers, Chess and Long-Range Planning" (Springer, 1970) and "Chess: Solving Inexact Search Problems" (Springer, 1983) described a method that apparently only Botvinnik's programmer/protege Boris Stilman believed would work, which Stilman later generalized in his own book "Linguistic Geometry: From Search to Construction" (Kluwer, 2000). Markoff's own on-line writings on chess algorithms (http://www.aigroup.narod.ru/indexe.htm) are only in Russian, so far. (I am assuming that the SmarThink download doesn't include source.)

Markoff also writes that his first program included ideas from the authors of Kaissa. Those authors published papers in the 1970's on "the method of analogies" to reduce search work, but they did not use it in their competitive program. If you recall, Hsu wrote in "Behind Deep Blue" (Princeton Univ. Pr., 2002) that he had implemented a stripped-down version of the analogies method for Deep Blue. It is the unpublished intellectual property of IBM.

Sometimes I wonder if chess program authors mention intriguing nonsense just to throw their competitors off the track. I recall someone once letting slip that he had used Botvinnik's method for an early hardware-limited microcomputer program. That seems unlikely. Nearly 15 years ago an author (Kittinger?) dropped hints that he had adopted McAllester's 1988 method conspiracy numbersearch (aka conspiracy search) for his program, using the term "nodulation". Published results indicate that plain conspiracy numbers don't work very well for chess. As far as I know, today only experiments on multiprocessor machines are being conducted; no competitive microcomputer program uses it at all. So was it a mirage -- or a trick? David McAllester and Deniz Yuret did finally publish their revised work (Alpha-Beta Conspiracy Search. ICGA Journal, Vol. 25, No. 1 (March 2002), pp. 16-35), nearly ten years after their initial experiments with the multiprocessor program Star-Socrates. And ten years from now?...

And what about Berliner's B* algorithm? (Actually Palay's probabilistic B* using a probability distribution for evaluation instead of a simple range, today suggestive that techniques from fuzzy logic might be applied.) The chess machine Hitech was originally built for it in the early 1980's (equal first on points but second on tiebreak, WCCC 1986) -- and finally began using it. As of mid-1993 it was "almost as good as regular Hitech". In mid-1995 it was still "not quite as good as brute force searching." In the abstract of his last word on the subject (Hans J. Berliner and Chris McConnell. B* probability based search. Artificial Intelligence, Volume 86, Issue 1, September 1996, Pages 97-156) Berliner writes, "Analysis of the data indicates that should additional power become available, the B* technique will scale up considerably better than brute-force techniques." Berliner is now retired. More power is available. Where are the later papers? Where is B* today?

My suggestion: you are writing a chess program. Go ahead, put in negascout, null-move pruning, IID, everything everybody is already doing. Then, look to the literature and find some method that everybody is _not_ doing. Implement it, experiment with it, and _publish_ your results. Please.

- Walter

No Go

(was Re: Markoff -- Botvinnik -- Kaissa -- Hsu -- ABC -- Berliner) [3]
Hello, Omid.

First, thanks for you thoughtful response to my recent post. I have been from time-to-time disappointed that there is not more AI content on CCC. It very much seems to be a hobbyist board, playing with the current programs and building duplicates of them, albeit with minor differences in emphasis and implementation. I've been guilty of this myself in the bitscan threads. But the few times I have tried to raise the level of discussion have been met with, mostly, silence. My last post was to an extent, a "last gasp".

Forum Posts


  1. ^ Another hacky method for bitboard bit extraction by Walter Faxon, CCC, November 17, 2002
  2. ^ Markoff - Botvinnik - Kaissa - Hsu - ABC - Berliner by Walter Faxon, CCC, June 09, 2003
  3. ^ No Go (was Re: Markoff -- Botvinnik -- Kaissa -- Hsu -- ABC -- Berliner) by Walter Faxon, CCC, June 11, 2003

What links here?

Up one level