Author: Mridul Muralidharan
Date: 13:43:02 03/18/04
Go up one level in this thread
On March 18, 2004 at 16:11:46, Tord Romstad wrote: >Hi, Vasik and Mridul! > >On March 18, 2004 at 15:31:29, Mridul Muralidharan wrote: > >>On March 18, 2004 at 04:43:20, Vasik Rajlich wrote: >>> >>>Yeah, true, this is a big area. Actually secretly I hope to get rid of q-search >>>completely and replace it with a static exchange evaluator. I don't trust a >>>cheap q-search, and don't want an expensive one. > >I use a hybrid approach. Among many other things, my evaluation function >tries to measure the tactical complexity of the position, by considering >the number and values of hanging, pinned or overloaded pieces, and looking >for possible forks. If the position is sufficiently simple, I replace >the q-search with a SEE. If it is more complicated, I do a search. >Depending on the position, I search only captures and promotions, or >also promising checks, forks, and moves which bring attacked pieces to safe >squares. > >There are still lots of things to improve in my qsearch, but with enough >work I am convinced that it is possible to write a qsearch which is >more reliable than a simplistic capture search, while at the same time >searching fewer nodes. Hi Tord , Yes , and with care, you can prevent any sort of QSearch explosion. It may not be trivial to do so , but since I managed to achieve this with suficient sucess , I am sure anyone else can also do the same. (And I do know of others who have this sort of thing). Something that I was unsucessful in my expiriments related to QSearch was modifications of Beal's algorithmn for QSearch. Unfortunately I never got this to work well. From CCC archives , a very good description is available , which if sucessfully implemented , may help in majorly minimising the possible node count explosion in QSearch (other than by very complicated and possibly buggy (as in logically - since we maynot consider all possible combination of patterns) by any other approach.) > >>>Perhaps you means "singular extensions" (yes I know it was 2:00 am :-)). >> >> >> >>Actually I meant selective extensions. > >(Description of idea snipped). > >If I understand your idea correctly, I do something similar, but less >extreme. I extend all checks, but some checks are extended more than >others. > >Tord I did not understand the last part - This could mean , you use either : 1) Allow multiple ply extension per position. OR 2) Use fractional extensions. Which is the case ? I had a very interesting position , which Vincent helped me debug. The search always used to hit MAX_SEARCH_PLY (which was 256 btw) for a position. When we investigated more , we found that : The only move available was a checking move - and this was getting extended. (I used to extend checking moves - not check evasions : I have corrected this bug hence) Also , the null move search was returning a mate threat - due to which another ply was getting extended. In effect , I was extending 2 ply for this position. The response is a king move , but the threat continues and the queen kept running all around the board checking the opponent king (it was a perpetual check case - but the number of combination of moves was too high for repetition to kick in). This was when I had just started - about 6 months or so later. This was one of the first lessons I learned about how extensions can totally screw up your search. Ofcourse , by any standards , this was an amazingly crazy position - but still it was quiet instructive to study it ! I do not use fractional extensions - this has the ability of making your search path dependent. And especially for singular extensions , this can be kill your tree (atleast for me). Best Regards Mridul
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.