Author: Uri Blass
Date: 02:10:34 03/24/04
Go up one level in this thread
On March 24, 2004 at 04:38:22, rasjid chan wrote:
>I have to thanks Uri for his post about ETC, the dumb intelligent thing.
>
>When I first read his post I could not understand what he
>was talking and guess he must have invented a wheel that has no relation
>whatever with the circle. I only understand transposition tables as
>UB,LB and EXACT and cannot figure out anything else. Strangely, after
>Dr Hyatt's (Englishman ?) reply I immediately know what ETC is and immediately
>implemented it. Who understands ETC and don't implement it ?. I never did
>for reasons I just joined this forum quiet just a little while ago and
>.... chess programming has no beginning and no ending....
>Later follow up by Dieter mentions things about extentions before / after
>makemove that are a little too technical for me.
>
>So if I have not missed out on deeper implications of ETC, here's
>why I have great savings :-
>
>1) my extentions are all computed before makemove as I generate
> all legal moves with a check bit, etc.. so I don't (or yet need)
> extentions after makemove. Probing hash before / after makemove
> is the same.
>
>2) my make / unmakemove happen to be fairly costly, with
> incremental updates of many things, PST eval() score as recommended
> by Ed, bitmaps bits[6][6], allbits,piececount, material, etc
> One big item, the attack bitmaps of the 2 kings as queens. This is
> most costly, one that I dislike throwing away and that lowers NPS most.
>
> The dumb thing to do is linear thinking -
> makemove(), hashkeY() , if (repetition3()) unmakemove(),
> score = -search(...)
> and inside search:-
>
> int search(depth, alpha, beta){
> if (probehash() == cutoff)
> return score.
> ......
> }
> followed by unmakemove()... very costly indeed !
>
>
> So what is ETC ?. Enlightened Transposition Cutoff or
> Eager to Try Cutoff.
>
> So now I have the following sequence:-
> 1) push update hashkey before makemove(), cost == nil
> 2) if repeition3() goto NO_SEARCH; big savings when hit.
> 3) score = -hash_cutoff_before_makemove(depth - 1, -beta, -alpha);
> if (score == cutoff) goto NO_SEARCH;
> biggest savings whenever it is a cutoff at cost == almost nil. I cannot
> find anything much cheaper than a function call with a hash probe.
> 4) makemove();.... score = -search();...etc..
>
> So is there anyone out there not doing ETC
> or IS THIS ETC ?
>
> Rasjid
It is not ETC if I understand what you do correctly.
ETC means to check if there is a move that cause a cutoff.
It can save time more than make and unmake because if the move that generates a
cutoff is move number 5 in the original order of moves then you do not need to
search moves 1-4.
I understand that in your case the only save that you get is by not making and
unmaking move 5 but you still search moves 1-4.
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.