Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Score of moves becomes identically as depth increases ?

Author: Ulrich Tuerke

Date: 12:05:56 09/09/03

Go up one level in this thread


On September 09, 2003 at 12:44:13, Jose Santos wrote:

>Hi,
>
>I'm a new member of this forum. I start doing my chess program a month ago using
>mini-max with alpha-beta cuts.
>I'm programming it in Delphi with classes (lots of them), so it's not very fast.
>
>Since I'm not using other prunes I can't go further than ply 6.
>What I don't understand is why the score become so identically as I increase
>depth:
>First move, AI plays black, 6 ply depth, here is the score:
>
>G1-F3 -1308 G1-H3 -1308 B1-A3 -1308 B1-C3 -1257 H2-H3 -1229 H2-H4  -727
>G2-G3  -317 G2-G4  -317 F2-F3  -317 F2-F4  -317 E2-E3  -317 E2-E4  -157
>D2-D3  -157 D2-D4  -155 C2-C3  -155 C2-C4  -155 B2-B3  -155 B2-B4  -155
>A2-A3  -155 A2-A4  -155
>
>At ply 4 the scores are:
>
>G1-F3  -220 G1-H3  -220 B1-A3  -220 B1-C3  -184 H2-H3  -184 H2-H4  -184
>G2-G3  -184 G2-G4  -184 F2-F3  -184 F2-F4  -184 E2-E3  -184 E2-E4     0
>D2-D3     0 D2-D4     0 C2-C3     0 C2-C4     0 B2-B3     0 B2-B4     0
>A2-A3     0 A2-A4     0
>
>At ply 2 the scores are:
>
>G1-F3  -189 G1-H3  -242 B1-A3  -243 B1-C3  -190 H2-H3  -627 H2-H4  -499
>G2-G3  -223 G2-G4  -240 F2-F3  -197 F2-F4  -236 E2-E3  -120 E2-E4     0
>D2-D3   -67 D2-D4   -36 C2-C3  -111 C2-C4   -22 B2-B3  -101 B2-B4   -50
>A2-A3  -627 A2-A4  -499
>
>At ply 2 things are diversified. I would expect such a pattern for higher plys.
>My evaluation function simple and somewhat naive, it's:
>
>  function TAI.Evaluate: Integer;
>  //returns the value of the board in white's perspective
>  begin
>    PossibleMoves[White]:=Board.GetPossibleMoves(White);
>    PossibleMoves[Black]:=Board.GetPossibleMoves(Black);
>    Result:=(MaterialValue(White)-MaterialValue(Black))
>            +
>            (PossibleMoves[White].CountMoves-PossibleMoves[Black].CountMoves)
>            +
>            (PawnStructure(White)-PawnStructure(Black))
>            +
>            (ThreatsValue(White)-ThreatsValue(Black))
>            +
>            (DefenseValue(White)-DefenseValue(Black))
>            +
>            (Development(White)-Development(Black))
>            +
>            (ControlOfCenterRatio(White)-ControlOfCenterRatio(Black));
>    if Board.MovesPlayed.CountMoves<=20 then//if we are on first 10 moves
>      Result:=Result+
>              (Development(White)-Development(Black));
>    PossibleMoves[White].Free;
>    PossibleMoves[Black].Free;
>  end;
>
>I would appreciate comments and hints from this community on how to improve my
>program. For now I just want to understand this weird behavior.

I don't think that this is weird behavior. The AB-search returns an exact value
for the best root move only; the scores for the remaining moves aren't exact
values but upper bounds. I have often observed that the scores returned by my
search at high iterations are like (1.57, 1.56, 1.56, 1.56, 1,56, ...).

I don't think that this indicates a problem.

Uli

>
>Regards,
>
>                                                  Jose Santos



This page took 0.01 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.