Author: Larry Griffiths
Date: 11:22:05 08/31/00
Go up one level in this thread
On August 31, 2000 at 10:11:56, Dieter Buerssner wrote:
>On August 30, 2000 at 12:47:18, Larry Griffiths wrote:
>
>>On August 30, 2000 at 09:51:25, Dieter Buerssner wrote:
>>
>>>On August 30, 2000 at 09:32:28, Larry Griffiths wrote:
>>>
>>>>On August 30, 2000 at 08:59:51, Michel Langeveld wrote:
>>>>
>>>>>On August 30, 2000 at 08:35:26, Larry Griffiths wrote:
>>>>>
>>>>>>I am testing the following WAC position...
>>>>>>
>>>>>>[D]8/7p/5k2/5p2/p1p2P2/Pr1pPK2/1P1R3P/8 b - - bm Rxb2; id "WAC002";
>>>>>>What is the principle contiunation after Rxb2. I figure that it promotes a pawn
>>>>>>somehow.
>>>>>8/7p/5k2/5p2/p1p2P2/Pr1pPK2/1P1R3P/8 b - - acd 14; acn 114206936; ce 322; pv Rxb
>>>>>2 Rxb2 c3 Rb6+ Ke7 Rb7+ Kd6 Rb6+ Kc5 Rb7 c2 Rxh7 d2 Rc7+ Kd6 Rxc2 d1=Q+ Re2 Qf1+
>>>>> Rf2 Qd3 h4 Qxa3; pm Rxb2; bm Rxb2; id "WAC.002";
>>>>
>>>>It looks like I must run this to 17 or 18 plys deep then. I thought the
>>>>promotion might occur before 17 or 18 plys.
>>>
>>>If you have search extensions, you may need quite a few plies less. Before the
>>>promotion, there are 3 checks, 1 recapture and one pawn push to the 7th row.
>>>This may save 5 plies. Also, if you promote in qsearch, this can save another
>>>ply. I.e. Yace finds this allways at depth 10, and depending on settings, can
>>>find it also at depth 9.
>
>>Bummer, no qsearch or extensions in my program yet.
>
>Perhaps, you should consider implementing qsearch. I think, this should make the
>search much more stable. A first try might be very
>fast to implement. Just substitute all calls to eval with calls to qsearch.
>
>An easy qsearch (without any "tricks" and without updating of the PV and
>other structures needed) might look like
>
>int qsearch(int side, int alpha, int beta, int ply)
>{
> int best, score;
> best = eval(side);
> if (best > alpha)
> {
> alpha = best;
> if (best >= beta)
> return best; /* No need to search any further */
> }
> GenerateAllCaptureAndPromotionMoves(ply); /* May want to not generate
> underpromotions in qsearch */
> /* Perhaps sort the moves */
> for (all capture/promotion moves)
> {
> makemove();
> /* If you generate pseudo legal moves, you will need to check, if
> the move is legal here */
> score = -qsearch(side^1, -beta, -alpha, ply+1);
> unmakemove();
> if (score > best)
> {
> best = score;
> if (best > alpha)
> {
> alpha = best;
> if (best >= beta)
> return best;
> }
> }
> }
> return best;
>}
>
>
>>It chooses Rxb2 at 15 plys, but chooses C3 again at 16 plys. I have not seen if
>>it locks in to Rxb2 at higher plys as my last run wanted to spend eternity at
>>ply 16...
>
>If you are curious, just do Rxb2 Rxb2 (the forced reply) on the board, and
>search from this position. If you don't have any extensions, this will
>need exactly two plies less. You then can compare the score, with the score
>after the initial position.
>
>Regards,
>Dieter
Thanks Dieter,
Maybe I can put it in this weekend.
Larry.
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.