Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Move order %

Author: Andrew Dados

Date: 01:36:42 03/04/04

Go up one level in this thread


On March 04, 2004 at 01:08:10, Uri Blass wrote:

>On March 03, 2004 at 23:51:35, Andrew Dados wrote:
>
>>On March 03, 2004 at 22:14:12, Andrew Wagner wrote:
>>
>>>On March 03, 2004 at 22:09:51, Charles Roberson wrote:
>>>
>>>>
>>>>
>>>>   I suggest the use of history and killer moves. Give killers priority over
>>>>   history. Give winning captures priority over killers.
>>>
>>>
>>>How do you define "winning captures"?
>>
>>Really simple improvement is to put 'captures of last moved piece' first, then 2
>>killer moves, then rest of captures. Don't bother with history heuristic, it
>>hardly works. Then later you can redo this to move all winning captures before
>>killers.
>>
>>-Andrew-
>
>I disagree that history tables hardly works.
>
>Tscp has history tables and no killer moves and it has clearly better order of
>moves than 50%.
>
>I bet that if you remove history tables from tscp you will find that the history
>is very important for it.
>
>It is better to start with one thing and not with many things because many
>things is a sure way for bugs.
>The way to go is to add one thing and test if it is better.
>
>Uri

I encourage you to make an experiment: run 10 different positions with and
without history heuristic to ply 12. Then post total node differences in %. I
believe if you have decent move ordering then history helps very little or does
not help at all. YMMV

--------------

 If you have null move implemented then there is different move ordering
technique which worked for me very well when I was still into writing my engine
- I called it 'evasion' moves. It is in effect similar to history heuristic but
for me worked (history didn't work). Here is the description:

1) After null move fails low: note opponents move which refuted it.

 If you have hashtable move now try it as usual.

 If it is a capture which refuted your nullmove (say Bc6xQd5 refured your null)
then:

2a) Determine if captures of opponents piece (Bc6) which threatens yours (Qd5)
is a winning capture (SEE), if yes then try it here.

2b)  try all moves with your piece enprise (Qd5). Idea is: when someone makes a
pawn push and threatens your piece you probably should move the piece which is
en-prise. I did that before other winning captures. (You may try some
improvements here)

Finally (quite important): don't store such 'escape' moves into killers if they
fail high, they are very local.

3) Go on with other winning captures, killers, etc here


If you now think of history heuristic you probably will find the above technique
similar in effect.

-Andrew-



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.