Obteining conclusion of lossed games

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

Antonio Torrecillas
Posts: 90
Joined: Sun Nov 02, 2008 4:43 pm
Location: Barcelona

Re: Obteining conclusion of lossed games

Post by Antonio Torrecillas »

How do you conclude when you engine is weak in the search versus the eval function?
The right answer must be debugging. The question become, how to get positions badly evaluated/searched that are easy to debug ?
Let me recall the know post about evaluation from Tord.
http://www.talkchess.com/forum/viewtopi ... 33&t=15504
Now if you think “continuity” and “Good worst case“ replacing evaluation by search, all apply?.
That the base for a method I use:
Traverse a bunch of position and do a depth 2 search on each.
You can instrument your iterative deepening function and calculate:

Code: Select all

double dif = abs(Value_at_depth_1 - Value_at_depth_2);
and separate the big diferences, (exclude mates values), I hope that, in this position there is a big Tactic, a bug....

Code: Select all

if(SaveBadEval && Depth == 2 && dif > MargenError
	&& BestMove.desglose.jaque == 0
	&& BestMove.desglose.captura == ninguna
	&& BestMove.desglose.coronar == ninguna
	)
{
	FILE *fe = fopen("badeval.epd","a+");
	if(fe)
	{
		fprintf(fe,"%s bm %s;\n",Board.SaveFEN(),BestMove);
		fclose(fe);
	}
	FILE *fl = fopen("badeval.log","a+");
	if(fl)
	{
		fprintf(fl,"%s bm %s;\n",Board.SaveFEN(),BestMove);
		fprintf(fl,"PV %s Eval %d dif %4.0lf;\n",SavePV,value,dif);
		Board.Draw(fl);
		fclose(fl);
	}
}
Look at the saved position, if something is obviously wrong, start to debug.

Buena Suerte.