Q search explosion

Discussion of chess software programming and technical issues.

Moderator: Ras

User avatar
Evert
Posts: 2929
Joined: Sat Jan 22, 2011 12:42 am
Location: NL

Re: Q search explosion

Post by Evert »

I tried making some other move as a first move and letting SjaakII think. Again, it does not choke on the QS search, but instead searches normally (and finds mate quickly but not instantly).
What probably helps greatly here is that it can actually return mate scores from quiescence search, if it finds a mate that it can trust (ie, all moves leading up to it since the start of quiescence search were checking moves).
D Sceviour
Posts: 570
Joined: Mon Jul 20, 2015 5:06 pm

Re: Q search explosion

Post by D Sceviour »

hgm wrote:If you extend checks it is questionable whether it is a good idea to search them first anyway. It would be much preferable to get a cutoff by a cheaper move.
It is better to locate the checks at the root as soon as possible, than to discover them by chance with QS checking explosions. If a mate is missed because of a "cheaper" move, then it likely the mate will be found later on a deeper transposition. QS then must thrash to find the true mate since the mate distance bound is less than the best mate distance. Mate distance here means MATE_SCORE-ply.

From the problem position, what move in the root move list could be better first than a check with capture?
elcabesa
Posts: 858
Joined: Sun May 23, 2010 1:32 pm

Re: Q search explosion

Post by elcabesa »

This position simply crash Vajolet. Thank for posting it. Now I fixed the problem
D Sceviour
Posts: 570
Joined: Mon Jul 20, 2015 5:06 pm

Re: Q search explosion

Post by D Sceviour »

D Sceviour wrote:From the problem position, what move in the root move list could be better first than a check with capture?
A capture and check and king contact (per Stockfish suggestion for king safety) is better. It results in minimal nodes for all flip/flop positions. However, queen contact threat has yet to be tested for elo strength. This is just a suggestion.

Code: Select all

Schooner v1.6.7a_64 (1 CPU)
White(1): 1QqQqQq1/r6Q/Q6q/q6Q/B2q4/q6Q/k6K/1qQ1QqRb w - -
White(1): go

Search Iteration =  1
PV [1] 32766  f8-a3#

Nodes =             365
Total Nodes =       521
smcracraft
Posts: 737
Joined: Wed Mar 08, 2006 8:08 pm
Location: Orange County California
Full name: Stuart Cracraft

Re: Q search explosion

Post by smcracraft »

My program didn't choke too much. Still not happy with the outcome tho. The search is capped at 60 ply.

Code: Select all

! fen 1QqQqQq1/r6Q/Q6q/q6Q/B2q4/q6Q/k6K/1qQ1QqRb w - - bm
! bd
-- WQ BQ WQ BQ WQ BQ **
BR -- ** -- ** -- ** WQ
WQ ** -- ** -- ** -- BQ
BQ -- ** -- ** -- ** WQ
WB ** -- BQ -- ** -- **
BQ -- ** -- ** -- ** WQ
BK ** -- ** -- ** -- WK
** BQ WQ -- WQ BQ WR BB

white to move, castle = ----, nominal depth = 99, hashkey=a3e34e51db580f20, phashkey=d091bb5c22a\
e9ef6
! depth 99
i scanned maxdepth = 99
! go
maxdepth = 99 maxtime = 500

1. 99998  13.05  6554731 502451 Qc1b1
Ha=64.27%/100.00% NPS=502450 Sc=99998 Ti=13.0455 No=6554731 ply/qply=28/29 pv=Qc1b1
Ext: Check=0 NullThreat=0 Promote=0 Pawn7th=0 Recapture=0 Single=0

1. Qc1b1
My move is: Qc1b1
-- WQ BQ WQ BQ WQ BQ **
BR -- ** -- ** -- ** WQ
WQ ** -- ** -- ** -- BQ
BQ -- ** -- ** -- ** WQ
WB ** -- BQ -- ** -- **
BQ -- ** -- ** -- ** WQ
BK ** -- ** -- ** -- WK
** WQ ** -- WQ BQ WR BB

black to move, castle = ----, nominal depth = 99, hashkey=5a35465498a06ac6, phashkey=0
! 
AlvaroBegue
Posts: 932
Joined: Tue Mar 09, 2010 3:46 pm
Location: New York
Full name: Álvaro Begué (RuyDos)

Re: Q search explosion

Post by AlvaroBegue »

JVMerlino wrote:2) Once the qsearch has gone 4 plies deep (again, an arbitrary number) I only allow the qsearch to do recaptures on the previous capture's square. This code was eventually commented out.
I just tried something like this but after 6 plies of QS. I played 10000 games against the previous version and I got 2785 wins, 2667 losses and 4548 draws (+4 Elo, LOS=0.945). So I am accepting this change, and now my engine doesn't choke on this position (it used to take something like 5 seconds).
AlvaroBegue
Posts: 932
Joined: Tue Mar 09, 2010 3:46 pm
Location: New York
Full name: Álvaro Begué (RuyDos)

Re: Q search explosion

Post by AlvaroBegue »

AlvaroBegue wrote:
JVMerlino wrote:2) Once the qsearch has gone 4 plies deep (again, an arbitrary number) I only allow the qsearch to do recaptures on the previous capture's square. This code was eventually commented out.
I just tried something like this but after 6 plies of QS. I played 10000 games against the previous version and I got 2785 wins, 2667 losses and 4548 draws (+4 Elo, LOS=0.945). So I am accepting this change, and now my engine doesn't choke on this position (it used to take something like 5 seconds).
Oh, never mind. The results are reversed, so I won't accept the change.
Patrice Duhamel
Posts: 203
Joined: Sat May 25, 2013 11:17 am
Location: France
Full name: Patrice Duhamel

Re: Q search explosion

Post by Patrice Duhamel »

Cheese take more than one hour to finish a single call to quiescence search on this position. :)

I will try to fix this, but you never reach this position in a real chess game.