Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Building the Principal Variation in MTD(f) searches

Author: KarinsDad

Date: 15:28:32 07/19/99

Go up one level in this thread


On July 19, 1999 at 17:42:39, Vincent Diepeveen wrote:

[snip]
>
>Feel free to post ideas. No one is gonna steal it in order to write
>as first an article about it in iccaj

No problem. I have posted some ideas in the past, but I am not going to go out
on a limb with posting all of my ideas on a new system and then find out that
it's bad. I have a fragile ego and don't think I could handle the laughter.

>
>But first tell some things about the adjustment made,
>how many NOLOTS does it solve for you, when compared to the old
>search?

What old search? I would have to totally rewrite my code to use a different
search mechanism.

I will tell you some of the things I am doing:

1) Multiple search engines, multiple PVs and sub-PVs.
2) Preprocessing the root position (i.e. think like a human, come up with plans,
determine candidate moves and then search them first and farthest). This goes
quite a bit beyond move ordering. The opening plans are included in the opening
book so that they do not have to be re-created.
3) The main search being an Alpha/Beta-like search (at least in that I use a set
of bounds on minmax), although I search bottom up instead of top down.
4) A few techniques to determine totally useless portions of the graph. I have
not yet implemented null move, but plan to do so.
5) A few techniques to call the evaluation function as infrequently as possible.
6) A quick mechanism to handle pins and castling in the move generator so that
unmake is not necessary.
7) A detailed evaluation function that has both material and positional elements
in it.
8) An understanding of trapped pieces and how they affect the score.
9) In line with that, an understanding of zuzgwang and opposition.
10) An understanding of different phases of the game for the plans (broken down
into a few more things than just opening, middlegame, and endgame).
11) An ability to differentiate between moves with similar scores, but with
different ideas behind them. The best score does not always win.
12) A learning mechanism for plans, not just for variations.
13) Eventually (not yet in the design), a mechanism for pattern recognition.

The main idea is to take the program into the realm of human playing style,
still keep a fairly sharp tactical ability (for at least 10 ply or so), and to
avoid strategic mistakes as opposed to avoiding tactical mistakes. I want the
program to understand the game and avoid long term weaknesses, not to
accidentally find good and bad moves due to the search engine stumbling upon
them. This will happen as well, but I want my opponent to fall into the bad
positions later into the game due to good strategic moves that my program plays
earlier.

KarinsDad :)



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.