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.