Computer Chess Club Archives


Search

Terms

Messages

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

Author: Dann Corbit

Date: 12:14:55 07/26/04

Go up one level in this thread


On July 24, 2004 at 15:21:22, Gerd Isenberg wrote:

>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?

I don't think it really makes much difference.  Almost 100% one of the top 5
will fail high.  I imagine problems may arise in zugzwang situations but I have
not measured it.

>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?

Anything you can do to improve the guess of the value of a node will be
important, I think.  And especially anything you have already computed.

>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.

It seems to me that if you get it right, it will work just the same as my idea.
Probably, my method is as complicated as your since I do everything
incrementally (including eval).  So I store lots of state information also.




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.