Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: new paradigm is not about solving cross-word-puzzles...

Author: Christophe Theron

Date: 08:59:49 11/06/00

Go up one level in this thread


On November 06, 2000 at 03:59:33, Bruce Moreland wrote:

>On November 06, 2000 at 01:00:53, Christophe Theron wrote:
>
>>On November 05, 2000 at 18:08:04, Robert Hyatt wrote:
>>
>>>On November 05, 2000 at 14:09:12, Andrew Williams wrote:
>>>
>>>>On November 05, 2000 at 13:31:22, Thorsten Czub wrote:
>>>>
>>>>>On November 05, 2000 at 11:57:26, Andrew Williams wrote:
>>>>>[D] rn1q1rk1/6bp/p2p4/1p1Pp2n/6b1/2NBB3/PP1QN2P/2KR3R w - - 0 16
>>>>>
>>>>>thank you for the position.
>>>>>
>>>>>>I'm afraid my program isn't famous, but here is its output. It never
>>>>>>considers that Black is better, although the score is falling as it
>>>>>>gets deeper. I think I'll run this overnight and see what happens.
>>>>>
>>>>>
>>>>>yes. the thing is not to find the move. the thing is:
>>>>>how to evaluate the position !
>>>>>draw ? winning for white ?
>>>>>better for black ?
>>>>>how to evaluate positions where there is no material win !
>>>>>
>>>>>> 1=    54     0       188   16. Rdf1 Rxf1 17. Rxf1
>>>>>> 2=    54     0       252   16. Rdf1 Rxf1 17. Rxf1 Bxe2 18. Nxe2
>>>>>> 3=    31     0       804   16. Qc2 Nf6
>>>>>> 4=    55     0      2228   16. Qc2 Nf6 17. Rdg1
>>>>>> 5=    35     0      8550   16. Qc2 Nf6 17. Rdg1 Nbd7
>>>>>> 6=    58     1     40623   16. Rhg1 Bf5 17. Bg5 Qe8 18. Bh6
>>>>>> 7=    39     5    181115   16. Rhg1 Bf5 17. Bh6 Qh4 18. Bxf5 Rxf5 19. Qc2
>>>>>> 8=    39    19    476616   16. Qc2 Nf6 17. Rdg1 Bf3 18. Bh6 Bxh1 19. Rxg7
>>>>>> 9=    38    59   1706262   16. Qc2 Nf6 17. Rdg1 b4 18. Bg5 h5 19. Bh7 Kh8 20.
>>>>>>Bxf6
>>>>>>10=    24   417  12520722   16. Rhg1 Qd7 17. Qc2 Bf5 18. Bh6 Bxd3 19. Rxd3
>>>>>
>>>>>the score is 0.24 ?
>>>>
>>>>Correct. At depth 10, score is +0.24 for White after 417 seconds. The last
>>>>number is the number of nodes.
>>>>
>>>>
>>>>Andrew
>>>>
>>>>>
>>>>>>This is on a K6-2 300 which was a bit busy doing other things too. I can't
>>>>>>comment on your views below, but one thing I will say is that PM would get
>>>>>>crushed in a straight match against Fritz, Shredder, Junior or Hiarcs. And
>>>>>>Gambit Tiger as well :-)
>>>>>
>>>>>
>>>>>right. you can reach lots of elo when you forget about chess and just
>>>>>count the pieces and search very deep. you can even outsearch
>>>>>more intelligent programs. but is this chess ?
>>>>>
>>>>>the position above is IMO about chess.
>>>>>its not to find the move. its to see in move 16, better in move 14,
>>>>>that white is better and black cannot defend much longer.
>>>>>
>>>>>
>>>>>i am not saying: ANY program that finds the move Rhg1 is a new-paradigm
>>>>>program.
>>>>>
>>>>>but i am saying that programs of the new paradigm find out that white is better
>>>>>and has winning chances.
>>>>>
>>>>>Thats what gandalf, cstal and most of all 3, gambit-tiger evaluates here.
>>>>>
>>>>>the new paradigm is not about FINDING key moves. Thats not playing chess.
>>>>>it is cross-word. is cross-word-puzzle-solving beeing intelligent ? no.
>>>>>
>>>>>the new paradigm is not about finding key moves in positions that HAVE
>>>>>a solution. the new paradigm is about finding a plan and evaluating
>>>>>it as a chance in a position that is NOT solved.
>>>>>
>>>>>you see the difference ?
>>>>>
>>>>>A bednorz-toennissen test-suite has 30 positions, and the programs
>>>>>havwe to find the key  moves. its bean counting.
>>>>>the positions are all won ! the key move is there !
>>>>>thats not chess, its solving cross-word-puzzles.
>>>>>
>>>>>the differenciation is not WHICH PROGRAM finds the moves.
>>>>>there is nothing to find. you have to invent something. therefore
>>>>>you have to evaluate for it.
>>>>>otherwise you won't follow the idea, or ?
>>>>>
>>>>>imagine you have fritz and you think: oh- the position is draw, slightly
>>>>>better for black. and then you lose the game.
>>>>>brilliant, isn't it ??
>>>
>>>
>>>Minor eval changes (commands any user can type directly into crafty) will
>>>yield this:
>>>               5     0.35     --   1. Rdg1
>>>                5     0.40   4.17   1. Rdg1 Bf3 2. Bg5 Qc7 3. Bxh7+ Kxh7
>>>                5     0.64     ++   1. Rhg1!!
>>>                5     0.74   4.72   1. Rhg1 Bf3 2. Rdf1 Qc7 3. Bxh7+ Kxh7
>>>                5->   0.88   4.72   1. Rhg1 Bf3 2. Rdf1 Qc7 3. Bxh7+ Kxh7
>>>                6     1.15   4.61   1. Rhg1 Nf6 2. Bh6 Ra7 3. Bxh7+ Kxh7
>>>                                    4. Bxg7 Rxg7
>>>                6->   1.40   4.61   1. Rhg1 Nf6 2. Bh6 Ra7 3. Bxh7+ Kxh7
>>>                                    4. Bxg7 Rxg7
>>>                7     1.85     ++   1. Rhg1!!
>>>                7->   4.66   5.00   1. Rhg1 Nf6 2. Bh6 Ra7 3. Bxh7+ Kxh7
>>>                                    4. Bxg7 Rxg7
>>>                8     7.20   5.35   1. Rhg1 Qc8 2. Bh6 e4 3. Bxe4 Re8 4.
>>>                                    Rxg4 Qxg4
>>>                8->  13.21   5.35   1. Rhg1 Qc8 2. Bh6 e4 3. Bxe4 Re8 4.
>>>                                    Rxg4 Qxg4
>>>                9    25.25   5.23   1. Rhg1 Qc8 2. Bh6 Rf4 3. Bxg7 Nxg7
>>>                                    4. Nxf4 Bxd1 5. Ne6 Nc6
>>>                9->  31.06   5.23   1. Rhg1 Qc8 2. Bh6 Rf4 3. Bxg7 Nxg7
>>>                                    4. Nxf4 Bxd1 5. Ne6 Nc6
>>>
>>>
>>>Which shows what your position proves.  Namely nothing.  The first issue is
>>>to _play_ the right move.  Whether your eval is overly optimistic or overly
>>>pessimistic doesn't really matter, in this position...
>>>
>>>There is no "new" paradigm...
>>>
>>>That is just a buzz-word...
>>
>>
>>
>>If it's so simple, Bob, why don't you play with this tweaked Crafty in a serious
>>tournament?
>>
>>Remember that Gambit Tiger 1.0 has WON the two tournaments he entered recently:
>>the french computer championship and the dutch computer championship. It has not
>>only made a nice show, but it has also WON the tournaments.
>>
>>How would Crafty have performed in these two strong tournaments? How would the
>>tweaked Crafty perform?
>>
>>The one who proves nothing here is YOU. Gambit Tiger has proved what it can do.
>>Your tweaked Crafty is just a joke.
>
>Ok, what do you do then?
>
>I don't know much about your engine and I don't own a copy of it.  Additionally,
>I have been mostly dormant for the past year and a half (no work on Ferret from
>March 1999 to October 2000), so if you have explained all of this elsewhere, I
>may not have noticed.
>
>I have heard various people say that it gets very deep, so I'd like to ask first
>how you do that?  Is Tiger a null-move program or does it prune out lines via
>some other mechanism?



