Author: Uri Blass
Date: 02:10:14 03/04/04
Go up one level in this thread
On March 04, 2004 at 04:36:42, Andrew Dados wrote: >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 > >-------------- History table does not help me only in move ordering and I use history based pruning. I strongly believe that history may not help in move ordering for some strong engines but we are talking in this discussion about an engine of somebody who only began to write his program. > > 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). I guess that the reason that history did not work for you is simply that you added a lot of complicated technique before adding history tables. I do not believe that you only added hash and killer moves before history. 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- I have null move and I am sure that I can improve my poor move ordering by similiar techniques and I already thought about something similiar having escapes from threats first but still did not implement it and I got to the conclusion that rewriting my alphabeta will make it more easy for me to do this change and more improvement to the move ordering in the future. Thanks anyway for the full descreption of the idea. I do not know how much time it will take me to rewrite my alphabeta. I guess that it may take at least some days and usually I have more fun with ideas that I can test faster and this is the reason that I delay doing it. Uri
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.