Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Programming idea-to get computers really its limitations?

Author: KarinsDad

Date: 12:01:28 04/28/00

Go up one level in this thread


On April 27, 2000 at 21:58:09, stuart taylor wrote:

>Is it possible to program a computer to set many possible future scenarios of
>favourable positions possible to arrive at with same material ballance (from
>that current position-some time later, even 40-60 ply's or more), then have the
>program find ways how to get there?
>  If so, then computers will be able to plan like a top-class human!
>I mean with same pieces or after various exchanges-which may be possible to
>provoke purposefully or forecefully, and to weigh up pros and cons of the
>outcomes of counter plans, and their possibilities of excecution, and there not
>being any snags along the way.
> So the program will be thinking in plans and patterns as well as in
>calculations.
>  It would be a bit random-like at first, then the best scenarios would be
>computed. etc.

I am attempting something like this with my program, but not exactly as
specified within this thread. My basic concept is:

1) Pre-process the current position based on certain algorithms (and eventually
a database). Come up with a list of idea squares for certain pieces and non-idea
squares for certain pieces. Effectively, come up with a plan.

2) When generating moves, generate at each node moves that end up with pieces on
their idea squares early on within generation and later in generation for
non-idea squares.

3) Have multiple PVs such that once the program decides to make a move, it can
search down each PV and determine whether the PV "follows the plan" based on how
often pieces end up on the idea squares (or do not end up on their non-idea
squares). If one PV has a slightly lower score, but follows the plan closer,
then make that move instead of the slightly higher PV score move.

To me, this is a bare bones attempt to emulate how people plan. I'm sure it can
be improved upon, but for now, it still heavily uses a search to accomplish it's
goals, it just attempts to lean the search in the direction of the plan.

An example might be where a rook controls an open file. A plan might be to
remove any pieces that protect the seventh rank square on that file and to move
the rook there. So, any equal or lower value piece that removes a protector
would have to eventually end up on the square of the protector (or a square a
protector could get to while still protecting the seventh rank). So, the idea
moves might be piece x and piece y to protector piece location and rook to 7th.

Of course, a human would not even consider thinking about moving the rook there
until he has come up with a way to remove all defenders (or make taking the rook
disadvantageous). Having the program not place the move of rook to the seventh
at the beginning of move generation until deep enough into the search so that
the protectors can be removed is tricky. Hence, the program maintains two lists
of idea squares: idea squares for move generation (step #2), and idea squares
for the post-processor (step #3). The post-processor idea squares have a higher
weighing factor than the move generation ones when doing step #3.

Now, someone might say "Why not just put a rook on seventh evaluation bonus into
the program?". The answer is that positionally good ideas are generally based on
the type of position you have and change very little within 10 ply or so. For
example, a rook on the seventh may be great in the middlegame, but lousy in the
endgame. Do you really want to check for a rook on the seventh in endgame
positions where it doesn't make sense to within the evaluation function? Hence,
the more "strategic or positional ideas" that you can place into a pre-processor
and post-processor and remove from your evaluation, the faster your search will
be.

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.