Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Move ordering problems with PVS

Author: Pat King

Date: 07:49:36 11/28/00

Go up one level in this thread


On November 27, 2000 at 13:01:04, Scott Gasch wrote:

>Hi all,
>
>I have a standard AB search in my engine right now.  It works fine and I am
>reasonably happy with the tree sizes it is searching.
>
>However I am trying to convert it to a PVS -- a search with a minimal window for
>all moves after the first followed, if needed, by a research with the full
>alpha-beta window if this minimal window search returns a score in the original
>a-b range.
>
>As a test I ran the original A-B search from d2d4 d7d5 e2e4 e7e5 to 8 ply and
>compared the number of nodes searched to the new PVS search.  I am pretty sure I
>have the PVS implemented correctly and can only assume that the great difference
>in tree size comes from a poor move ordering on my part:
Another possible cause is an unstable evaluation if you haven't implemented
quiescent search yet. I was surprised at how poorly MTD performed when I first
implemented it, and surprised again how much better it worked with qsearch, even
counting the extra qsearch nodes!

PLY        AB      MTD  MTD & Q
1           58      60      60
2          559     584     586
3         1731    1780    2055
4        19152   19262   10424
4       163049  182122   39425
6       572897  485609  176127

The above was performed from the initial position. Zotron uses hash, captures,
and noncaptures for ordering. I now feel that anyone planning on implementing
PVS or MTD, or any algorithm involving researches, should take the time to
implement qsearch, or maybe SEE, first.

>
>   AB       PVS
>1. 45       83
>2. 525      646
>3. 3004     4975
>4. 14061    23048
>5. 43460    147922
>6. 183094   633827
>7. 486054   4727636
>8. 1129783  11029952
>
>The strange thing is that I am using the same move ordering in both cases: hash
>move (with PV stuffed), winning captures (MVV/LVA), losing captures (MVV, LVA),
>killers (beta cutoffs at same ply), rest sorted on history heuristic (depth^2).
>
>I've read that some people who use a SEE put losing captures at the end of the
>list.  I do not want to do this for two reasons: 1. I generate all captures
>before any of the moves to maybe get a cutoff with less work done and 2. Because
>I do not use a SEE I am not entirely certain that a MVV/LVA capture is indeed
>"losing"... the opponent's piece may be hung and no recapture occur.
>
>Is this move ordering scheme sane?
>
>Thanks,
>Scott

You're welcome.

Pat



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.