Author: Jeremiah Penery
Date: 10:18:30 12/01/99
Go up one level in this thread
On December 01, 1999 at 09:44:25, Inmann Werner wrote: >On December 01, 1999 at 09:13:15, Jeremiah Penery wrote: > >>On December 01, 1999 at 09:02:29, Jeremiah Penery wrote: >> >>>On December 01, 1999 at 07:50:34, Inmann Werner wrote: >> >>>>and the hash entry is only used for stopping the search, >>>>if the found value is lower than alpha. >>> >>>But at a fail-high, EVERY MOVE for the next ply failed low - they will ALL be >>>less than alpha. >> >>I thought more about this. :) >> >>When this happens some random place in the tree, it probably isn't too bad. You >>may not have to ever re-search these positions, because they're pointless >>branches. > >That was my thought!!!! > >>The place where it really hurts is when you get a fail-high at the >>root, because that means you have to research everything from depth=2 and >>beyond, since all the ply 2 moves failed low. This will definitely affect the >>PV, and the speed. > >But that always must be done!?!? Research the whole crap again with an open >window(-matescore,+matescore). But here, my hashentry will not be used, cause >the value is not lower alpha. >Where is the problem here? I don't think you have to research with the full (-matescore,+matescore) window. Since you know all moves are <alpha, use (-matescore,alpha) window. I don't know if this will really do anything different, but it could have some affect... But if you fail high at the root, this effectively means that you don't know what PLY=2 move will be played - they all failed low, and so you must research SOMETHING, because it is the PV. You can't just have random moves in the PV. :)If you just return 'fail-low' or whatever for the PLY=2 moves, how do you know anything about them? >>Previously, did you store a hash entry for each position for ply 2 moves, since >>they all failed low, or did you just put a random move in and mark it fail-low? >>I'm a bit confused - You didn't use the fail-low for move-ordering in the hash >>table, but isn't the first thing you do for move ordering to probe the hash >>table? You will find that this node is a fail-low node, and then you will >>search the other nodes first, or...? I'm thinking that it was somehow affecting >>move ordering, even if it was unintended. > >I am also confused :-( But it turns to get interesting :-) > >From a give position, i search all moves. When this is done, I put the best move >of all in the hashtable. At fail low, this is a little bit random. Putting a random move in the hash table is probably bad. > Also i give a >flag that says "fail low" to the hashtable. > >At move Generation, I make a look in the hashtable, if there is a move present >for the position and give the move "rank 1" (try first). If there is a move with >"fail low flag", I say, no move is in the hashtable, so make normal sorting, as >if no hash present. >So, IMHO, move ordering is not directly affected. > >At hash-probing, when i find a "fail low", i look, if the evaluation of the >position stored is lower alpha. If yes, I return the value to alpha-beta and >there the search does not go deeper. (It is again a fail low) This is likely the problem. If the fail-low comes at PLY=2 of your PV, how will you resolve it unless you re-search it, and continue to search it deeper? >Maybe here is the problem: >I once searched the position with a fixed alpha-beta window and got a fail low >and stored the value. >Now i come back to this position with an other alpha-beta window. The stored >value is lower than alpha, so I use it. (the problem!) >Can this be incorrect? Can with this new alpha-beta window come out a value in >the search, which is not a fail low, cause some beta-cutoffs are handled another >way deeper in the search? Hmm...This is interesting. If you're seeing the same position in the search, it's likely that the window will be pretty similar. I.e., you won't have a window of (+100,+200) the first time, and then (-200,-100) the next time. Also, if your window is lower the first time and you get a fail-low, it won't hurt anything if the next time the window is higher, because it will still be a fail-low. If the second window is lower, though, it could be a problem. The first one will fail low with a score of, say, <100. If you come back with a window of (-200,-100), the move that failed low on (100,200) may NOT be a fail-low node this time.
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.