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.