Author: Christophe Theron
Date: 21:56:59 11/17/99
Go up one level in this thread
On November 17, 1999 at 19:44:10, Bella Freud wrote:
>On November 17, 1999 at 19:01:57, Christophe Theron wrote:
>
>>On November 17, 1999 at 18:00:33, Bella Freud wrote:
>>
>>>On November 17, 1999 at 15:53:40, odell hall wrote:
>>>
>>>>Hi
>>>>
>>>>
>>>> Does anyone know any details about Chess Tiger?
>>>
>>>I have heard that it goes deeper. Deeper wins on the whole as you know.
>>>
>>>It is a fast program, so I would imagine the programmer has found a way to focus
>>>the search better with relation to the others.
>>
>>
>>It is not a fast program. It's more than twice as slow as Fritz.
>>
>
>That is still fast. You do work evaluation work and maybe more move sorting
>work, but it is still fast.
Thanks for admitting that I do some evaluation work.
I have also a rather complete move sorting algorithm. I have worked on this for
quite a while and I don't see the point in having a slow move ordering when I
can make it fast.
It sounds like you have some sympathy with slow programs.
>>>They are fighting for a narrow, specific part of the tree. Null move pruning by
>>>mostly material factors makes that.
>>
>>
>>No Chris, you don't get it.
>
>
>Two points. You don't get it if you make incorrect naming assertions. And I do
>get it. You don't more like it.
I get it rather well I think. I'm into this since long enough. I used to think
the way you seem to think. I have spent years working in the direction you like.
I have also worked in other directions, so now I can compare.
I'm no genius and I had to try different ways to find out what works and what
does not.
I was an idealist, but I had to bury some of my initial convictions.
It is not so bad after all. I had to open my eyes.
> If you prune too much on material criterias you
>>completely destroy the positional skills of the program.
>
>But this is what you don't get. Null move prunes, you know that. A blind piece
>square table program will play terrible. You know that. But imagine the blind
>program's tree. Narrow, with null move prune decisions made entirely on material
>evaluations at effectively low search depth.
I don't argue about the value of such PST program, which will be in some sense
blind, but I insist that null move decisions are not based on material
evaluations.
The point is not in null move or not BTW. Without using null move my program
bases all pruning decisions on the global evaluation of the positions, not the
material value only.
I have already tried to take out the positional part, in the hope that this part
was not important in the pruning decision process, and got terrible results.
> One type of tree. It will win if
>this is the 'important' or main tree.
>
>Now make a program with some postional sense. This will amke another tree,
>partially overlapping with the main material tree, and probably a little
>smaller.
>So now winning depends on who makes the 'truer' tree at that depth, more often,
>and for most moves.
>
>Most chess programs are in the second category. Yours too, I suspect. Just what
>positional sense and how long it takes to evaluate will determine the tree
>structure, degree of overlap etc.
>
>So I have to see programs on SSDF and tuning with autoplayers as forcing all
>programs into this battle. Very hard to make wild parameters. Whenever you make
>that passed pawn on the sixth rank worth 3 pawns, you'll win a spectacular game
>where the 6th rank pawn was vital, but lose 5 games where you blow a knight to
>get it.
>So all tuned parameters tend to the normal, to a very boring normal.
>Because that is what wins percentage points. In chess. In computer chess.
I see. It's rather that you have a problem with strong programs.
> Also
>very likely on ICC, where just brute depth and counting on errors is what guides
>'progress'.
>
>Positional parameters tuned to the norm. Material counting. So null move gets
>evaluations to tell it to prune anything a bit wild. Hence narrow material tree
>via null move pruning. And you said you null move prune. QED.
Can you please point out a post where I said so?
>>If I wanted to go deeper tactically, I could do it easily. I think I could go 2
>>plies deeper. But in this case my program would be completely crushed because of
>>incredible positional holes.
>>
>>Before the game goes on a tactical field, my program would have a totally lost
>>position.
>>
>>Each time I have tried to sacrifice the positional understanding to get deeper,
>>it was a disaster. I have found that it works in the opposite direction: with
>>better positional understanding the program goes deeper. Because it sees the
>>right moves earlier, and spends less time analyzing sonense moves.
>>
>
>Agreed. But my real question is how far can you take this? How far can you use
>your chess knowledge to override what results and SSDF and win/loss driven
>insane users are telling you?
How far?
First I have no problem with SSDF results and win/loss driven users. If you
trust your chess program you don't have to be afraid of the results.
Before trying to answer this question I think the very first thing to have is a
search that is faithful to your evaluation function.
In the past I have tried many times to fix my program by adding some kind of
knowledge aimed at a specific situation, just to discover that enough knowledge
was already there, but the search was losing this information!
This can tell you why I find funny that people think it is easy to improve a
program by using some pruning based only on material.
Take null move for example. Suppose you are at two plies from the horizon and
it's your turn to move. Here you notice that you fail high (your score is above
beta = really good), so you execute a null move (make nothing but change the
side to move), reduce the depth, and as it is already low enough you just do a
capture search for your opponent. If you still fail low (= your opponent cannot
execute a capture that gains material) you stop searching here.
Well, null move in this case loses information (is not faithful to the
evaluation function). Because the fact that your opponent has no capture threat
against you does not mean that he has no good positional move against you. With
null move you decide to prune the variation because you think it is good enough
(>=beta) for you, but in fact you commit a mistake. Maybe your opponent can
stuff a rook in your second rank. This is not a capture move, it's just moving a
piece, but it can cost you the game.
So actually your evaluation knows "rook on second rank", the remaining depth is
enough to let your program see the problem, but you simply overlook it.
How far can you put chess knowledge to increase your results? I don't know.
But I have another question: how easy is it for your search to spoil the best
evaluation function in the world?
I have the answer. It is VERY easy.
Pretending that you can win just by outsearching your computer opponent with a
material only search is completely wrong.
>>You make it sound as if I had found a very specific way to shoot on a very
>>specific weakness of a very specific subset of chess programs.
>>
>>You make it sound as if I was not programming chess.
>>
>
>Computer chess. Different.
Here we are.
Can you please explain to me the differences?
I was innocently thinking I was programming chess, but I think I have to face
the hard reality: I was in fact programming computer chess.
I need your lights here, because I think I'm a little bit lost. What are the
differences?
* What are the differences in the rule of the game?
* What is allowed in chess and is not allowed in computer chess?
* What is allowed in computer chess and is not allowed in chess?
* Who (what) is allowed to play chess?
* Who (what) is allowed to play computer chess?
* Is a chess player forbidden to play computer chess?
* Is a computer chess player forbidden to play chess?
* Is it possible that a chess player and a computer chess player play on the
same board?
* In this case, are they playing the same game or not?
* Is it possible that both players play a different game on the same board?
* In this case is it allowed that both players win at the same time? Or loose at
the same time?
* What kind of game is Chess System Tal playing?
>>You completely overlook the fact that several testers including our friend
>>Thorsten have noticed that Chess Tiger has a large amplitude in its evaluation
>>function. It's usual to see Tiger at +1.90 when the opponent is still close to
>>0.00.
>>
>
>Good. You're being courageous. I think any competent chess player can program in
>a good deal of positional knowledge which dares to take risks with evaluations.
>This would be sufficient to deal with the Craftys and Fritzs and other fast
>ones. And it expands the tree area over which this type of program will roam.
It is not sufficient. You can dream about a wonderful position and miss a fork
next move.
There is a thresold in the quality of what you must add to your knowledge.
If you add a complex knowledge that can be simulated by a simpler knowledge and
a deeper search, you waste your time. Your program ends with the same amount of
knowledge than before, it is just slower. And it's now unbalanced, because the
same piece of knowledge is weighted twice.
So it's not enough to be a competent chess player. You cannot just add any piece
of knowledge you think about. You have to make sure that it really brings
something new, something efficient.
With a deep enough search and relatively simple basic knowledge, a program is
able to understand incredibly well a large number of positional issues. It's
amazing.
To improve on this is really difficult. You have to add the kind of long range
structural knowledge that a deep search would be unable to find.
Taking risks with the evaluation is just amusing, but it's not the real issue.
The evaluation function has to take into account long range structural patterns
and to give them very balanced weights.
At the top level, no human player would choose a flashy king attack when he sees
that by just forcing an exchange he goes into a long range won endgame.
Only an average club player will go for the king attack, and eventually will
lose against a serious player.
>But I think these are still not chess trees. In the sense that they still don't
>naturally expand over the checking attack regions of the tree. Null move stops
>that.
This is a lack of imagination.
You are not bound to follow null move or any other pruning scheme blindly.
Hint:
* disable your pruning for moves that are expanding over the checking attack
regions you like so much.
* Increase your pruning for moves that are expanding over regions that are not
to your liking.
>>>Getting an edge on this particular tree makes for good percentage increases in
>>>winning chances against other programs.
>>
>>
>>Maybe, and I would like to know how to do it. But as I don't tune my program
>>against other programs I unfortunately don't know how to do it.
>>
>>Can you please explain how to do it? I would like to get a better rating on the
>>SSDF. If you know anti-computer tricks, please share them with me.
>>
>
>I think the best anto-computer trick is to try to get and stay in the tree
>regions that programs do not understand.
Good luck. Your territory is going to be smaller and smaller. Not enough room to
breathe.
And you are probably going to be left with regions that your program does not
understand anyway.
Christophe
This page took 0.01 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.