Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Which Algorithm is considered the best ?

Author: Andrew Williams

Date: 07:31:58 08/06/00

Go up one level in this thread


On August 06, 2000 at 09:38:18, Vincent Diepeveen wrote:

>On August 05, 2000 at 11:37:01, Larry Griffiths wrote:
>
>>Which Algorithm is considered the best now-adays.
>
>Depends upon what kind of program you make.
>
>If you have an evaluation function that has patterns which all deliver
>very small penalties and bonusses, from which the summation also adds up
>to a near to material only evaluation, then MTD is an interesting
>alternative.

PostModernist uses MTD. It would be incorrect to describe its evaluation
as being "near to material-only". This opinion (on MTD) is one that Vincent
has expounded before, without much in the way of supporting evidence.

>
>If the evaluation function is either big, using a pawn as being
>worth 1000 points instead of 1 point, the eval is huge, or having high scores
>for for example king safety and or passers,
>then you have only 1 option that outperforms
>*anything*, and that's nullwindow search also called principal variation
>search which is pretty easy to implement.
>
>Usually at the start of your program MTD looks interesting, if your
>program gets better (more knowledge in eval, less bugs in search and
>better move ordering), then PVS usually outperforms anything.
>

I don't think there is any evidence anywhere that supports Vincent's opinion
about MTD. Just stating an opinion does not make it true :-)

>My advice is to start with PVS and not look to the rest.
>
>>NegaScout? MTD? PVS? Others?  I am looking to implement one of the best search
>>type algorithms in my program.  I would like to get it into the 2000 rated range
>>as this has been my lifetime goal.  Then, maybe install winboard or something so
>>it can compete against other programs to get a rating.
>>I dont like MTD as it seems to be complex.
>>
>>Larry.

My advice would be to get a straight alpha-beta search working, starting
with bounds of -inf..+inf. This won't be terribly competitive, but you
can use it as a stable reference when you move on to more sophisticated
approaches. When you're happy with your alpha-beta search, try implementing
an aspiration-search, which is like alpha-beta except that you start with
bounds of score-50 .. score+50, where score is the value returned from the
previous iteration. You will need to provide some way of handling the case
where the returned score from *this* search falls outside this "window".
Once you've got your aspiration search working properly, you'll be in a
strong position to decide where you want to go with your program.

Above all, have fun with your program!

Andrew Williams



This page took 0.02 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.