Tiger uses several different pruning mechanisms (some are well-known, some are
more obscure) in combination with each other. Usually when you do that you
weaken your program. Part of my work has been to teach these pruning algorithms
how to live together without burning the house.

In the past 5 years I have worked 80% of the time on search, and I believe I
have "invented" several interesting pruning mechanisms. I'm pretty sure however
that other programmers have "invented" them as well, but maybe nobody else
managed to have all of them working together?




>And regarding the eval, do you do tip eval, root processing, some sort of
>incremental evaluation, or soemthing else?



I do a little of root processing for obvious things. But most of my evaluation
is done in the leaves. For example, king attack evaluation is done in every
node.

My make/unmake routines update evaluation terms incrementally instead of
computing everything from scratch at each node. It is much more difficult to
work like this, because your make/unmake routines become pretty complex.

Just one example: evaluation of "rooks on open files". The term is re-evaluated
if the program sees that the move:
* moves a rook
* moves a pawn on another file
* captures a rook
* captures a pawn

So you can imagine what a mess it is when you add 20 or 30 additional terms...
But it works. This is also why bitboards would not help me much.

I almost don't use lazy eval. Obviously, it would not be work with Gambit
Tiger's huge positional evaluation of king safety.




>  Are you winning games because you
>are ungodly fast or is it some other reason?  Everyone's eval terms look great
>when they outsearch the opponent by four plies.



