Author: rasjid chan
Date: 01:38:22 03/24/04
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.