Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Uri's ETC

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.