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.