Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: CraftyK7 18.12 Updated (A bug?)

Author: Robert Hyatt

Date: 11:41:00 10/19/01

Go up one level in this thread


On October 19, 2001 at 12:15:36, Slater Wold wrote:

>>I'm also interested.  It has three major changes:
>>
>>1.  Deep Blue search extension bound, two consecutive plies can't extend more
>>than 2 plies, rather than any single ply being limited to extending 1 ply.
>>
>>2.  New EvaluateWinner() endgame module that does a better job (certainly not
>>perfect yet) of assessing whether a game is a draw, can be won by white or
>>black, or by both.
>>
>>3.  More stability in the endgame search.
>>
>>Whether it is stronger or not is a real question.  items 2 and 3 are definitely
>>better than before.  Item 1 is a question at the moment.  It also seems better,
>>but more data is needed.
>
>Bob, I had posted this earlier, but I guess you never saw it:
>
>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
>>On October 18, 2001 at 21:01:46, Slater Wold wrote:
>>
>>>On October 18, 2001 at 09:14:43, José Antônio Fabiano Mendes wrote:
>>>
>>>>      L.D.Evans-Haik,London 1978 [unusual and difficult position]
>>>>      [D]8/p2P3P/k7/8/8/2q5/6PK/1Q6 b
>>>>       "Surprisingly Black can deliver perpetual check or force stalemate."
>>>>    Source:"Tactical Chess Endings",by GM John Nunn,page 35
>>>
>>>Talk about a bummer..............
>>>
>>>EPD Kit revision date: 1996.04.21
>>>found computer opening book file [./bookc.bin].
>>>max threads set to 2
>>>hash table memory = 768M bytes.
>>>pawn hash table memory = 40M bytes.
>>>EGTB cache memory = 32M bytes.
>>>6 piece tablebase files found
>>>26330kb of RAM used for TB indices and decompression tables
>>>choose from 2 best moves.
>>>
>>>
>>>Crafty v18.12 (2 cpus)
>>>
>>>White(1): st 3600
>>>search time set to 3600.00.
>>>White(1): epdpfga drawtest.epd drawtest.out
>>>PFGA: EPD record: 1
>>>end-game phase
>>>              clearing hash tables
>>>              time surplus   0.00  time limit 60:00 (60:00)
>>>         nss  depth   time  score   variation (1)
>>>starting thread 1
>>>                7     0.14   6.02   1. ... Qe5+ 2. Kh3 Qh5+ 3. Kg3 Qe5+
>>>                                    4. Kg4 Qd4+ 5. Kg5 Qd2+ 6. Kh5 Qd4
>>>                                    7. Qg6+ Kb7 8. g4
>>>                7->   0.16   6.02   1. ... Qe5+ 2. Kh3 Qh5+ 3. Kg3 Qe5+
>>>                                    4. Kg4 Qd4+ 5. Kg5 Qd2+ 6. Kh5 Qd4
>>>                                    7. Qg6+ Kb7 8. g4
>>>                8     0.29   5.92   1. ... Qe5+ 2. Kh3 Qh5+ 3. Kg3 Qe5+
>>>                                    4. Kg4 Qd4+ 5. Kg5 Qe3+ 6. Kf6 Qd4+
>>>                                    7. Ke6 Qc4+ 8. Ke5 Qc7+ 9. Ke6 Qd8
>>>                8->   0.33   5.92   1. ... Qe5+ 2. Kh3 Qh5+ 3. Kg3 Qe5+
>>>                                    4. Kg4 Qd4+ 5. Kg5 Qe3+ 6. Kf6 Qd4+
>>>                                    7. Ke6 Qc4+ 8. Ke5 Qc7+ 9. Ke6 Qd8
>>>                9     0.63   5.92   1. ... Qe5+ 2. Kh3 Qh5+ 3. Kg3 Qe5+
>>>                                    4. Kg4 Qd4+ 5. Kg5 Qe3+ 6. Kf6 Qd4+
>>>                                    7. Ke6 Qc4+ 8. Ke5 Qc3+ 9. Kd5 Qa5+
>>>                                    10. Ke6 Qd8
>>>                9->   0.72   5.92   1. ... Qe5+ 2. Kh3 Qh5+ 3. Kg3 Qe5+
>>>                                    4. Kg4 Qd4+ 5. Kg5 Qe3+ 6. Kf6 Qd4+
>>>                                    7. Ke6 Qc4+ 8. Ke5 Qc3+ 9. Kd5 Qa5+
>>>                                    10. Ke6 Qd8
>>>               10     1.24   5.82   1. ... Qe5+ 2. Kh3 Qh5+ 3. Kg3 Qe5+
>>>                                    4. Kg4 Qd4+ 5. Kf3 Qc3+ 6. Kf4 Qd2+
>>>                                    7. Ke5 Qc3+ 8. Ke6 Qc4+ 9. Ke5 Qc5+
>>>                                    10. Kf4 Qd6+ 11. Kf3 Qa3+ <HT>
>>>               10->   1.33   5.82   1. ... Qe5+ 2. Kh3 Qh5+ 3. Kg3 Qe5+
>>>                                    4. Kg4 Qd4+ 5. Kf3 Qc3+ 6. Kf4 Qd2+
>>>                                    7. Ke5 Qc3+ 8. Ke6 Qc4+ 9. Ke5 Qc5+
>>>                                    10. Kf4 Qd6+ 11. Kf3 Qa3+ <HT>
>>>               11     2.30   5.82   1. ... Qe5+ 2. Kh3 Qh5+ 3. Kg3 Qe5+
>>>                                    4. Kg4 Qd4+ 5. Kf3 Qc3+ 6. Kf4 Qd2+
>>>                                    7. Ke5 Qc3+ 8. Ke6 Qc4+ <HT>
>>>               11->   2.71   5.82   1. ... Qe5+ 2. Kh3 Qh5+ 3. Kg3 Qe5+
>>>                                    4. Kg4 Qd4+ 5. Kf3 Qc3+ 6. Kf4 Qd2+
>>>                                    7. Ke5 Qc3+ 8. Ke6 Qc4+ <HT>
>>>               12     5.02   5.82   1. ... Qe5+ 2. Kh3 Qh5+ 3. Kg3 Qe5+
>>>                                    4. Kg4 Qd4+ 5. Kf3 Qc3+ 6. Kf4 Qd2+
>>>                                    7. Ke5 Qc3+ 8. Kd5 Qd2+ 9. Ke6 Qe3+
>>>                                    10. Kf6 Qd4+ <HT>
>>>               12->   5.50   5.82   1. ... Qe5+ 2. Kh3 Qh5+ 3. Kg3 Qe5+
>>>                                    4. Kg4 Qd4+ 5. Kf3 Qc3+ 6. Kf4 Qd2+
>>>                                    7. Ke5 Qc3+ 8. Kd5 Qd2+ 9. Ke6 Qe3+
>>>                                    10. Kf6 Qd4+ <HT>
>>>               13     7.79     ++   1. ... Qe5+!!
>>>               13    13.49   4.22   1. ... Qe5+ 2. Kh3 Qh5+ 3. Kg3 Qe5+
>>>                                    4. Kh4 Qe7+ 5. Kh5 Qc5+ 6. Kh6 Qf8+
>>>                                    7. Kg5 Qe7+ 8. Kf4 Qd6+ 9. Ke3 Qg3+
>>>                                    10. Kd2 Qxg2+ 11. Ke3 Qg3+ 12. Kd4
>>>                                    Qd6+ 13. Kc4 Qc7+ 14. Kb4 Qd8
>>>               13->  14.55   4.22   1. ... Qe5+ 2. Kh3 Qh5+ 3. Kg3 Qe5+
>>>                                    4. Kh4 Qe7+ 5. Kh5 Qc5+ 6. Kh6 Qf8+
>>>                                    7. Kg5 Qe7+ 8. Kf4 Qd6+ 9. Ke3 Qg3+
>>>                                    10. Kd2 Qxg2+ 11. Ke3 Qg3+ 12. Kd4
>>>                                    Qd6+ 13. Kc4 Qc7+ 14. Kb4 Qd8
>>>               14    25.82     ++   1. ... Qe5+!!
>>>               14    27.55   2.00   1. ... Qe5+ 2. Kh3 Qe6+ 3. g4 Qe3+
>>>                                    4. Kh2 Qf4+ 5. Kg2 Qxg4+ 6. Kf2 Qf4+
>>>                                    7. Ke2 Qg4+ 8. Ke3 Qg3+ 9. Kd4 Qd6+
>>>                                    10. Ke4 Qb4+ 11. Kd5 Qxb1 12. h8=Q
>>>                                    Qa2+ 13. Kc6 Qc2+ 14. Kd6
>>>               14->  29.02   2.00   1. ... Qe5+ 2. Kh3 Qe6+ 3. g4 Qe3+
>>>                                    4. Kh2 Qf4+ 5. Kg2 Qxg4+ 6. Kf2 Qf4+
>>>                                    7. Ke2 Qg4+ 8. Ke3 Qg3+ 9. Kd4 Qd6+
>>>                                    10. Ke4 Qb4+ 11. Kd5 Qxb1 12. h8=Q
>>>                                    Qa2+ 13. Kc6 Qc2+ 14. Kd6
>>>               15    32.80   2.00   1. ... Qe5+ 2. Kh3 Qe6+ 3. g4 Qe3+
>>>                                    4. Kh2 Qf4+ 5. Kg2 Qxg4+ 6. Kf2 Qf4+
>>>                                    7. Ke2 Qg4+ 8. Ke3 Qg3+ 9. Kd4 Qd6+
>>>                                    10. Ke4 Qb4+ 11. Kd5 Qxb1 12. h8=Q
>>>                                    Qa2+ 13. Kd6 Qd2+ 14. Kc7 Qc2+ <HT>
>>>               15->  34.79   2.00   1. ... Qe5+ 2. Kh3 Qe6+ 3. g4 Qe3+
>>>                                    4. Kh2 Qf4+ 5. Kg2 Qxg4+ 6. Kf2 Qf4+
>>>                                    7. Ke2 Qg4+ 8. Ke3 Qg3+ 9. Kd4 Qd6+
>>>                                    10. Ke4 Qb4+ 11. Kd5 Qxb1 12. h8=Q
>>>                                    Qa2+ 13. Kd6 Qd2+ 14. Kc7 Qc2+ <HT>
>>>               16    46.88     --   1. ... Qe5+
>>>              time=60:01  cpu=201%  mat=2  n=1693306751  fh=99%  nps=470k
>>>              ext-> chk=1363197943 cap=274706 pp=267447 1rep=117221890 mate=2380
>>>
>>>              predicted=0  nodes=1693306751  evals=7323296
>>>              endgame tablebase-> probes done=48149  successful=4738
>>>              hashing-> trans/ref=73%  pawn=99%  used=14%
>>>              SMP->  split=4869  stop=472  data=13/32  cpu=120:40  elap=60:01
>>>Black(1):
>>>
>>>
>>>Fails low @ 46 seconds, and can't resolve it in 59 minutes.  :(
>>
>>This looks like a bug.  That position should never fail low, but always fail
>>high.
>>
>>Either that, or crafty may have found some strange, suicidal attack that
>>succeeds.
>
>If I had to guess, I'd say it'll find something.  I did it with 10 minutes at
>first, and it did this same thing.  59 minutes to resolve a fail low _does_ seem
>a tad long.  Perhaps Bob can help here.
>
>I can give it more time, if requested.
>
>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
>A bug?


Probably not.  This isn't uncommon for _any_ engine.  A fail low, or a fail high
can cause a huge tree explosion.  An example (I don't have the position handy
however) came from something Harry Nelson was doing with Cray Blitz.  He had
some test position that white could win a rook in.  But there were literally
zillions of positions in that search that led to forced mates, but not from
the root.  When we quickly failed high, we relaxed beta to +infinity, and now
all those un-forced mates that were producing alpha/beta cutoffs no longer did
so, which required searching them _all_ to completion.  And we never got a
score back.  We later modified the fail-high to do so in "steps", which fixed
this.  We would fail high by +1 first, then +3, then +9 and finally +infinity.
When we got to +9, we would pick up winning the rook without having to deal with
all the mates.

I plan to do this one day in Crafty, but just haven't gotten around to it yet.




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.