Oops, I am completely lost! For positions with at least one king in each side it seems now you only use the best move information in the hash table, ignoring any (evaluation, depth) couple information. Do you really think it could be efficient?Rein Halbersma wrote:OK, so I slightly modify my proposal. If you have marked position B as a potential repetition, you should again check the hash table moves whenever you encounter it again. This is precisely the simulation procedure in the Kishimoto-Muller solution in their GHI-paper. My proposal was to avoid the "double masking" where you never detect a repetition. In their paper they don't discuss this because I don't think they use iterative deepening. Curiously, Campbell makes the remark that iterative deepening softens the GHI problem. He may be right in the sense that you get less errors because of draw propagation, but you can also miss draws as your example nicely shows!TAILLE wrote:Hi Rein,Rein Halbersma wrote: Hi Gerard,
Here's another guess at your algorithm. Whenever there is at least 1 king for each side, you do the following. If you detect a hash hit where the stored remaining depth is at least 2 higher than the remaining depth in the search, you will follow the best moves stored in the hash table and check if one of these new positions has already occured in the current variation. If it does, you treat this position as a repetition. In this way, you can avoid the double symmetric masking of repetition paths that mask each other during iterative deepening. You only have to do this "hash table repetition checking" once, because the next iteratation already knows about the repetition. Only hash table overwrites can occiasionally destroy this information.
How close am I to your algorithm?
Rein
I do not quite understand your proposal.
Let’s take my example
Black to move
Analyse at depth 4 plies :
I) After 1...11-02 2.32-19 (position A) 02-07 3.19-23 (position B) you conclude that you reach a position with a big advantage to white (3 men ahead). I imagine here you store in your hash table that position B leads a big advantage at depth 0, and position A leads to the same big advantage but at depth 2
II) Now you run the second sequence beginning by 1...11-07 2.32-23 (position B) 07-02 3.23-19 (position A) . According to your proposal you look for position A in the hash table and you find a big advantage to white at depth 2, and you look for the best moves recorded in the hash table. You find the moves 02-07 19-23 and you discover that this sequence leads to the position B which was already seen in the sequence. Then, if I understand correctly, you conclude that position B is a draw by repetition.
This seems not a correct conclusion because now you cannot explore any more a sequence like 1…11-07 2.32-23 (position B) 07-02 3.23-46 which leads to a small advantage (1 man ahead) but avoid the repetition. I perfectly know that this sequence leads also to a draw but supposing you do not have the 5 pieces endgame database then your algorithm is not allowed to demonstrate this draw!
I guess I miss something in your proposal.
So in your variation 1... 11-07 2.32-23 (B) 07-02 you first try the hash table moves, and find a repetition. If the alternative 23-46 gives a better score, you take that of course. Why would white want a repetition draw if he can achieve a heuristic advantage? BTW, I think I need to think a bit more carefully about the existence of ways to break out of the loop. In your example, black can force the repetition, but if you would place 3 more black pieces on the board, black would not want to force it. This "outside option effect" is not discussed in the GHI-papers.
Rein
Clearly I will wait for a deeper analysis before answering your question. Interesting (theoretical?) problem, isn’t it?