Author: Tom Likens
Date: 13:02:53 02/06/03
Go up one level in this thread
On February 06, 2003 at 15:37:59, Uri Blass wrote: >On February 06, 2003 at 14:35:18, Tom Likens wrote: > >>On February 06, 2003 at 13:35:39, Matthias Gemuh wrote: >> >>> >>> >>>What makes a program tactically strong ? >>> >>>- right extensions ? >>>- search depth ? >>>- strange eval and eval weights ? >>>- sound pruning ? >>>- nps speed ? >>>- or simply luck and chance ? >>> >>>/Matthias. >> >>Hello Matthias, >> >>I found an interesting, and not very obvious (at least to me), >>result as I have continued to work on my chess program. >>It has become tactically stronger as I've added more purely >>positional knowledge. >> >>I believe that the better evaluation function is shaping the >>tree (mainly, via the beta cutoff at the beginning of the >>quiescence search) so that the program is wasting less time >>going down unproductive branches. Because of this it is >>searching deeper and is more tactically aware. >> >>You'll find that as you add code to recognize various patterns >>that can occur (such as rook pawn and wrong color bishop >>endings) that the program will become better both positionally >>and tactically. >> >>regards, >>--tom > >It is dependent on the program and the knowledge that you add. > >If you add knowledge and your program search x/10 nodes per second instead of x >nodes per second then the fact that you need less nodes to get solutions to >tactical problems does not mean that you are stronger in tactics. > >I also know examples when adding knowedge did the program weaker in tactics for >other reasons. > >Rebel with knowledge=500 without lazy evaluation is weaker in tactics than Rebel >with lazy valuation and Rebel with knowledge=500 not only search slower but also >needs more nodes to get the same depth. > >In the case of Movei I found that the biggest improvement in tactics was not a >result of adding knowledge in the evaluation but of improving the search rules. > >Uri Yes, your mileage-may(will)-vary. One of the real advantages of lazy eval, if done well, is that you can add rather sophisticated evaluation terms and not pay the full speed penalty that you otherwise would. Of course, lazy eval done poorly will break your program into about fifty pieces :( If you graph strength vs. knowledge you will get a curve that will initially rise, but will eventually start to fall just for the reason you mention. As the speed cost of computing the newly added knowledge outweighs the benefit, the program will actually start to play worse. One point worth mentioning, it takes a heckuva lot of knowledge to replace a lost ply of search depth. Of course, as you stated, this is only one factor in the quest for a strong program tactically. Selecting the right mix of extensions, reductions, and forward pruning heuristics is another large piece of the puzzle. As is achieving a low effective branching factor etc. regards, --tom
This page took 0 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.