Author: Anthony Cozzie
Date: 05:17:35 08/30/04
Go up one level in this thread
On August 30, 2004 at 00:41:44, Stuart Cracraft wrote: >On August 29, 2004 at 22:49:58, Tor Lattimore wrote: > >>On August 29, 2004 at 22:31:16, Stuart Cracraft wrote: >> >>>On August 29, 2004 at 22:08:13, Michael Henderson wrote: >>> >>>>On August 29, 2004 at 21:38:12, Tor Lattimore wrote: >>>> >>>>>I recently tried putting Checks in my QSearch, this brought me to the question, >>>>>should I stand-pat if i'm in check, but up lots of material? It does better in >>>>>some positions if I don't allow it to, but it blows up the search as well. Also, >>>>>is it better only to allow checks only at root of qsearch? >>>>>Cheers >>>>>Tor >>>> >>>>examining checking moves in the qsearch will slow you down a lot. I find it's >>>>best to do check/singular response extensions in the main search. The main >>>>search is smarter than the qsearch so you should probably spend your search time >>>>in that. >>> >>>My program runs at about 400k nps on a test suite without checks in >>>quiescence and about 3/4 of a ply deeper in the main search and about >>>8 ply less deeply in the quiescence search. Predictably, it does worse >>>(perhaps 5%) on standard test suites without checks in the quiescence. >>> >>>Personally, I think this is a good feature to leave enabled. The name of >>>the game is, after all, checkmate and I'd hate to be misevaluating >>>when the fireworks start. >>> >>>I call it "peace of mind". >>> >>>Stuart >> >>Do you search all checks in qsearch? or only at ply 0? Do you stand pat if your >>in check? or search all moves to get out of check? >>Cheers >>Tor > >Answers are: > > search all checks in qsearch? => yes > only at ply 0 => no > stand pat? => no > search all moves to get out of check => yes > >The implementation is simply upon entry to qsearch, check if in check. >If so, return the value of a main search done with depth = 1 instead >of doing the quiescence. The main search can extend but I have disabled >the various implemented extensions (pawn to 7th rank, recapture, one >reply only, verified null move (a kind of extension over a reduction), >etc. as none of these produced better results for very short searches >on a slow box.) They probably all help the program to play a better >game at slow time controls but that is not my targeted goal. > >If falling through (no check), quiescence includes any capture (optionally >avoiding see-based losing captures or those that fail the delta pruning >(futility) based on the maximum positional score for the side-to-move.) >Promotions are optional and #ifdef'd as well. > >Standard settings for program are: search all checks in quiescence >with the 1-ply main search. No see. No promotions. No delta pruning. >All of these are implemented and #ifdefed. > >The reason for this is that I am optimizing for very short 1 second >searches on a slow box (1ghz P3) for eventual auto-tuning where >many self-play games will have to be played. Other standard options: >hash with replace if length >= depth, adaptive nullmove with depth > 6 >being criterion for R=2 vs. R=3, examine all checks in quiescence >and all checks in main search,. > >Another example: I don't use verified null move R=3 even though it >is a compile time option and chose instead to use a form of >adaptive null move as this has proven better for short searches. >I also don't use enhanced transposition cutoff, internal iterative >deepening and the like because all of these produced worse tactics >in brief searches. > >In short, about the only things that improved tactics in short searches >were hashing, null move (adaptive better than regular), examine all >checks in quiescence and some in main search (depth <= 3). > >I also investigated MTD(f) and left it commented out as the search is >rather unstable compared to PVS/NEGASCOUT which is more reliable. > >Stuart I have investigated autotuning pretty thoroughly, and I don't think any method that involves playing games will work. The problem is that you have to play _so many_ games that it takes forever. I posted my autotuning algorithm (actually a bit of a tweak on what the deep blue guys did) a while back. You can probably find it in the search engine; it works really well. The only thing it doesn't do well is PSTs, because it tends to overfit (you need a _lot_ of games to get PSTs right). anthony
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.