Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: All shortest paths & other flood-fill based algorithms

Author: Gerd Isenberg

Date: 07:42:55 09/14/02

Go up one level in this thread


On September 14, 2002 at 08:48:36, Steffan Westcott wrote:

>On September 14, 2002 at 04:33:22, Gerd Isenberg wrote:
>
>>So if you found a asp-bitboard with only one bit set, you really found a
>>bottleneck - great.
>
>
>Gerd,
>
>This is not true. To locate bottlenecks, you must consider all paths, not just
>the shortest ones. This fact means a square may have several path lengths
>leading to it, so we can't use the ideas in AllShortestPaths().
>
>However, if we define a bottleneck to be a square (or several squares) that all
>valid paths must go through, then we have a simple test for a proposed
>bottleneck :
>
>---- CUT HERE ----
>
>bool IsBottleneck(BitBoard sq1, BitBoard sq2, BitBoard mask,
>                  BitBoard bottleneck)
>{
>    return !SquaresAreConnected(sq1, sq2, mask & ~bottleneck);
>}
>
>---- CUT HERE ----
>
>ie. we constrict the mask and test if all the valid paths break.
>
>Cheers,
>Steffan

Yes, you are right. But at least a bottleneck for the shortest path, may be a
strong indication that there is a "real" bottleneck, specially if distance of
the shortest path is greater/equal some threshold (e.g. passers distance to
promote square). Longer paths require more (at least one), eventually decisive
tempi, eg. in determing whether a king is in a square of a passer etc.

What is your intention of use for the asp subtargets on the path, eg. generating
Piece Square Tables for kings in blocked pawn endings?

Thanks in advance,
Gerd


btw:

Your routines are rather efficient to implement with mmx registers, except to
determine whether a mmx-register is zero or not (what hopefully changed with
64bit hammer, haven't read the white papers yet).

The "paddb mmx, mmx" opcode which parallel adds 8 bytes, is nice to shift one
left in right board direction (always a mirror in my brain), no wrap around, no
need to clean the a-file after. Wonder why "psubb mmx, mmx" doesn't do the same
to shift right :-)



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.