I'm not that fast, but it's true my trees are rather small due to massive
pruning.

So I can go pretty deep. But it is not enough to go deep. Your evaluation has to
be reasonnably accurate, or else you'll lose anyway. Of course you know that.

A program that wins by outsearching its opponents is rather easy to "detect":
it's a program that is able to play senseless moves ("playing with no idea"),
and still win in the end. Reminds you of some famous program? Is it the way
Tiger plays in your opinion?





>In this particular position, what are you seeing?  The position can be viewed in
>any of several ways:
>
>1) One way is a very blunt approach, which involves detection of open lines
>without being very interested in what is on the open lines.  It's typical for a
>program to award a bonus for an open file into the enemy king position, without
>bothering to see if there is a rook on the file.
>
>2) You can be more sophisticated and say, here are some open files into the
>king, and here are some open diagonals into the king, and here are some pieces
>on those files and diagonals, and these pieces seem pretty close to the opposing
>king, and here are the defenders.  You can mash this all up and produce a value.
>
>3) You can be even more sophisticated and try to determine which points are
>vulnerable to being overcome through direct attack, perhaps even explore some
>means of increasing attack or defense of those points.
>
>I have made numerous tries with Ferret.  Versions up until now have been
>somewhere between #1 and #2.
>
>The original version just took into account structural defects, it would add and
>subtract various numbers of centipawns for open files into the king position, or
>various defects in the pawn structure, without taking into account whether the
>open files were inhabited, and without noticing queen location or open diagonals
>or whether the board was bisected by locked central pawns and so on.  This
>worked OK, but then again almost everything does.  It was vulnerable to getting
>ripped by humans, but computers didn't give it much trouble since they didn't
>attack.
>
>I tried to add much of this stuff into versions of my program that have been
>seen publicly over the past few years.  The program still didn't have any
>knowledge of open diagonals, and it didn't check to see if rooks inhabited open
>files, but it did try to figure out where the queen was, and if there were any
>pieces planted on strategic squares like f5, and it tried to figure out if there
>was a central pawn configuration that it needed to be concerned about.
>
>My intent was several-fold:
>
>1) Try to create a speculative attacker.
>2) Try to avoid getting munched by aggressive humans.
>3) Try to create something that was sensibly aggressive with pawns.
>
>I had some successes with this, and a few times the program generated nice
>attacks, against both humans and computers, but I wouldn't call it sensibly
>speculative.  It was probably quite successful against humans, not that it got
>much chance to try.
>
>Within the last few days I've redone king safety again.  The newer version knows
>about rooks and bishops striking into the king position, and it can handle rook
>lifts and so on.  It divides the minors into primary and secondary attackers, a
>primary attacker being right in there, and a secondary attacker having a good
>chance of swinging over into attack, but not necessarily attacking right now.
>It also figures out if a rook has a clean line into the king position, and if so
>it regards that as a primary attacker.
>
>It figures out the status of the queen, which is also given the status of a
>primary or secondary attacker.  After everything is counted, I convert the above
>into a score.  The score can be huge, like five or six pawns, mostly based upon
>the presence of a supported queen.
>
>This version attacks a lot more than older versions, and seems to be making good
>decisions.  It got a lot of pieces around the enemy king and blew through a
>couple of times today, and it sacrificed pawns a few times and the exchange once
>or twice.  It's only played 12 games but it won 8 of them, against apparently
>pretty tough computer opponents, and I think I can make it quite a bit better
>with a bit of messing around.  Also, I used it to watch games in the CCT2
>tournament today, and it seemed to be spotting attacks there pretty fast.
>
>There are some obvious things it doesn't understand, that I think I can make it
>understand, like for instance it doesn't have any particular fear of playing ...
>g6 and trading off its dark-square bishop.  But I think te basic idea of
>identifying real attackers, and creating a compounded bonus based upon several
>of these attackers, is pretty sound.
>
>How are you getting three pawns of comp in this position?  What are the elements
>of this compensation, according to Tiger?



I cannot tell you what I do exactly (you understand why, don't you?), but what I
can tell is that I have studied the way 1700-1800 elo human chess players
attack. I have plenty of games against earlier versions of Tiger, played on
rather slow hardware (which is interesting because Tiger did not outsearch his
opponents too badly), where the human player completely destroys my program in a
king attack.

From these I have extracted some general knowledge (some common themes) and
implemented them in my program. It's not very well tuned at this time, but when
you put this "biologic" knowledge on top of a "mechanical" deep search, the
result is surprising.

You see more wild (maybe incorrect) attacks in games of average chess club
players, that's why I have found them more interesting to study than GM games.

Next step is to find the weaknesses in the current knowledge, and add knowledge
extracted from stronger human players (GMs).



    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.