Feb 21, 2007

[Other] Playing around with the evaluation

I have implemented king safety, pawn evaluation, some trapped piece detection and a bunch more piece positioning evaluations. They work without bugs, but are in need of some serious tweaking.

In its current state the new evaluation takes the average calculated nodes per second from about 150.000 to 75.000. This is a bit too much, but I think I can cut it down some with better written code. Also the piece tables I have been talking about should increase the overall speed some.

Here are a couple games where the new evaluation works well.

Keep in mind that the new version searches about half as many nodes, so logically any tactical combinations should be due to the evaluation (and not out-calculating). Of course it could be luck as well.

I especially like the last game where the new version evaluated the position after 12. Bxh7 to +3.0, seeing the bishop getting trapped but figuring it would be ahead after the exchanges. This might not be sound at all, but it does indeed have a strong attack.

Unfortunately not all games work out this well, when v0.22b 'accidently' manages to castle and avoid attacks it can usually work out the position to its advantage.

This is probably both due to the slightly deeper depth it searches to, but mainly I think some parts of the evaluation actually hurts v0.23b. It seems to play a bit weird in endings and can get very careless in some positions.

So as I said there is still a lot of tweaking and optimizations to be done, but once we get there this should really improve Mediocre.

I have used ideas from TSCP (pawn eval) and Toga (king safety and trapped pieces) and once I feel the evaluation works as it should I will write a guide or two.

1 comment:

Anonymous said...

Nice to hear about evolution of Mediocre. Keep going and don't rush, give us a good new version of Mediocre. By the way you are in the interesting part of the development now, the evaluation function :) .