Author: Sune Fischer
Date: 16:57:00 04/20/04
Go up one level in this thread
>>In principle it can work, but you must be very accurate in guessing when not to >>nullmove because a full search is very expensive. > >I do some static threat detection in my eval. Perhaps this is why this >works better for me than for you and Tony. Yes that could be it, but of course simple tactics can also cause the eval to estimate completely wrong. >Another interesting idea by Sergei Markoff, which didn't work for me the last >time I tried, but which is used successfully in SmarThink, is to do a shallow >null move search around alpha before deciding to do the full null move search. >In pseudo code, it looks like this: Interesting, I'll try this out. :) >By the way, if you are satisfied with detecting a few of the most common >mating patterns, and you are willing to accept rare cases of false matches >(i.e. the static mate detector reports a mate when no mate is there), static >mate detection is neither very difficult nor expensive. It is not worth >the cost if you use it only to decide when to avoid null move searches, >but it is useful when deciding whether or not to search checks in the qsearch. I have a simple detector like that, but it is nowhere near perfect. It might be good enough for this job though, I'll try and fiddle with this some more, it's on the todo-list, ...somewhere. >I used to do static mate detection in the past, but had to sacrifice it when >I simplified my attack tables. As always it's a trade off, your new tables are probably faster? :) >>Btw, extending on threats completely blows up the tree for me, it seems there >>are certain position in the tree where you just have to live with a constant >>mate threat. Practicly all nodes gets extended here and a blowup is unavoidable. > >This is strange. I have very rarely seen something like this. Do you have >any examples of positions where this occurs? How much did you extend for >mate threats? It happens pretty much in all attacking positions, eg. wac141 takes a lot longer to solve with null-threat extension on. I use half a ply for the extension. Threat ext ON: 6 -234 13 65536 1.Kf1 Re2 6 -233 20 126618 1.Qxf4 6 397 28 188155 1.Qxf4 Bxf4 2.Rxh5 gxh5 3.Rxh5 Bh6 4.Rxh6 Qh2+ 7 981 119 1014524 1.Qxf4 Be7 2.Rxh5 Bxf6 8 32756 617 6225970 [Mate in 6] 1.Qxf4 Be7 2.Rxh5 Bxf6 3.Qxf6 Qg3+ 4.Kxg3 gxh5 5.Rxh5 Kf8 6.Rh8++ Threat ext OFF: 6 -234 11 52773 1.Kf1 Re2 6 -233 14 74051 1.Qxf4 6 321 25 164139 1.Qxf4 Re6 2.Qg5 Rxf6 3.Qxf6 c5 7 981 66 540949 1.Qxf4 Be5 2.Rxh5 Bxf6 3.Qxf6 gxh5 4.Rxh5 Qh2+ 5.Kxh2 8 32756 286 2676756 [Mate in 6] 1.Qxf4 Be5 2.Rxh5 Bxf6 3.Qxf6 gxh5 4.Rxh5 Qh2+ 5.Kxh2 Rxd4 6.Qxf7++ I think there are simply too many mates in 1 encountered in the search, most of them easy to refute and not worth an extension. Do you have an example of a position where it does work well? Perhaps wac141 is not a good position, although threats seem to be the major theme. >I currently use the following scheme for deciding how much to extend when >the side to move is threatened by mate in one (PLY=60, value of pawn=128): > >if(static_eval > 0) extension = 45; >else if(static_eval > -100) extension = 30; >else if(static_eval > -200) extension = 20; >else extension = 0; > >>I think it would be better to extend on a newly detected mate threat, ie. the >>ply before we wasn't being mated. > >In fact, I think precisely the opposite. If you have the same mate threat >as two plies earlier, there is a serious risk of a horizon effect problem, >and it is even more important to extend. I add half a ply to the mate threat >extension in this case (a special case of the Botvinnik-Markoff extension). I found a few positions were it did work great, but on average the Botvinnik-Markoff extension doesn't work either for me. Perhaps it is related somehow. I think the problem is a lot of nonsense gets extended. Ie. you are in a position where there is a threat, you have only one single refutation move, so it is practicly forced and this should be the move you extend. What can happen is that you make a different (totally losing) move, but now instead of playing the winning threating move your opponent might also make a different (neutral) move. So we are back, the threat is still there, but the line is nonsense because you and your opponent has played inferior moves already. This gets extended. With really good move ordering this might be less of a problem, but still. It seems better to me to just extend a threat once on its initial arrival. -S. >Tord
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.