Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Question for Hyatt about Alpha/Beta

Author: Bob Durrett

Date: 14:35:16 02/05/04

Go up one level in this thread


On February 05, 2004 at 15:10:15, Slater Wold wrote:

>On February 05, 2004 at 15:01:13, Bob Durrett wrote:
>
>>>>Obviously with bad move ordering, Alpha/Beta resorts back to M-M, which is
>>>>exactly what A/B is trying to avoid.
>>>>
>>>>But what I think Bob D. is wondering, is that Alpha/Beta seems to be tailored
>>>>simple material returns.  I think he is worried that a huge positional eval
>>>>would be hindered by bad returns from A/B.
>>>>
>>>>A/B works from your search, not your eval.
>>>>
>>>>I think his questions is, can they get in the way of each other?
>>>
>>>
>>>as I mentioned, alpha/beta is order dependent.  Get the order wrong and the tree
>>>size blows up.  So the correct question to ask is "can your move order code
>>>accurately predict moves that lead to the best evaluation score?"  For example,
>>>in a material-only search, looking at winning (SEE) captures first tends to do
>>>exactly what you want...
>>
>>So, in modern engines, what are the determining factors which set the move
>>ordering?  What does choice of move ordering depend on and what does it not
>>depend on?
>>
>>Bob D.
>
>Move ordering is done by your search, which is done by your move generator.  Of
>course, you can always add +/- to a move, based on what it does (captures,
>checks, advances, etc.).
>
>Your move ordering has to 'compliment' your eval.  In other words, if you spit
>out random moves in your move ordering, there is a good chance that crap moves
>are going to be in the top.  When A/B comes along, it will blow up your search
>tree and slow your engine down, cause you've now resorted back to a Min-Max
>search.
>
>But if your move ordering compliments your eval, then the first move or two,
>will return a cutoff, and you will get a better branching factor, resulting in
>more ply.

Well, that shows how little I really know and shows also that my intuition is
not very good.

I would have thought that the position evaluation code would have identified the
"best" move and if given a chance [by the rest of the engine code] would then
identify a "next best" move and so on until not allowed to do any more.

Also, I would have expected the engine to look at the move suggested by the
position evaluation code before it did anything else [except maybe for
responding to user commands].

I guess actual knowledge of the code trumps intuition.

Bob D.

Bob D.



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.