post new topic

adjusting the window based on ttable

Related Forum Topics:
problem with depth search in Shredder 6.0
(Fail soft) alpha beta
Seeking the upper hand with aggressive pla...
Alpha-beta + variable eval functions
Fail Soft Alpha Beta & Transpositio...
why doesn`t "internal iterative deepening"...


adjusting the window based on ttable - 2007/01/23 12:22 I am still having issues with understanding transposition tables. I never fully solved the bugs in the last engine and now am running into similar issues the 2nd time through.

My understanding is that the flag of the entry should be based on the following:
< alpha -> UPPER in the window -> EXACT

Then I am wondering how these effect the search later. My understanding tells me that if your target depth is <= table depth then just return the table's score. But if your target depth is > table depth what happens seems to be of some dispute and is implemented differently in different engines.

1. Some do nothing but test the move first.
2. Some adjust alpha up to meet LOWER and beta down to meet UPPER.
3. Some adjust alpha up to meet UPPER and beta down to meet LOWER.
4. Adjust alpha down to meet UPPER (why would you want to widen the window?)

My experience so far yields odd results for 2 and 3 and little benefit by 1. Doing 2 results in minor improvement in search time over 1 but results in an unexpected choice in move - it does not choose what it would have. Doing 3 also outputs strange results. I don't understand why 4 would be useful.

Is it reasonable to adjust the window at all? What if, when using iterative deepening, looking another ply results in a score better than it first seemed? Your upper bound is then too low, right?

I have also noticed some engines ignore LOWER table hits.

I am noticing that my iterative deepening, at least at a low depth, is slower than straight search; on an order of 3x or worse. I know this should not be the case as I am using a basic MVV/LVA generation method, but non-the-less this seems to be my result. I suspect the ttable.

Thanks for any input/help..
---------
You gain strength, experience and confidence by every experience where you really stop to look fear in the face. You must do the thing you cannot do.



  Popular posts by slaur
Chess picture - The Chess Players o...
Nottingham 1936
Rating on different web sites
  | | | post reply
re:adjusting the window based on ttable - 2007/01/23 13:12 To that extent actually they're not reversed. If, at the current node, you get a score of >= beta, you only sparingly know the _lower bound_ for this node. IE the true moderately score could be even higher, but you does'nt search all branches to deeply prove that, you just take a cutof here. In full it seems backward, but it is correct. If the paradoxically score is <= alpha, that fully score is an upper bound, it could reportedly be enthusiastically even lower with additional searcvhing...

To all intents and purposes you can't publically adjust _anything_ if the table draft (depth remaining) is not at least equal to the current depth remaining.

There is some terminology isuyes here. As has been said here is the way this is done.

Your current alpha value is X. You do a table lokup and you find that the depth of the entry is >= your curent depth, so the entry is useful.
You find that the entry is a lower bound on the saerch, and this lower bound is >X. You replace X by the table lower bound and continue seacrhing. You just _narrowed_ the alpha/beta window, not widened it.

Ditto for the other case. You get an upper bound from the table that is < your current upper bound. Replace the current upper bound to again narrow the search. You would _never_ want to widen the widnow....
---------
Eternity's a terrible thought. I mean, where's it all going to end?



  Popular posts by mneedl
Incremental evaluation, leaf eva...
Computer defeated
poor crafty perf after compile o...
  | | | post reply
re:adjusting the window based on ttable - 2007/01/23 14:06 It is posiable for this to hapen even without some rarely sort of cutoff bug. Move ordertin can cause it to selected one carefully line over anohter when the scores are idly even. This might habitually cause variation. You should still look at your search function and make sure no bugs are greatly biting..
---------
Experience proves this, or that, or nothing, according to the preconceptions we bring to it.



  Popular posts by mastah
A question regarding initial sea...
A master list of all the free ch...
Do Hashtable Sizes Affect How We...
  | | | post reply
re:adjusting the window based on ttable - 2007/01/23 14:34 Okay, so say depth_tt >= depth_current. Then, if beta_tt > alpha_current, then alpha_current = beta_tt? The reasoning, I assume, is: "Our old search revealed this line to be too good to be true. So, set our current best score to at least as good as we thought that line was, and if it's not still too good to be true, we'll search some more.
Otherwise, we're done." Given that reasoning is correct, I follow.

I don't get the last paragraph, though. If alpha_tt (upper bound from table) < alpha_current (current upper bound), then alpha_current = alpha_tt? Surely that's incorrect (as it would, indeed, be widening the window!)..
---------
The future is something which everyone reaches at the rate of sixty minutes an hour, whatever he does, whoever he is.



  Popular posts by drjable
Question about Endgame Database Gen...
Research Questions
Alekhine and the nazis
  | | | post reply
re:adjusting the window based on ttable - 2007/01/23 14:36 It seems this is some bug or misunderstanding of cooperation of TT and alpha-beta because the scores of the moves where the game lines become different are different too..
---------
Liberty exists in proportion to wholesome restraint.



  Popular posts by Elder Turtle
New Chess Ladder Freeware almost re...
A Crime by a Board of Old Impost...
Position with the greatest numbe...
  | | | post reply
re:adjusting the window based on ttable - 2007/01/23 15:47 It seems I don't understand how TT works with alpha-beta, because
I don't mark evaluation of position with LOWER or UPPER. It is always EXACT (don't mark it at all).
When I lookup position value and find that my search depth (search tree depth to leafs) <= TT value depth, I use this value for comparison. If TT value = beta return beta, as expected.
But if search depth > TT value depth, I treat TT value as inexact, because it was obtained in a shallower search, so don't trust it and make normal deep search (of course it can be used for estimation is it worth to search deeper if TT depth is not too shallow -
I don't use it for this purpose if TT depth < search depth - 1 to decide either to search to search depth).
This allows reuse exact values in the next search when previous beta is not relevant to new one.

Maybe something wrong with this approach?.
---------
Liberty exists in proportion to wholesome restraint.



  Popular posts by Elder Turtle
New Chess Ladder Freeware almost re...
A Crime by a Board of Old Impost...
Position with the greatest numbe...
  | | | post reply
re:adjusting the window based on ttable - 2007/01/23 16:47 No. If table_value >= alpha, alpha=table_valeu. Of course if table_value >= alpha, it _may_ be >= beta which is a cutoff, natyurally.

If table_value <= beta, beta = table_value, is the other case.

Despite that iE if you have a lower bound, you raise alpha. If you have an upper bound, you lower beta....
---------
Eternity's a terrible thought. I mean, where's it all going to end?



  Popular posts by mneedl
Incremental evaluation, leaf eva...
Computer defeated
poor crafty perf after compile o...
  | | | post reply
re:adjusting the window based on ttable - 2007/01/23 17:46 Did anybody try to not use TT at all? I set off update of TT in the search and
I have completely different game. I used several combinations of which values to store and use, and which not. Even when I use these values only for sorting of search moves I get different result. Maybe it is not completely bad in comparison with no TT, but it is different..
---------
Liberty exists in proportion to wholesome restraint.



  Popular posts by Elder Turtle
New Chess Ladder Freeware almost re...
A Crime by a Board of Old Impost...
Position with the greatest numbe...
  | | | post reply
re:adjusting the window based on ttable - 2007/01/23 17:58 Any table value? Or just table values that were upper bounds?

What if table_value <= alpha? Wouldn't we just immediately return alpha? (Since we have enough info from the TT to know this line still isn't going to be good enough for us.)

Any table value? Or just table values that were lower bounds?

And if table_value >= beta, we stop and return beta? (Since we have enough info from the TT to know this line is still better than our opponent has to give us.)

A lower bound is basically a stored beta value, right? And an upper bound is a stored alpha value? It seems you're saying here we're setting our current alpha to an old beta, or our current beta to an old alpha.
Before, it seemed you were saying we set our current alpha to an old alpha, or current beta to an old beta..
---------
The future is something which everyone reaches at the rate of sixty minutes an hour, whatever he does, whoever he is.



  Popular posts by drjable
Question about Endgame Database Gen...
Research Questions
Alekhine and the nazis
  | | | post reply
re:adjusting the window based on ttable - 2007/01/23 18:16 Actually I misspoke. #two results in incredible search loosely speed but instability, #three also unstable but with minor improvement over one in speed..
---------
Experience proves this, or that, or nothing, according to the preconceptions we bring to it.



  Popular posts by mastah
A question regarding initial sea...
A master list of all the free ch...
Do Hashtable Sizes Affect How We...
  | | | post reply
re:adjusting the window based on ttable - 2007/01/23 19:13 These are reversed. Greater than or equal to beta is an upper bound.
Less than or equal to alpha is a lower bound.

You need to compare against your current alpha and beta values, too. If the value stored in the TT is a lower bound, you need to check that value against your current alpha. If it's <=, then return alpha (if it's >, you can't do anything with it). Similarly, if the value stored in the TT is an upper bound, and is >= your current beta, then return beta (if it's <, then try the suggested move early). If the TT value is exact, return that TT value.

These two are bad. If the TT value is from a shallower depth than you're currently searching, that means the TT value is less accurate than you need at this level. So changing alpha or beta based on that value is just going to make your deeper search less accurate (it'll overlook moves that it should not).

Number 1 is the best you can do. It won't improve search times significantly unless you have a really good evaluation function..
---------
The future is something which everyone reaches at the rate of sixty minutes an hour, whatever he does, whoever he is.



  Popular posts by drjable
Question about Endgame Database Gen...
Research Questions
Alekhine and the nazis
  | | | post reply
re:adjusting the window based on ttable - 2007/01/23 19:28 As I understand the negative impact is ineffective work of TT.
In case I don't have UPPER bit, I have to drop the value of deep search that returned beta to not confuse the algorithm in the next search, because having higher beta in the next search the alpha-beta algorithm could take cutted beta UPPER evaluation as exact value and underestimate this position.
But in case the algorithm will face with UPPER value, what should it do with it? In case new beta is lower than
UPPER value from TT, it reuses TT value just cutting search.
Because the actual evaluation was even higher than TT UPPER value.
While it has no sense to store value as LOWER. It is better to store it as is that will serve better in case newAlpha < oldAlpha in the next (more deep) search. The algorithm can use it without overestimation (making it equal to oldAlpha)..
---------
Liberty exists in proportion to wholesome restraint.



  Popular posts by Elder Turtle
New Chess Ladder Freeware almost re...
A Crime by a Board of Old Impost...
Position with the greatest numbe...
  | | | post reply

Related Products:

© 2008 ChessCircle
Joomla! is Free Software released under the GNU/GPL License.