Author: Eric Oldre
Date: 10:55:37 07/29/04
I have a couple theories about trans table replacement that i'd like some input
on.
I started off with a single replace if deeper trans table.
//find best replacement in deep table
entry = &trans_table.entries[board->zobrist0%trans_table.size];
//store in deep table if as deep or deeper than existing entry
if(depth>=((entry->depth)-(entry->age))){
entry->zobrist1 = board->zobrist1;
entry->bestmove = move;
entry->depth = depth;
entry->type = type;
entry->value = value;
entry->age = 0;
}
then I wanted to try something else. I was going to look not just at the entry
exactly at &trans_table.entries[board->zobrist0%trans_table.size];
but also the few entries following that entry.
chesstranstableentry *entry;
chesstranstableentry *cmp_entry;
entry = &trans_table.entries[board->zobrist0%trans_table.size];
int i;
for(i=1;i<=transtable_max_offset;i++){
cmp_entry = &trans_table.entries[(board->zobrist0%trans_table.size)+i];
if(cmp_entry->depth < entry->depth){
entry = cmp_entry;
}
}
if(depth>=((entry->depth)-(entry->age))){
entry->zobrist1 = board->zobrist1;
entry->bestmove = move;
entry->depth = depth;
entry->type = type;
entry->value = value;
entry->age = 0;
}
with the idea that if there was a lower depth entry near the address that it
would normally
replace at, then it would replace the lowest depth entry in that area. keeping
more valuable deeper entries.
I discovered that instead of reducing my node counts it actually went up.
my question is, does the above approach make since? it seems it would reduce
my node count to me, but perhaps i'm missing something.
Or does that fact that it increased my node count point to suggest
that I have other problems in my trans table use?
Also, if the 2nd method above is fairly common, is there a common term for that
type of scheme?
Thanks,
Eric
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.