Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Junior's long lines: more data about this....

Author: Christophe Theron

Date: 17:19:28 12/31/97

Go up one level in this thread



On December 26, 1997 at 22:01:30, Thorsten Czub wrote:

>I think when I do mail-chess with my friends my chess-tree is also
>odd/even pruned.
>I select a few good moves in my own plies and let the computers refute
>my few "good" moves with their ideas. Due to the fact that I use 15
>programs I get almost any THREAD of my opponents by the programs in the
>2,4,6,8 plies and my few good moves can only survive if my plan or idea
>is ok.

Yes, this idea is very interesting.

But you have to add another concept, I would call it the "satisfaction
factor": when you are in an odd-depth iteration, first determine which
score would "satisfy" you. I think you can simply use the static
evaluation score. Then try only the few moves you have selected. When
you are done, check the score of the best move. If it is under
"satisfaction", try the others moves too, until you get a score equal or
above "satisfaction".

Doing this you are able to play without losing, and incidentally you can
win! From a mathematical point of view, you don't try to maximize your
score, but simply to hold it. If your positional evaluation is not too
bad, it can cause severe problems to your opponents!

Exceptions come from horizon effects. To deal with these effects, I
provided in my last posting the "SelectiveSearch" algorithm. Its goal is
to extend the search until really quiet position are encountered. I
should maybe call it "HorizonSearch".

I'm surprised that nobody tells a word about my algorithm (not mine, in
fact, because I don't use it). Do real programmers read this? :)



>Step by step a GENIUS tree develops !!
>But with one main difference, chris mentioned it:
>genius uses static exchange evaluator-. This makes mistakes when
>exchanges happen. Genius5 is still full of these misevaluations in
>exchanges.

You are mixing 2 things here. And in fact Genius uses both (I guess):

* a static piece-square table is... a table, computed only at the root
position to keep its cost low, saying how much is valued a given piece
on a given square. It is usually good for some parts of the evaluation
(for example: rooks on the 7th rank, knights in the center), and poor
for other things: for example you cannot use it to evaluate your pawn
structure, because the value of a pawn depends on its relationships with
other pawns, not only of the square it is on. It cannot detects pins,
neither. Another thing is that the values of the tables generally become
irrelevant when the stage of the game changes. In the endgame, the king
has generally to go in the center. But if you are still in middle game
and evaluate a very long exchange sequence, you end up with an endgame
position where you think the king is very well placed in the corner.

* a static exchange evaluator (SEE) is a procedure used to evaluate
quickly if a piece on a given square is lost or not. You just build a
list of all protecting and attacking pieces for this square, and try to
see what happens. Usually it works fine, but you can come into trouble
if a single piece is protecting more than one another piece. For example
a knight protecting 2 pawns, one on the right, the other on the left.
You ask: "is the left side pawn lost?". Answer: no. "Is the right side
pawn lost?". Answer: no. And you think you have no threat. But maybe,
after the exchange of the left pawn, the knight is gone, and the right
pawn is lost!



Anyway, thanks for your opinion on the way Genius develops its tree. I
think you have a part of the truth, because it really behaves as you
describe. Very conservative, opportunist sometimes.

Maybe one day you should try to write your own chess program. :)


    Christophe



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.