Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Rebel and Move Ordering

Author: Edward Screven

Date: 17:37:40 11/17/97

Go up one level in this thread


On November 17, 1997 at 18:44:39, Howard Exner wrote:

>Why doesn't Rebel 8 order the move Re4-e1 before
>b6-b7 since it discovers rather quickly that Re4-e1
>is much better? Would it not be useful to re-order
>the moves after each ply? What are the obstacles in
>doing this?

the information you discovered using the "power analysis"
feature just isn't available from a conventional
implementation of iterative deepening.  here's a
simplistic (*) implementation which exhibits the same
characteristic:

    for depth in 1 ... +inf loop
       score := search(pv,-inf,+inf);
       for move in legal_moves minus pv loop
          otherscore := search(move,score,score+1);
          if otherscore > score then
            score := search(move,otherscore,+inf)
            pv := move
       end loop
    end loop

when we consider a move other than the principal variation
we first see if it is better than the current pv by
searching using the null window (score,score+1).  if we
discover that it is better, then we try to find out how
much better by searching with a wide window.  so in the
case you described, a conventional program would only
know that Re1 and b7 are both worse than g7 at the depths
searched, but would not gain any information about their
relative order.

  - edward screven

(*) some of the things missing: using less than fully wide
windows when scoring old and new pvs; dealing with fail-high
followed by fail-low; keeping old pvs high in the move order;
using the condition of the search to affect time allocation;
cutting the search short for "easy" moves.



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.