Simple question about SEE

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

Ferdy
Posts: 4833
Joined: Sun Aug 10, 2008 3:15 pm
Location: Philippines

Re: Simple question about SEE

Post by Ferdy »

bob wrote:
paulo wrote:Thanks Ferdinand and Bob.

My question was more in the sense how is SEE used in current top engines but since we have available the source of Stockfish, Ivanhoe, Gull, etc., I guess I can take a look ;)

Paulo
I use it to defer "losing captures" until late in the search, and exclude them from the q-search completely. I also use SEE to avoid extending unsafe checks since they are generally pointless. Often one avoids LMR on captures, but if SEE says a capture is bad, why not reduce it to dismiss it with less effort? Etc...
Bob how far have you applied accuracy to your SEE? I tried improving my SEE on pins, pins on king at the moment.
I still have to try your idea of not extending moves with minus SEE. But I have bad captures reduced though.
Ferdy
Posts: 4833
Joined: Sun Aug 10, 2008 3:15 pm
Location: Philippines

Re: Simple question about SEE

Post by Ferdy »

paulo wrote:Thanks Ferdinand and Bob.

My question was more in the sense how is SEE used in current top engines but since we have available the source of Stockfish, Ivanhoe, Gull, etc., I guess I can take a look ;)

Paulo
Do whatever you want, come back if you found something new :) . I find it difficult reading Ivanhoe codes, Stockfish is getting complicated to my eyes also :D.
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Simple question about SEE

Post by bob »

Ferdy wrote:
bob wrote:
paulo wrote:Thanks Ferdinand and Bob.

My question was more in the sense how is SEE used in current top engines but since we have available the source of Stockfish, Ivanhoe, Gull, etc., I guess I can take a look ;)

Paulo
I use it to defer "losing captures" until late in the search, and exclude them from the q-search completely. I also use SEE to avoid extending unsafe checks since they are generally pointless. Often one avoids LMR on captures, but if SEE says a capture is bad, why not reduce it to dismiss it with less effort? Etc...
Bob how far have you applied accuracy to your SEE? I tried improving my SEE on pins, pins on king at the moment.
I still have to try your idea of not extending moves with minus SEE. But I have bad captures reduced though.
No pins or anything. I won't allow illegal king captures, however, as in positions where you have wk at d4, bk at f6, wb at c3 and bb at g7, and the target is e5. Kxe5, Kxe5 is not allowed...
Ferdy
Posts: 4833
Joined: Sun Aug 10, 2008 3:15 pm
Location: Philippines

Re: Simple question about SEE

Post by Ferdy »

bob wrote:
Ferdy wrote:
bob wrote:
paulo wrote:Thanks Ferdinand and Bob.

My question was more in the sense how is SEE used in current top engines but since we have available the source of Stockfish, Ivanhoe, Gull, etc., I guess I can take a look ;)

Paulo
I use it to defer "losing captures" until late in the search, and exclude them from the q-search completely. I also use SEE to avoid extending unsafe checks since they are generally pointless. Often one avoids LMR on captures, but if SEE says a capture is bad, why not reduce it to dismiss it with less effort? Etc...
Bob how far have you applied accuracy to your SEE? I tried improving my SEE on pins, pins on king at the moment.
I still have to try your idea of not extending moves with minus SEE. But I have bad captures reduced though.
No pins or anything. I won't allow illegal king captures, however, as in positions where you have wk at d4, bk at f6, wb at c3 and bb at g7, and the target is e5. Kxe5, Kxe5 is not allowed...
You may give it a try or try again if you have done it before to add a little accuracy to your SEE. First detect all pinned pawns, I think this is vital since in my case I use pawn to capture first before the most valuable pieces. This is also important especially that you use SEE often. Note this is only for pawn pinned to the king.

I got a promising result with this and I am now working for pinned knights.
You can do this fast I think since you use bitboard. I don't use bitboard and is surpised with the good result even if I spent time to calculate the pinned pieces.
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Simple question about SEE

Post by bob »

Ferdy wrote:
bob wrote:
Ferdy wrote:
bob wrote:
paulo wrote:Thanks Ferdinand and Bob.

My question was more in the sense how is SEE used in current top engines but since we have available the source of Stockfish, Ivanhoe, Gull, etc., I guess I can take a look ;)

Paulo
I use it to defer "losing captures" until late in the search, and exclude them from the q-search completely. I also use SEE to avoid extending unsafe checks since they are generally pointless. Often one avoids LMR on captures, but if SEE says a capture is bad, why not reduce it to dismiss it with less effort? Etc...
Bob how far have you applied accuracy to your SEE? I tried improving my SEE on pins, pins on king at the moment.
I still have to try your idea of not extending moves with minus SEE. But I have bad captures reduced though.
No pins or anything. I won't allow illegal king captures, however, as in positions where you have wk at d4, bk at f6, wb at c3 and bb at g7, and the target is e5. Kxe5, Kxe5 is not allowed...
You may give it a try or try again if you have done it before to add a little accuracy to your SEE. First detect all pinned pawns, I think this is vital since in my case I use pawn to capture first before the most valuable pieces. This is also important especially that you use SEE often. Note this is only for pawn pinned to the king.

I got a promising result with this and I am now working for pinned knights.
You can do this fast I think since you use bitboard. I don't use bitboard and is surpised with the good result even if I spent time to calculate the pinned pieces.
I have done this several times. The cost of detecting pins is high. The gains are low. The primary place where I see a real advantage to SEE is eliminating bad captures in the q-search. The q-search already makes so many errors by only considering captures or else standing pat, that trying to refine SEE to produce more accuracy just burns time with no significant benefit that I have ever found.