about qs

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

xmas79
Posts: 286
Joined: Mon Jun 03, 2013 7:05 pm
Location: Italy

Re: about qs

Post by xmas79 »

Hi sven
sorry for using wrong terms:

1) I do b) all the time, evading is "capture checking piece", "interpose a piece", "move king out of check" when the king is checked by one piece, and "move king out of check" when in double check. So when in check in QS I'm searching all the moves.
2) I do c) in the way I described: I "search also quiet moves that give check in addition to captures" even at non ply 1.
3) I don't do a) since I (wrongly) thought that was c).

From what I understand now, extensions are referred to the main search, while QS is totally another beast.

And of course it seems to me that I have to change things...

Chess programming is fun! And it's VERY fun when you discover things the hard way :)))

Thank you,
Natale.
xmas79
Posts: 286
Joined: Mon Jun 03, 2013 7:05 pm
Location: Italy

Re: about qs

Post by xmas79 »

There is a flaw here. Your "check" can't win material, because at the previous ply, your opponent could "stand pat" thanks to being in the q-search. That's why most do checks at the first q-search ply mainly, or possibly plies 1 AND 3, because if you check at ply 1 of the q-search, your opponent can't stand pat assuming you do a normal full-width check evasion search there...
Hi Prof.,
now I cleary see the flaw. Actually when I read your post I said "why in the world I didn't see that before??"... I'd like to explain things in the way you do...


Thank you,
Natale.
xmas79
Posts: 286
Joined: Mon Jun 03, 2013 7:05 pm
Location: Italy

Re: about qs

Post by xmas79 »

Daniel Anulliero wrote:...
is it a pseudo SEE ?
is SEE time consuming ?
Hi Daniel,
from what I understood about SEE, it is a good approximation of the value of a capture, it will tell you if making a capture is going to lose/win material. The problem is that SEE is quite expensive, but the benefits from cutting down the tree is worth the implementation. Please note that with SEE you don't actually make any move on the board. You simply analyze statically if a sequence of captures on the SAME square are going to be a win/loss of material. And note that SEE should at least take the square where captures will be and the piece that starts the capture:

If you can capture a pawn with a queen and with a knight, you would call SEE two times with the same square and different move. If the pawn is defended by rook, SEE will give you a positive value in the case of knight capture (assuming standard piece values should give you +1.00 of the captured pawn, and opponent will not capture with rook as would lose material on its side), and in case of a queen capture should give you +1.00 of the captured pawn - 9.00 of the captured queen + 5.00 of the captured rook = -3.00 for you side, so you discover that "queen captures pawn" is a bad move and would not search it.

Hope it's clear,
Natale.