Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Chess Tiger's Playing Style?

Author: Peter McKenzie

Date: 20:06:01 11/18/99

Go up one level in this thread


Thanks for an interesting post Christophe.

On November 18, 1999 at 00:56:59, Christophe Theron wrote:

<snip>
>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 talk of the search 'losing information' is interesting, although I'm not
quite sure what it means.  Perhaps you could define the meaning in a more
precise way?


>
>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.

I'm not sure I understand this completely.  Sure, if a search misses too many
tactical things then a great positional evaluation doesn't matter - but this to
me this doesn't mean the evaluation is spoiled.  It just means the search isn't
very effective.  Are we talking about the same thing, or are you talking about
something different?

>
>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.

I'm not so sure about this.  At some stage you must stop searching and apply
your evaluation to a leaf node - so the closer to the truth your evaluation gets
at that node the better.

The issue of weighting the same piece of knowledge twice is a tricky one, but I
think it is more to do with the magnitude of the evaluation weights and the
conditions you put on them 'firing'.

>
>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.

I agree that we need this knowledge, but we also need knowledge that COULD be
deduced by a deep search.  This is  because you apply this knowledge at the tips
of your tree where you aren't using a deep search.

For example, consider passed pawn scoring.  Normally a passer on the 7th is
scored higher than a passer on the 6th.  This will, other things being equal,
encourage the program to push the pawn to the 7th rank.  Now imagine if the pawn
on the 7th was scored the same as a passer on the 6th.  In most positions a deep
search would enable a program to realise that pushing the pawn to the 7th is
beneficial (because it will soon promote, or it ties down opposing pieces etc).

Most (all?) programs score a passed pawn on 7th as higher than passed pawn on
6th, and yet normally a deep search would also deduce this.  So clearly we need
this sort of knowledge too.

>
>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 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.