Reply
 
LinkBack Thread Tools Display Modes
  #1   Report Post  
Old August 21st 03, 10:52 AM
Delphi
 
Posts: n/a
Default Search extensions and transposition tables

Hi!

I'm planning to add transposition tables holding the usual values,
bounds and computed depth information of a position into my simple
chess program. As I use a simple search extension concerning checks
(adding 1 ply when a check occurs), I have a problem to understand how
the depth information in the TT could be used in such a case. If I
encounter a position where the hashprobe succeeds and the depth
information there says that the position was searched deeper before
than I plan to search, can this really be used in such a case? Because
with search extension, the moves to follow (if I would to the search)
could in fact increase my depth-to-do, making it (then) bigger than
the information in the TT. So it seems that some additional
information has to be stored in the TT, but what and how to use it?

Thanks for your help
-delphi-
  #2   Report Post  
Old August 21st 03, 07:19 PM
Rudolf Posch
 
Posts: n/a
Default Search extensions and transposition tables

Usually chess programs store positions into the transposition hash table
which have been searched full width (and many programs also positions from
the horizon depth too). Most programs do not store positions from the
quiescence search.
When you make a search extension like in your case extending 1 ply when in
check and you search this position with 1 ply deeper full width you can
save it in the TT hash table with the same good reason as any other position
searched full width.
Naturally you store in the TT in this case the increased depth.
Be careful to store in the TT not the depth distance from root but the
"draft", which is equal full width depth - actual depth.

Rudolf

"Delphi" wrote in message
om...
Hi!

I'm planning to add transposition tables holding the usual values,
bounds and computed depth information of a position into my simple
chess program. As I use a simple search extension concerning checks
(adding 1 ply when a check occurs), I have a problem to understand how
the depth information in the TT could be used in such a case. ...



  #3   Report Post  
Old August 21st 03, 10:10 PM
Delphi
 
Posts: n/a
Default Search extensions and transposition tables

Thank you for your answer!

My problem arose when I thought of using such stored values (storing
also flags as EXACT or such):
a) Consider a situation in a 8 ply full search, where a line is 4
plies of non-checking moves and then 4 other plies with 2 checks in
it. According to my program it would then search a total of 10 plies.
Into the TT for the position after the first 4 moves I would enter the
returned EXACT value of this search and a depth information of 6 (= 10
- 4).

b) When later in the same iteration search I come to the same position
after 4 moves as above, there might be one check. For better
imagination think of a line that has a check in it and then of
transposing the moves such that due to the transposition the check is
avoided, which would be our first case of above. In the TT I would
find an entry and there is says: We searched this position before till
further depth 6 and got that and that EXACT value. So I could be
happy, because what I wanted to do, is search 4 further moves (8 - 4 =
4) and 6 were searched yielding an EXACT value, so I should simply
take it.

But if I compared this to what would have happened, when not the value
was taken, but the search made instead, then I see an inconsistency:
Due to the additional check within the first 4 plies I would in fact
search 11 (8 + 1 + 2) plies in total in case b). And of course, viewed
from our node in the TT, the search would have been *7* plies deeper
from there on and not 6.
So I wonder how could I ever take a value from a search till depth+6,
when it fact (really searching) I would have searched till depth+7,
which must not, but could produce a different value?
Do I not additionally have to take into account the 0 checks and the 1
checks within the first 4 moves of my above example?
I.E. wouldn't it be necessary to also store the number of "extending
moves" before a position in the TT and only if depth-till-leaf *and*
extending moves number are fulfilling the = inequality could I simply
take the value?

Thanks,
-delphi-


"Rudolf Posch" wrote in message ay.telekom.at...
Usually chess programs store positions into the transposition hash table
which have been searched full width (and many programs also positions from
the horizon depth too). Most programs do not store positions from the
quiescence search.
When you make a search extension like in your case extending 1 ply when in
check and you search this position with 1 ply deeper full width you can
save it in the TT hash table with the same good reason as any other position
searched full width.
Naturally you store in the TT in this case the increased depth.
Be careful to store in the TT not the depth distance from root but the
"draft", which is equal full width depth - actual depth.

Rudolf

Reply
Thread Tools
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On



All times are GMT +1. The time now is 10:54 AM.

Powered by vBulletin® Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Copyright 2004-2018 ChessBanter.
The comments are property of their posters.
 

About Us

"It's about Chess"

 

Copyright © 2017