Computer Chess Club Archives


Search

Terms

Messages

Subject: Score of moves becomes identically as depth increases ?

Author: Jose Santos

Date: 09:44:13 09/09/03


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.

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.