Author: James Swafford
Date: 05:25:29 09/13/02
Go up one level in this thread
On September 13, 2002 at 01:22:57, Robert Hyatt wrote: >On September 12, 2002 at 22:56:12, James Swafford wrote: > >> >>I'm (still) working with my hash tables, and having quite a time >>with this one. I'm hoping someone can explain this behavior: >> >>1. In iteration 1, the search returns a score of 15 for move A. >>2. Naturally, the iteration 2 search begins with move A. The search >> window is set to +/- 1 pawn ==> -85, 115. (Yes, that's wide, >> but that's not the point. :) >>3. Move A again gets a score of 15 from the depth 2 search. >> The search continues, though, and root move B fails high. >> Move B is a move that leads to mate in 3 (half moves), so >> an extension was triggered (I don't think this is important). >>4. The iteration 2 search is restarted with a wider window of >> +/- infinity. >>5. Move A immediately gets researched and, after one node, >> gets a score of 15 (no problem so far). > > >why do this? Why not just start searching on the move that failed high? >you already know the score for the previous best move. And you have >already dismissed all the moves between that move and the fail high move >as inferior, so why go again??? It will waste a _bunch_ of time. > Ok. I knew it was redundant, but thought the search would quickly "get up to speed". I changed this. > > > >>6. Iteration 2 finished, and move A is the pv move. Move B, >> the move that caused the fail high earlier, has a _very_ >> negative score of -675. And it's supposed to be mate in 3. >>7. Steps 2-5 are repeated for iteration 3. >>8. Move B gets a score of CHECKMATE-3 (mate in 3), and replaces >> move A in the pv. >> >>This is a hashing issue. If I clear the hash table after failing >>high at the root, move B is found at iteration 2 with the proper >>score of mate in 3. >> >>I'm stumped. Can anybody offer an explanation? Search output >>below if it'll help. :) >> > > >Do you adjust the hash score for mates? Yes. Since making the above correction (now I just start the search with the move that failed high), the problem persists. Notice in iteration 2 I fail high on h6h7 (you can see from the final pv that h6h7 is the mating move). After restarting the search at iteration 2 with a wide open window, that move only gets -675!? So the search continues and a crappy move ends up in the pv after iteration 2. Well, I can see that's a bug - in this case I should just keep h6f4 (score 15), but I'm still not sure how h6h7 could fail high and then return such a bad score. Problem 1: r1bq2rk/pp3pbp/2p1p1pQ/7P/3P4/2PB1N2/PP3PPR/2KR4 w - - h6h7; parsing: h6h7...done. correct move(s): h6h7 FW Dpth Nd Cnt CSecs Score PV Line 1& -> 15 0 -570 h6g7 g8g7 1& -> 216 6 10 h6g5 g6h5 1& -> 589 6 15 h6f4 d8e8 1 -> 2299 6 15 h6f4 d8e8 2& -> 3373 11 15 h6f4 d8f6 f4f6 2& -> 6558 17 +++ h6h7 2& -> 6598 17 -675 h6h7 h8h7 h5g6 2& -> 9784 17 -85 c1c2 g7h6 h5g6 2 -> 24998 33 -85 c1c2 g7h6 h5g6 3& -> 27752 38 +++ h6f4 3& -> 31447 44 15 h6f4 g8f8 h5h6 g7d4 c3d4 3& -> 169700 209 59997 h6h7 h8h7 h5g6 3 -> 278045 319 59997 h6h7 h8h7 h5g6 -- James
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.