Author: Peter Fendrich
Date: 02:17:56 03/24/04
Go up one level in this thread
Uri didn't invent ETC if that's what you imply!
Given your story about costly move/unmove functions it's possible that ETC gives
you some savings. Without ETC you will hit the cutoff anyway in the child node
and with smaller unmove costs ETC is not that effective IMHO.
/Peter
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
This page took 0.01 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.