Author: Dann Corbit
Date: 21:22:32 03/06/06
Go up one level in this thread
On March 07, 2006 at 00:05:59, Stuart Cracraft wrote: >On March 06, 2006 at 23:59:59, Dann Corbit wrote: > >>On March 06, 2006 at 23:55:17, Dann Corbit wrote: >> >>>On March 06, 2006 at 23:39:36, Stuart Cracraft wrote: >>> >>>>On March 06, 2006 at 22:47:18, Dann Corbit wrote: >>>> >>>>>On March 06, 2006 at 22:13:56, Stuart Cracraft wrote: >>>>>[snip] >>>>>>Discouraging Dan. Discouraging. >>>>> >>>>>Suppose that you are 3 lines away from approximately the same result. >>>>> >>>>>BTW, I have had a crafty version score 300/300 with the same time controls. >>>>> >>>>>The only difficult problem in this set is WAC.230. >>>>> >>>>>I think that WAC is a great set to start working with on a chess engine. >>>>>After a few months you are going to graduate to something tougher. >>>>> >>>>>I guess that there is some simple bug that is costing you 80% or more of the >>>>>misses. >>>>> >>>>>It sounds like an advanced engine from the things I have read so far. >>>>> >>>>>I think I saw a list of the missed problems by your program. I guess that I may >>>>>see a theme problem when I go over them. >>>> >>>>Thanks - I look forward to those comments at your availability. >>>> >>>>I reran the whole 300 suite at 10 seconds each this evening, >>>>due to Bob's comment, and pulled the failed 29 (Bob failed 9 >>>>I believe.) >>>> >>>>Then I reran against just my 29 and found that only 24 failed the >>>>second time, at the same time control. >>>> >>>>This tells me that there is something about the test that is not >>>>reproducible, based on either the ordering of the tests in the suite >>>>or aspects being carried from test position to test position (hash >>>>tables, history heuristic, etc.) I am not sure what it is. >>>> >>>>To test this theory, I took the 29 that failed of which only 24 failed >>>>the second time and reversed them so that the last came first and retested. >>>>This time 4 of the 29 were solved instead of 5. This difference of one is >>>>too small to claim an ordering result for just 29 position sample size. >>>> >>>>Still this indicates that instead of failing 29 I am failing 24-25 >>>>and I am not sure what would cause it. Before every iterative deepening >>>>ply 1 search, I clear out the history heuristic table, the hash tables, >>>>and the principal variation arrays. >>>> >>>>Still that is only 4-5 more leaving 24-25 left, arguably 15-16 if one >>>>wants to aspire as high as Crafty. >>>> >>>>I am at a total roadblock on the subject. As I mentioned, I will be >>>>putting money where my mouth is and making a signficant donation to >>>>the board sponsors for guidance to a solution of gaining say another >>>>10 right above my current 271 at 10 seconds. (Hopefully that's legal >>>>here.) >>> >>>This sounds like a bug. >>>If you analyze a new position, you should definitely clear the hash table >>>between analysis runs. >> >>Note: >>A good way to know you should clear the hash is if the node you are given to >>analyze is not a pv node in the hash table. >> >>If the node is a PV node in the hash table, then don't bother to clear it. >> > >This last note went right over my head. > >I have a routine, called iterate(), which does an iterative deepning >PVS search using a for loop. Prior to the for loop it clears the hash >table, the history heuristic table and the pv tables to prevent >interference between moves on test suites. I should probably make it >not clear the hash table, or maybe even the history heuristic table >or pv if a regular game is being played, but no testing has been done >for that comparison so I just clear everything. > >Maybe you are talking about something else than the above. > >When/where would I clear the hash? > >I take the pv of the last iteration and stuff it into the hash table to >ensure it is there so that the pv can make the PVS search function properly. >When entering a search, I am currently generating all moves, putting the >hash and any pv move at the top, sorting based on see, mvv/lva, and basic >pc/sq, and then searching the top in the list (all attempts to avoid >the genmoves and search the hash move only have not been successful and >all results have always been better for me doing a full move gen.) When you are analyzing a list of positions, clear the hash if someone shoves a position in your face and you don't see it in your hash table as a PV node. Why this is important is if your engine is being played as a UCI engine (e.g. WB2UCI adapter for Winboard engines). You don't just get a sequence of moves like Winboard, but you get the whole game pushed at you one move at a time. One adapter, which shall remain nameless even sent newgame every time. So if you have a nice hash table full of goodies and someone tells you to clear it, tell them to go and jump in the lake if the position they send to you is a pv node.
This page took 0.01 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.