Quiescence Search for SEE > 0, not SEE = 0

Discussion of chess software programming and technical issues.

Moderator: Ras

bhlangonijr
Posts: 482
Joined: Thu Oct 16, 2008 4:23 am
Location: Milky Way

Re: Quiescence Search for SEE > 0, not SEE = 0

Post by bhlangonijr »

Ferdy wrote: Sorry I don't get your point exactly.
Here is a case where accuracy is important in see(). There are certain positions that see() will report >= 0 where in fact it is < 0 why because I did not consider pins, and there are certain positions that see() will report < 0 where in fact it is >= 0 why because I did not consider pins also. Search efficiency is affected, lost opportunities to draw or to win, mis-informed move ordering scores. Every heuristics that uses see() become garbage.
Just now I understood what you are doing. :)
The point I was trying to make is that for the first move (the one you pass for the see() function as parameter) you don't need to check for pins because if the move is illegal it is going to be discarded immediately after you test the legality of the move. But I presume you are doing that in every iteration of your see().
It seems to be a good idea. I gonna try that.

Thanks!
Ferdy
Posts: 4853
Joined: Sun Aug 10, 2008 3:15 pm
Location: Philippines

Re: Quiescence Search for SEE > 0, not SEE = 0

Post by Ferdy »

jacobbl wrote:I don't discard illegal moves from my SEE(). I will try to change my SEE(), and maybe it will help, because I also prune bad captures (making correct SEE important).

I still wonder if anybody has an opinion if the time saved on not doing Quiescence Search for SEE = 0 offsets the lost accuracy.

Regards Jacob
Here is a sample position, if your program plays white it will not play exd5 because see() is zero, granting further it is blind to pin, e4xd5 e6xd5 see() == 0.
[d]rnbqkbnr/1pp2pp1/p3p2p/3p4/3PP3/2N5/PPP1QPPP/R1B1KBNR w KQkq - 0 5
you save time by not examining equal capture (e4xd5) but you probably lost the oppurtunity to win or draw perhaps on other positions. You can practice along this line, and you can still improve your program by tuning your search and evaluation and other areas and add new search techniques and add new eval features just to adapt to the scheme of not searching equal capture in qsearch. It's about your approach, there are approach that is easy to improve further and there are approach that is difficult to improve further.