Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Transposition table woes

Author: Robert Hyatt

Date: 13:57:43 07/17/03

Go up one level in this thread


On July 17, 2003 at 15:59:57, Rick Bischoff wrote:

>Hello,
>
>I am debugging my search code at the moment, using the following position:
>r1bq4/1p4kp/3p1n2/5pB1/p1pQ4/8/1P4PP/4RRK1 w - - bm Re8; id "WCSAC.0002";
>
>As you can see, the best move is Re8, but my engine says...
>
>Depth: 4 e=-50 g5f6 d8f6 e1e7 g7g6
> trying hash move :   9 BISHOP: g5 X f6(KNIGHT) first
>0/48  150 g5f6 d8f6 d4c4 c8d7 f1f5
>1/48  150 f1f5 c8f5
>2/48  150 d4f6 d8f6 g5f6 g7f6
>3/48  150 d4d6
>4/48  150 d4c4 d8b6 g5e3 b6b2 c4c8
>5/48  150 h2h4 d6d5 g5e3 d8b6 d4b6
>6/48  150 g5c1 g7h8 d4c4 d6d5 c4c8
>7/48  150 g5d2 g7h8 d4c4 d6d5 c4c8
>8/48  150 g5e3 g7h8 d4c4 d6d5 c4c8
>9/48  150 g5f4 b7b5 f4d6 b5b4 f1f5
>10/48  150 g5h4 c4c3 b2c3 g7h8 f1f5
>11/48  150 g5h6
>12/48  150 e1a1 c4c3 b2c3 g7h8 a1a4
>13/48  150 e1b1 c4c3 b2c3 g7h8 b1b7
>14/48  150 e1c1 c4c3 b2c3 g7h8 f1f5
>15/48  150 e1d1 c4c3 b2c3 g7h8 f1f5
>16/48  150 e1e2 c4c3 g5f6 d8f6 e2e7
>17/48  150 e1e3 c4c3 g5f6 d8f6 e3e7
>18/48  150 e1e4 c4c3 g5f6 d8f6 e4e7
>19/48  150 e1e5 g7g6 g5f6 d6e5 f6d8
>20/48  150 e1e6
>21/48  150 e1e7
>22/48  150 e1e8
>23/48  150 f1f2 c4c3 b2c3 g7h8 f2f5
>24/48  150 f1f3 c4c3 b2c3 g7h8 f3f5
>25/48  150 f1f4 c4c3 b2c3 g7h8 f4f5
>26/48  150 d4d1 g7h8 d1d6 d8d6 g5f6
>27/48  150 d4d2 g7h8 d2d6 d8d6 g5f6
>28/48  150 d4f2 c4c3 f2a7 a8a7 g5f6
>29/48  150 d4c3 g7h8 g5f6 d8f6 c3f6
>30/48  150 d4d3
>31/48  150 d4e3 c4c3 e3a7 a8a7 g5f6
>32/48  150 d4e4
>33/48  150 d4f4 g7h8 f4d6 d8d6 g5f6
>34/48  150 d4g4
>35/48  150 d4h4 c4c3 g5f6 d8f6 h4f6
>36/48  150 d4c5
>37/48  150 d4d5
>38/48  150 d4e5
>39/48  150 d4b6
>40/48  150 d4a7
>41/48  150 g1h1 c4c3 b2c3 g7h8 f1f5
>42/48  150 b2b3
>43/48  150 g1f2 g7h8 g5f6 d8f6 d4f6
>44/48  150 g2g3 c4c3 b2c3 g7h8 f1f5
>45/48  150 h2h3 c4c3 b2c3 g7h8 f1f5
>46/48  150 b2b4
>47/48  150 g2g4 c4c3 b2c3 f5f4 g5f4
>Depth: 5 e=150 g5f6 d8f6 d4c4 c8d7 f1f5
>
>Two questions:
>
>A) Why in god's green earth would the hash table be empty for the move e1-e8?
>B) Why do some of these lines have less than 5 moves?
>
>I think I know why, but we'll get to that in a moment.  The lines are collected
>from the hash table using a collectPV that just keeps making the "best move"
>stored in the hash table... How do those moves get there?
>
>Move bestmove(BADMOVE);
>for each move M:
>   make M;
>   int v = -alphabeta(-beta,-alpha);
>   unmake move M;
>
>   if (v >= beta) { store bestmove, beta, etc....; return beta; }
>   if (v > alpha) { bestmove = M; alpha = v; }
>end for
>
>store bestmove, alpha, etc.
>return alpha
>
>Ok, so what I think is happening is that after
>e1e8
>The first move it is trying after e1e8 is >= beta so no move gets stored into
>the hash table.  Should I simply add the change:
>
>if (v >= beta) {
>  bestmove = M;
>  ....
>}

Clearly if score is >= beta, the best move is the current move you are
searching.  Store it.  If the score is < beta but > alpha, then the best
move is the move stored in your PV.  Store that in this case.


>
>Thanks,
>Rick



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.