Recently I've found elo by probing the Transposition Table (TT) during the Quiescence Search (QS) in order to generate cutoffs. However, I am not currently making any use of the ttmove which can be found. Currently my QS only generates tactical moves -- no quiets what-so-ever, not even checks or evasions.
I have tried to use tactical moves from the TT in the QS, but that does not win any elo. Neither does using the tactical moves and still applying the same criteria as the other tactical moves for being considered to play (IE, using the table only changes the order in which moves are tried, not the conditions which must be met to play them).
The final step of course is to allow the QS to use ANY type of move found in the TT. Some initial testing suggests this is worth maybe two elo in Ethereal. But allowing these quiet moves in the QS could pose a potential problem. I imagine a scenario in which each quiet move leads to another TT position holding a quiet move, causing a very long chain of TT moves to be played (if unlucky enough to produce zero cutoffs by the TT or any other means).
I suppose the natural response is to do something like only take quiet moves from the TT if above a certain depth, say -3 or -5. However, this sort of arbitrary cutoff is strange, and I would not like to put such a construct in Ethereal if not needed. I will be running some tests to see how deep QS lines go on occasion, but I am interested in hearing from others on this topic.
Cheers, Andrew Grant
Playing transposition table moves in the Quiescence search
Moderators: hgm, Rebel, chrisw
-
- Posts: 1759
- Joined: Tue Apr 19, 2016 6:08 am
- Location: U.S.A
- Full name: Andrew Grant
Playing transposition table moves in the Quiescence search
#WeAreAllDraude #JusticeForDraude #RememberDraude #LeptirBigUltra
"Those who can't do, clone instead" - Eduard ( A real life friend, not this forum's Eduard )
"Those who can't do, clone instead" - Eduard ( A real life friend, not this forum's Eduard )
-
- Posts: 1759
- Joined: Tue Apr 19, 2016 6:08 am
- Location: U.S.A
- Full name: Andrew Grant
Re: Playing transposition table moves in the Quiescence search
I did an experiment where I summed up the number of times that depth -<N> was reached during the QS.
First result uses ./Ethereal bench 20 32 4096 (Depth 20, 32 threads, 4GB hash). Column one is with TT moves in QS, column two is without.
First result uses ./Ethereal bench 20 1 256 (Depth 20, 1thread, 256MB hash). Column one is with TT moves in QS, column two is without.
Node that in both cases the version with TT moves in the QS spent LESS nodes in the QS than the version without TT in the QS, but also went deeper, although slightly.
First result uses ./Ethereal bench 20 32 4096 (Depth 20, 32 threads, 4GB hash). Column one is with TT moves in QS, column two is without.
Code: Select all
|-------------|-------------|-------------|
| DEPTH | COUNT | COUNT |
|-------------+-------------+-------------|
| 0 | 544135503 | 663472806 |
| 1 | 229592424 | 261667947 |
| 2 | 86076295 | 95900333 |
| 3 | 29882982 | 31365997 |
| 4 | 11214866 | 11517317 |
| 5 | 3967730 | 3817134 |
| 6 | 1437253 | 1301603 |
| 7 | 498706 | 417163 |
| 8 | 175997 | 134702 |
| 9 | 58318 | 40410 |
| 10 | 19086 | 12428 |
| 11 | 6110 | 3398 |
| 12 | 1558 | 909 |
| 13 | 419 | 201 |
| 14 | 110 | 62 |
| 15 | 46 | 6 |
| 16 | 24 | 0 |
| 17 | 3 | 0 |
|-------------+-------------+-------------|
| TOTAL NODES | 5669389655 | 7120181502 |
|-------------|-------------|-------------|
Code: Select all
|-------------|-------------|-------------|
| DEPTH | COUNT | COUNT |
|-------------+-------------+-------------|
| 0 | 55001802 | 61607734 |
| 1 | 15881156 | 17257581 |
| 2 | 4477841 | 4579736 |
| 3 | 1465073 | 1446399 |
| 4 | 515909 | 500711 |
| 5 | 172925 | 169845 |
| 6 | 59497 | 58004 |
| 7 | 19050 | 18602 |
| 8 | 5706 | 6776 |
| 9 | 1737 | 2020 |
| 10 | 480 | 674 |
| 11 | 130 | 222 |
| 12 | 21 | 69 |
| 13 | 6 | 9 |
| 14 | 2 | 0 |
|-------------+-------------+-------------|
| TOTAL NODES | 226268454 | 246467602|
|-------------|-------------|-------------|
#WeAreAllDraude #JusticeForDraude #RememberDraude #LeptirBigUltra
"Those who can't do, clone instead" - Eduard ( A real life friend, not this forum's Eduard )
"Those who can't do, clone instead" - Eduard ( A real life friend, not this forum's Eduard )
-
- Posts: 276
- Joined: Sat Mar 04, 2017 12:24 pm
- Location: Hungary
Re: Playing transposition table moves in the Quiescence search
I came to the conclusion that only at the horizon is worth checking the transplant table. if (depth == 0)
Beyond that, it's very rare to help. It's just a waste of time..
The Mvv-Lva sorting is good enough in qsearch and hash move is futile (IMO)
-Tamás
Beyond that, it's very rare to help. It's just a waste of time..
The Mvv-Lva sorting is good enough in qsearch and hash move is futile (IMO)
-Tamás
-
- Posts: 1871
- Joined: Sat Nov 25, 2017 2:28 pm
- Location: France
Re: Playing transposition table moves in the Quiescence search
But you still prune bad SEE move in qsearch right ?
-
- Posts: 276
- Joined: Sat Mar 04, 2017 12:24 pm
- Location: Hungary
Re: Playing transposition table moves in the Quiescence search
Yes, but only if i'm not in check! When i'm in check, then i call evasion moves and i don't pruning.
Earlier i used "See" for the evasion moves sorting, but it's was futile also.
-
- Posts: 1871
- Joined: Sat Nov 25, 2017 2:28 pm
- Location: France
Re: Playing transposition table moves in the Quiescence search
Andrew, how about a small dedicated TT for qsearch ?
-
- Posts: 327
- Joined: Sat Mar 27, 2010 7:15 pm
Re: Playing transposition table moves in the Quiescence search
Interesting, I recently put tt probing back into my engine, and it was a win. But I haven't kept good records (recently addressed that). So I will try
1. No tt probing in q search
2. Probe at depth==0 only in q search
..and compare with the current approach - probe throughout q search
Cheers,
Tom
1. No tt probing in q search
2. Probe at depth==0 only in q search
..and compare with the current approach - probe throughout q search
Cheers,
Tom
-
- Posts: 893
- Joined: Mon Jan 15, 2007 11:23 am
- Location: Warsza
Re: Playing transposition table moves in the Quiescence search
Tested that, probably with some depth limit, but failed narrowly (which does not mean anything for Your engine, the rating gap implies I must have failed on several techniques that work for You). IIRC Andscacs might be using it. The real fun comes when you print all the positions when quiescence search says that non-capturing move is the best. It is usually something that changes static score drastically: castling, passed pawn push etc.
Pawel Koziol
http://www.pkoziol.cal24.pl/rodent/rodent.htm
http://www.pkoziol.cal24.pl/rodent/rodent.htm
-
- Posts: 570
- Joined: Mon Jul 20, 2015 5:06 pm
Re: Playing transposition table moves in the Quiescence search
The tt move, if any, should be tried first. As long as it does not lose elo, this seems to be theoretically correct. I never found a non-capture move in the tt table on the horizon. This is because a non-capture tt best move would have a greater depth stored and the hash probe should prune.AndrewGrant wrote: ↑Thu Jan 17, 2019 1:52 am However, I am not currently making any use of the ttmove which can be found.
I have seen this idea used in RobboLito for PV quiescent nodes. It looks like a type of ProbCut where full width responses are made on captures. However, if ProbCut was used on the previous ply then it seems to be a waste in quiescence.The final step of course is to allow the QS to use ANY type of move found in the TT.
With multiple threads and staggered aspiration depths, it is unclear what might might take place on the horizon. Maybe a quiet move is best ignored.
Would not quiet moves explode and make the position noisy? Daniel Jose Queralto (Andscacs) suggested a complete QS cutoff at depth of -6. Current tests on my engine demonstrate an elo loss with any QS depth cutoff. The exchange combinations are necessary. There are SEE methods that try to reduce the exchange calculations, but are they really any faster or more effective than a standard quiescent exchange search?I suppose the natural response is to do something like only take quiet moves from the TT if above a certain depth, say -3 or -5.
-
- Posts: 327
- Joined: Sat Mar 27, 2010 7:15 pm
Re: Playing transposition table moves in the Quiescence search
ok.. running a little "probe TT in qsearch vs don't probe TT in qsearch" test. Will feedback. Probably won't have patience to test enough games, but anyway.