Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Any Programs See THIS As A Draw? - question to programmers

Author: Jeremiah Penery

Date: 23:42:04 11/13/00

Go up one level in this thread


ARGH!  I had a really nice message written out with several positions as
examples, and something screwed up and it was lost.  This one will not be as
good, but I will try to reproduce most of what I wanted to say:

First of all, my example of "if 3 iterations in a row produce the same score,
it's a draw" was extremely simplistic.  It would definitely have to be more
complicated than this.  Perhaps it should depend on the amount (and type) of
material left on the board.  Maybe there should be a way to detect whether the
same 2-3 (or more) pieces are aimlessly shuffling, trying to avoid repetitions.
But I believe that this can be done in some way, and can improve the program in
many types of positions.  Some positions where this can help:

[D]8/2k5/1p1p4/pPpPp1p1/K1P1Pp1p/P4PbP/3Q2P1/8 w - -

Probably any computer will play pointless queen and king moves with white, and
bishop and king moves with black.  White will receive a very high score, because
of the material advantage, even though it's drawn unless white plays Qxa5!.  I
let it search to 20 ply and it still prefers a line with 100% pointless
shuffling moves, with +5.6 score (the score was within .15 pawns from iteration
1 to 20).

[D]2b5/1r6/2kBp1p1/p2pP1P1/2pP4/1pP3K1/1R3P2/8 b - -

WAC #230.  After Rh7/Rf7, there will be a bunch of shuffling moves and no
progress really made.

[D]8/7p/6pP/k4pP1/b1p1pP2/KpPpP3/1P1P4/7Q w - - 0 1

In this position, the only way to win is 1. Qd1 {any bishop move} 2. Qxb3, or 1.
Qd1 Kb5? 2. Qh5!  Otherwise, white gets a high score because of material
advantage, and shuffling of pieces occurs.  This position was posted to CCC in
January of 1998.  You tested it on Cray Blitz:

"I set the 50 move counter to 6 plies away from draw.  I snipped a lot of
noise around the point where it started seeing draw, as it was changing
it's mind, then failing high, then failing low, etc.  I stopped after 10
seconds as it seemed to be "on track".  I want to try this on Crafty
later, as I'm not sure the two connected passed pawns are valuable enough to
make it want to do this, period, unless the search can go deep enough to see
them advancing.  CB is a little more aggressive on evaluating connected
passers, because it searches so deeply...

              depth   time  score   variation (1)
                1     0:00   7.441   Qg2
                1->   0:00   7.441   Qg2
                2     0:00   7.364   Qg2 Bc6
                2->   0:00   7.364   Qg2 Bc6
                3     0:00   7.364   Qg2 Bc6 Qg3
                3->   0:00   7.364   Qg2 Bc6 Qg3
                4     0:00   7.336   Qg2 Bc6 Qg3 Kb6
                4->   0:00   7.336   Qg2 Bc6 Qg3 Kb6

<noise deleted>

                8     0:00      --   Qf1
                8     0:00   0.000   Qf1 Bc6 Qg2 Ba4
                8     0:00   0.234   Qd1 Bc6 Qxb3 cxb3 Kxb3 Kb6 c4 Kc5
                8->   0:00   0.234   Qd1 Bc6 Qxb3 cxb3 Kxb3 Kb6 c4 Kc5
                9     0:00   0.234   Qd1 Bc6 Qxb3 cxb3 Kxb3 Kb6 c4 Kc5
                9->   0:00   0.234   Qd1 Bc6 Qxb3 cxb3 Kxb3 Kb6 c4 Kc5
               10     0:00   0.302   Qd1 Bc6 Qxb3 cxb3 Kxb3 Kb6 c4 Kc5
               10->   0:00   0.302   Qd1 Bc6 Qxb3 cxb3 Kxb3 Kb6 c4 Kc5
               11     0:00   0.388   Qd1 Be8 Qxb3 cxb3 Kxb3 Kb6 Kc4 Bf7+
                                     Kd4 Kb5 b4 Bc4
               11->   0:00   0.388   Qd1 Be8 Qxb3 cxb3 Kxb3 Kb6 Kc4 Bf7+
                                     Kd4 Kb5 b4 Bc4
               12     0:00   0.388   Qd1 Be8 Qxb3 cxb3 Kxb3 Kb6 Kc4 Bf7+
                                     Kd4 Kb5 b4 Bc4 Ke5
               12->   0:00   0.388   Qd1 Be8 Qxb3 cxb3 Kxb3 Kb6 Kc4 Bf7+
                                     Kd4 Kb5 b4 Bc4 Ke5
               13     0:00   0.293   Qd1 Be8 Qxb3 cxb3 Kxb3 Ba4+ Ka3 Bd1
                                     c4 Kb6 b4 Kc6 c5 Bf3
               13->   0:00   0.293   Qd1 Be8 Qxb3 cxb3 Kxb3 Ba4+ Ka3 Bd1
                                     c4 Kb6 b4 Kc6 c5 Bf3
               14     0:00   0.293   Qd1 Be8 Qxb3 cxb3 Kxb3 Ba4+ Ka3 Bd1
                                     c4 Kb6 b4 Kc6 Kb2 Bf3 c5
               14->   0:00   0.293   Qd1 Be8 Qxb3 cxb3 Kxb3 Ba4+ Ka3 Bd1
                                     c4 Kb6 b4 Kc6 Kb2 Bf3 c5
               15     0:00   0.269   Qd1 Be8 Qxb3 cxb3 Kxb3 Ba4+ Ka3 Bd1
                                     c4 Ka6 b4 Kb6 Kb2 Bf3 c5+ Kc6 Kb3
               15->   0:01   0.269   Qd1 Be8 Qxb3 cxb3 Kxb3 Ba4+ Ka3 Bd1
                                     c4 Ka6 b4 Kb6 Kb2 Bf3 c5+ Kc6 Kb3


So it isn't hopeless, but needs some help from the 50 move rule.  This
was run on a 1 processor C90.  I suspect the 32 processor T90 could reach 20
plies in 1 second, and that this could be searched to a depth of 30 or
so, with no trouble.  In that case, I'm sure the scores would be much higher
as by then the pawns would be well on their way..."

I suspect that a lot of the positions where a heuristic like this would help are
ones where you're up on material, but to actually win you have to sacrifice some
of this material.  Perhaps rather than simply scoring a draw when the criteria
are met (n successive iterations returning the same score or whatever), the
score could simply be reduced (or raised, if you're behind) at each of these
iterations.  In this way, you could find the correct move, either for yourself
to win, or so that you can see the opponent winning (and try to find a line that
doesn't allow it).  A flat 3-iterations is obviously not the way to go, but I do
believe that something like this could (and should) be implemented.



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.