Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Uri's ETC

Author: rasjid chan

Date: 03:22:11 03/24/04

Go up one level in this thread


On March 24, 2004 at 05:10:34, Uri Blass wrote:

>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

I just read Tord's post and I think I'm not yet ETC compatible, so gains
from CCC paying off. Fortunately, I have the hint from Tord's post and
I will see if I can think exponentially and not linearly.... maybe
there's a way to check all move etc.... give me 6 months.

Thanks
Rasjid






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.