Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Algorithms vs. knowledge - What to do next?

Author: Vincent Diepeveen

Date: 04:13:29 06/04/02

Go up one level in this thread


On June 04, 2002 at 02:26:57, Dann Corbit wrote:

>On June 04, 2002 at 02:11:40, Russell Reagan wrote:
>
>>I've always heard, better algorithms will beat the fastest code using a less
>>efficient algorithm any day (IE MinMax vs. Alpha-Beta). My question is, when do
>>you stop working on algorithmic type stuff and start working solely on adding
>>knowledge to your program, and focus solely on the evaluation function?
>
>Never.
>
>>Or is
>>there a even point at which you stop working on things like search and only
>>focus on evaluation?
>
>Never.

Then you'll never get better with an engine.

>>To me, it seems like there is only so much you can do in terms of improving the
>>searching methods, improving the efficiency of various other functions that are
>>used often (is square attacked, make move, generate legal moves, etc.).
>
>There is no known hard limit to the search efficiency, other than the search
>must visit at least the number of nodes contained in the optimal path.
>
>>Do you
>>ever reach a point where the only thing left to significantly improve is the
>>evaluation function?
>
>Not a chance.

You didn't quite follow last so many tournaments?

Fritz endgame has been improving. Shredders evaluation is bigtime improved.
DIEP's improved. Tiger1 to Tiger2 i only saw a few bugs removed and further
work on evaluation (whether that's in this case preprocessing or in the
leafeval is not that interesting as well as that there has been done a lot
of work here), and the list goes on and on.

>>
>>If someone could advise a good plan for what to work on, kind of a step by step
>>thing, I would love to see what others think of this process. Maybe a sort of
>>"basics" check list, like Alpha-beta, transposition table, null move, etc. I'm
>>nearing the point at which my engine will be working, and I'm reaching the "what
>>next?" stage. An example of what I'm thinking is "I've implemented alpha-beta.
>>What am I supposed to do to improve the alpha-beta algorithm?" Perhaps I'm
>>misunderstanding what people mean when they talk about "improving algorithms"
>>instead of "optimizing".
>
>1.  Get something working.
>2.  Add Alpha-Beta (if your first stab was pure mini-max)
>3.  Add hashing
>4.  Add null-move
>4.  Add PVS or go to MTD(f)
>
>>I'm kind of looking for some general advice as to what to do after the engine is
>>successfully up and running, playing without any major known bugs. Do I take a
>>step back and work on improving those often used functions, or do I move ahead
>>and begin implementing new things like null move?
>
>You can do things in parallel.  When you are bored with search, work on eval.
>When you are bored with eval, work on search.  A lot of time will be spent
>removing bugs.



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.