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.