Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: How to get nextMove O(N)

Author: Gerd Isenberg

Date: 12:21:22 07/24/04

Go up one level in this thread


On July 23, 2004 at 19:59:03, Dann Corbit wrote:

>Similar to what I like to do.
>Use the linear "select top N" function I posted in the "find min" thread to
>collect the top k entries.  (I like k=4 or 5).  Then I use a special function to
>sort the top k items using minimal comparisons and exchanges (a tiny fixed
>number of operations).
>The other N-k entries can remain unsorted, or you  can repeat the process on the
>N-k entries if you never get a big fail-high (if you like.)
>
>Expected time: O(n), with top 4 or 5 items in proper sort order.

Good idea! If first five moves don't fail high in cut-nodes, how high is the
probability that a remaining move fails high or that the cut-node becomes an
all-node?

Is it worth to keep track of pv/cut/all-nodes (pv is most left, cut-nodes are
siblings of pv-nodes or child of all-nodes, all-nodes child of cut-nodes) and to
distinguish them in scoring and getting?

What i actually do in my 32-bit program is generating moves with a kind of
finite state machine. So i first try to only generate hash move, obvious winning
captures, killers and safe checks. If no such move (if any) results in an
cutoff, i start to generate other moves and score and pick them depending on
eval versus alpha.

That works fine, but is complicated and has the disadvantage to keep some
additional data, such as state of movegen and bookholding-information in each
node.

Gerd



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.