Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: MTD(f) and others(incremental eval...)

Author: Andrew Williams

Date: 05:31:54 03/14/00

Go up one level in this thread


On March 14, 2000 at 07:36:13, Jan Pernicka wrote:

>On March 13, 2000 at 09:27:45, Andrew Williams wrote:
>
>>On March 13, 2000 at 08:20:11, Jan Pernicka wrote:
>>
>>>Hi,
>>> I would like to know if you have (as a programmers)
>>>some experience with search strategy MTD(f) (I will be able to write a brief
>>>descrition of this strategy soon - if my bus is not coming - as now!!!!!)
>>>
>>
>>Hi Jan,
>>
>>My program, PostModernist, uses MTD(f). There are at least two others
>>I know of that use (or used to use) MTD(f): AnMon and Cilian.
>>
>>There's a little bit of information about my program at:
>>
>>http://www.doc.mmu.ac.uk/STAFF/A.Williams/postmodernist/postmodernist.html
>>
>>On that page there's a link to a page by Aske Plaat who explains MTD(f)
>>in detail and gives some pseudocode.
>>
>    Hi and thanks, but:
>   what is your experience with MTD(f) - is it much better(20%...)- in speed -
>than "standard" techniques (as aspiration window,negascout...) and
>   how large hash tables should be used (especially interesting is
>   the ratio: #entries in hash table / #nodes (not only leaves) visited ).
>

I started with a very simple aspiration search and converted almost
immediately to MTD(f). At the time when I converted, the MTD version
was faster, but I can't remember how much faster - perhaps about 15%.
I can't say how it would compare to PVS, however, as I've never tried
that approach. To answer the hash-table question, I'd recommend you look
at Aske Plaat's PhD thesis (it's in English). I downloaded it from the
site where the simple description of mtd(f) is last week. I've not had
a chance to really look at it, but he does say something about the
effects of the size of hash table on mtd(f) compared to PVS and other
approaches.

>      Note: Isn't there a problem when your evaluation / selective
>    techniques depend on alfa-beta params? As in this case alfa-beta are
>    not "estimates" but only artificial parametres to speed up a search...
>    Well, this problem could also be noticed (or not?) in the techniques I
>    mentioned before (i.e. negascout....).
>

Yes. As you say the alpha/beta bound in mtd implementations is just an
arbitrary number and not very safe to use in this way. What I do is to make
decisions based on what I call the *external* bounds, ie the bounds that the
mtdf() procedure has established. These are (or should be) true bounds on the
score and are safer, though more conservative, of course.

>
>
>
>  So - to say it more precisely (I have more time today :-) ):
>  There are 2 possible ways how to evaluate your possition (and, of course,
>   their combinations):
>     1) Given the possition, calculate completely its score "from the scratch"
>          (I called it static eval...), i.e: scan through all the board and
>         asses the pieces you are going over....  OR:
>     2) Evaluate the starting position and after every move update the
>        score of it so you get score of the new position. This update
>        typically  takes less time because it involve only small part
>        of the board (the piece it has moved + its neigbourhood...).
>        I wrote about this as incremental evaluation (dynamic eval. could be
>        also used... ).
>
>    Jan.

I do a mixture of these two. Material is incrementally updated and I keep
up-to-date attack-tables which are used in things like King Safety and weak
pawn evaluation. But most of my evaluation is done at the leaves.

Regards

Andrew



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.