Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: One of my favorites..!

Author: Dann Corbit

Date: 19:23:44 03/29/02

Go up one level in this thread


On March 29, 2002 at 22:01:40, Will Singleton wrote:

>On March 29, 2002 at 16:39:53, Dann Corbit wrote:
>
>>On March 29, 2002 at 15:54:08, Art Basham wrote:
>>
>>>Here white's best move is Bg7..!
>>>(with the threat of 2. Qxh7+...and mate by the rook at h8...
>>>
>>>
>>>[D]1r2r1k1/3b1p1p/p4PpB/2qPp3/p1P1R2Q/P7/6PP/5R1K w - -
>>>
>>>Believe it or not, some engines miss this completely and rather play
>>>something like Bc1..etc. ???
>>
>>Beowulf took 14.5 seconds on an AMD 950 MHz machine.
>>
>>Position 1 - White to play
>>--------------------------
>>ID =
>>FEN = 1r2r1k1/3b1p1p/p4PpB/2qPp3/p1P1R2Q/P7/6PP/5R1K w - -
>>
>>. r . . r . k .
>>. . . b . p . p
>>p . . . . P p B
>>. . q P p . . .
>>p . P . R . . Q
>>P . . . . . . .
>>. . . . . . P P
>>. . . . . R . K
>>
>>Current Position = 0.58
>>Number of Possible Moves = 36
>>
>>  6     98      88      79497   Bc1 a5 Qf2 Rec8 Qxc5 Rxc5
>>  7    118     184     180300   Bc1 h5 Qf2 Rbc8 Bb2 Bf5 Qxc5 Rxc5
>>  8     94     396     420473   Bc1 h5 Qf2 Qxf2 Rxf2 Bf5 Rh4 e4
>>  9    113    1038    1110972   Bc1 h5 Qg5 Rb3 Qh6 Qf8 Qxf8+ Kxf8 c5 Rd3
>>  9    123!   1448    1555074   Bg7 h5 Qg5 Rb3 Qh6 Qb6 Rfe1 Rb1 Rxb1 Qxb1+
>>  9    588    2554    2711402   Bg7 Bg4 Rxg4 h5 Ra1 Qxa3 Qe1 Qc5 Rxa4 hxg4
>> 10    586    4907    5283324   Bg7 h5 Qg5 Qf2 Ree1 Qc5 Qg4 hxg4 d6
>> 11    603    9748   10947729   Bg7 Bg4 Rxg4 h5 Qg5 Qf2 Qc1 Qe2 Rh4 Rb2 g3 Qd3
>>Rf2
>>
>>Search Time : 999.0 Seconds
>>Total Nodes Searched   : 95521440  (84.8% Qui)
>>Total Nodes Evaluated  : 80995522
>>Cuts       : Delta 19222644  : SEE     9400726  : Mate          0
>>           : Razor  5045011  : Eval    43111935
>>Extensions : Check  3669449  : OneRep   631520  : CMThreat 119043
>>           : Pawn    560266  : Recap    296138  : RevCheck 244444
>>Hash Stores (Size) : 6014980  (2097143)
>>Hash Probes (Hits) : 55812193  (4685047)
>>EGTB Probes (Hits) : 0  (0)
>>Move Ordering      : 55.4%
>>Best Move = Bg7
>>--Answer: Bg7    ** Correct **
>>Time To Solution = 14.48 sec
>>Correct So Far : 1/1
>
>
>Amateur does well here, probably by luck.  Finds Bg7 at ply 4 after 0.12 sec,
>score +2, rising to +6 at ply 9, powerbook 300mhz.
>
>btw, a question re your node numbers.  Beowulf reports 95 million total nodes,
>but shows only 10 million in ply 11?  I assume you just omitted ply 12.

It's the count where it was interrupted (probably near to completing 12 ply).

>And, the quiesce percentage seems high, although I notice some programs report
>high percentages, and some low.  I'm thinking this is due to how nodes are
>counted.  Does Beowulf happen to count qnodes as calls to quiesce, even if the
>quiesce search cuts off prior to making a move?

Qnodes is incremented for every call to quiesce.

 /* --------------====     QUIESCENCE SEARCH     ====------------      */


/* Do the quiescence search.  This is a clever trick used by ALL chess programs
 * avoid the so-called 'Horizon Effect'.  This is where a terrible capture is pu
 * off the end of the search tree and therefore missed.  The quiescence search s
 * continues the search and only evaluates the board when all is quiet and calm.
 * In the Quiescence search, we continue the a-b tree search, but consider only
 * moves.  If we find ourselves in check here then we simply ignore it and just
 * generate captures anyway.  At each point we allow ourselves the choice of mak
 * no move at all (on the expectation that there might be a better move which is
 * NOT a capture, so therefore *forcing* a capture might give spurious results.)
int             Quiesce(Board * B, const int alpha, const int beta, int ply, int
{
    int             NMoves,
                    Moveno,
                    newfifty = fifty,
                    gchk = 0;
    MOVE            movelist[MAX_MOVES],
                    m,
                   *lastmove,
                    hashmove = NO_MOVE,
                    bestmove = NO_MOVE;
    int             score,
                    best,
                    talpha = alpha,
                    tbeta = beta,
                    EntryScore;
    FullMove        Full[100];
    HashElt        *Entry;
    BOOL            IsPV = FALSE,
                    Filtered = FALSE;
    Undo            U;

    /* Increase the Node Count */
    Qnodes++;

    /* Check for draw */
    if (IsDrawn(B, ply, fifty, FALSE))
        return ((Current_Board.side == B->side) ? (DRAW_SCORE) : -(DRAW_SCORE));
...



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.