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.