Slight problem/glitch with Gaviota tablebases

Discussions about the WinBoard protocol. Here you can also report bugs and request new features.

Moderators: hgm, Andres Valverde

Slight problem/glitch with Gaviota tablebases

Postby EdCollins » 07 May 2011, 07:16

Greetings,

I'm running WinBoard and invoking a UCI engine via Polyglot. (In this case, Houdini 1.5)

In my polyglot ini file for that engine I'm using the Gaviota tablebases:

GaviotaTbPath = D:\Chess\Tablebases\Gaviota\gtb.cp4
GaviotaTbCache = 16
GaviotaUsage = Rarely

After WinBoard is loaded, I setup an endgame test position, with just five pieces.

When I chose MODE - TWO MACHINES, both machines instantly carry out their respective best moves. Upon checking that initial position that I set up, I confirm the endgame table bases are working. So far so good. :)

However, after setting up the position, if instead I chose MODE - ANALYSIS MODE, I briefly, for a quick second, see output in the analysis engine pane window. (I think that's what that window is called.) And then, that output disappears completely and doesn't return.

If I make a move on the board, the same thing happens - for a very brief quick second, barely enough time to read it, I see output appear in the window pane and then disappear.

What I'm hoping to see, of course, is a mate announcement of some kind. (That stays there, naturally.)

Upon checking the logfile that is produced, I can see that the # of moves to mate is listed in the file. This also confirms that polyglot/the engine are using the tablebases and that they are working as they should. But shouldn't that mate announcement be shown in the pane?

As always thanks in advance (H.G.) for any replies.

Ed
EdCollins
 
Posts: 71
Joined: 16 May 2010, 09:05
Location: Southern California

Re: Slight problem/glitch with Gaviota tablebases

Postby H.G.Muller » 07 May 2011, 14:26

Can you post the section of the debug file that shows what the engine prints as analysis output for a single tablebase move? (Everything from feeding it the move that reaches the position up to the move that brings it to the next position.)
User avatar
H.G.Muller
 
Posts: 3453
Joined: 16 Nov 2005, 12:02
Location: Diemen, NL

Re: Slight problem/glitch with Gaviota tablebases

Postby EdCollins » 07 May 2011, 18:19

Ah, I do need to learn to remember to use debug more, before I ask questions. That's a great tool.

I see the message "didn't work, not enough space 512" in the debug file. That gives me a clue.

The endgame position is a real cool five-piece ending that is a mate for black in exactly 115 moves. (It's one of those tablebase positions where the winning side has to make a whole bunch of perfect moves to win. Any deviation and it's a draw.)

When two engines go head to head, no problem.
But when in Analysis Mode, I'm now guessing the string is too long to fit into the pane, or probably into a string buffer set aside for that?

Note the engine's suggested move, that I saw flashed in the pane for a brief second, was Ne3, and that's not the correct move, which is Ne7. So it's not just a matter of not not seeing things in the pane... the engine didn't recognize the proper move, unless going head to head.

Code: Select all
recognized 'normal' (-1) as variant normal
recognized 'normal' (-1) as variant normal
WinBoard 4.5.2 + Polyglot1466b
Reset(1, 0) from gameMode 0
recognized 'normal' (-1) as variant normal
GameEnds(0, (null), 2)
shuffleOpenings = 0
TC string = ':300'
mps=0 tc=300000 inc=0
TC string = ':300'
mps=0 tc=300000 inc=0
StartChildProcess (dir=".") Polyglot1466b _PG/houdini15.ini
540 >first : xboard
protover 2
549 <first : PolyGlot 1.4.66b by Fabien Letouzey.
551 <first : feature done=0
551 >first : accepted done
552 <first : feature analyze=1
552 >first : accepted analyze
552 <first : feature colors=0
553 >first : accepted colors
553 <first : feature draw=1
553 >first : accepted draw
553 <first : feature ics=1
553 >first : accepted ics
553 <first : feature myname="Houdini 1.5"
553 >first : accepted myname
553 <first : feature name=1
553 >first : accepted name
553 <first : feature pause=0
553 >first : accepted pause
554 <first : feature ping=1
554 >first : accepted ping
554 <first : feature playother=1
554 >first : accepted playother
554 <first : feature sigint=1
554 >first : accepted sigint
554 <first : feature reuse=1
554 >first : accepted reuse
554 <first : feature san=0
554 >first : accepted san
555 <first : feature setboard=1
555 >first : accepted setboard
555 <first : feature sigint=0
555 >first : accepted sigint
555 <first : feature sigterm=0
555 >first : accepted sigterm
555 <first : feature time=1
555 >first : accepted time
555 <first : feature usermove=1
555 >first : accepted usermove
555 <first : feature nps=1
556 >first : accepted nps
556 <first : feature memory=1
556 >first : accepted memory
556 <first : feature smp=1
556 >first : accepted smp
556 <first : feature egt="gaviota"
556 >first : accepted egt
556 <first : feature variants="normal"
556 >first : accepted variants
556 <first : feature option="Clear Hash -button"
557 >first : accepted option
557 <first : feature option="Split_Depth -spin 10 8 99"
557 >first : accepted option
557 <first : feature option="Contempt -spin 1 0 2"
557 >first : accepted option
557 <first : feature option="Analysis_Contempt -check 0"
557 >first : accepted option
557 <first : feature option="MultiPV -spin 2 1 16"
558 >first : accepted option
558 <first : feature option="GaviotaTbCache -spin 16 4 1024"
558 >first : accepted option
558 <first : feature option="Hard_Probe_Depth -spin 24 2 99"
558 >first : accepted option
558 <first : feature option="Soft_Probe_Depth -spin 16 2 99"
558 >first : accepted option
558 <first : feature option="Polyglot SettingsFile -file _PG/houdini15.ini"
559 >first : accepted option
559 <first : feature option="Polyglot Log -check 1"
559 >first : accepted option
559 <first : feature option="Polyglot LogFile -file houdini15.log"
559 >first : accepted option
559 <first : feature option="Polyglot Resign -check 0"
559 >first : accepted option
560 <first : feature option="Polyglot ResignMoves -spin 3 0 10000"
560 >first : accepted option
560 <first : feature option="Polyglot ResignScore -spin 800 0 10000"
560 >first : accepted option
560 <first : feature option="Polyglot Book -check 1"
560 >first : accepted option
560 <first : feature option="Polyglot BookFile -file D:\chess\Books\TDDBII.bin"
561 >first : accepted option
561 <first : feature option="Polyglot BookRandom -check 1"
561 >first : accepted option
561 <first : feature option="Polyglot BookDepth -spin 256 0 256"
561 >first : accepted option
561 <first : feature option="Polyglot STFudge -spin 20 0 1000"
561 >first : accepted option
561 <first : feature option="Polyglot SyncStop -check 0"
562 >first : accepted option
562 <first : feature option="Polyglot Save -save"
562 >first : accepted option
562 <first : feature done=1
562 >first : accepted done
582 >first : memory 1028
582 >first : cores 4
582 >first : new
random
582 >first : ics -
582 >first : level 0 5 0
582 >first : post
582 >first : hard
582 >first : easy
582 >first : ping 1
1116 <first : pong 1
5305 >first : force
TC string = ':300'
mps=0 tc=300000 inc=0
TC string = ':300'
mps=0 tc=300000 inc=0
47286 >first : memory 1028
47287 >first : cores 4
47287 >first : new
random
47287 >first : ics -
47287 >first : level 0 5 0
47287 >first : post
47287 >first : hard
47287 >first : easy
47287 >first : ping 2
47287 >first : force
write FEN 50-move: 0 1 1
e1. p=-4
47287 >first : setboard 8/k7/8/4Kn2/8/P7/8/1n6 b - - 0 1
EditPosDone
47295 >first : analyze
47295 <first : pong 2
47494 <first : 1 -9771 11 1129 Ne7 Kd6 Nc8+ Kc5 Ka6 Kc4 Nb6+ Kb4 Nd5+ Kc4 Nf4 Kb4 Nd3+ Kb3 Ne1 Kb4 Nc2+ Kb3 Nd4+ Kc4 Nf3 Kd3 Kb5 a4+ Ka5 Kc2 Nbd2 Kc3 Nf1 Kc2 N1h2 Kb1 Ne1 Kc1 Nd3+ Kc2 Nb4+ Kd1 Nf3 Ke2 Nd4+ Kd2 Ne6 Kc1 Nc5 Kd1 Nba6 Ke1 Kb4 Ke2 Kc3 Ke3 Kc4 a5 Kc3 Ke2 Kd4 Kf3 Nd3 Ke2 Ke4 Kd2 Nf4 Kc2 Ke3 Kc3 Nd3 Kc4 Ke4 Kb5 Ndb4 Kc4 Ke5 Kc3 Kd5 Kd2 Kd4 Ke2 Ke4 Kf2 Nc2 Kg3 Ne3 Kh4 Kf4 Kh5 Nd5 Kg6 Kg4 Kg7 Kg5 Kf7 Kf5 Kg7 Ne7 Kh6 Nc8 Kg7 Nc7 Kh6 Kg4 Kg6 Nd5 Kh6 Na7 Kg6 Nc6 Kh6 Nf4 Kg7 Kf5 Kf7 Ke5 a6 Na7 Ke7 Ng6+ Kf7 Kf5 Kg7 Ne5 Kh7 Kf6 Kh6 Ng6 Kh5 Kf5 Kh6 Nf4 Kg7 Ke6 Kg8 Kf6 Kf8 Ne2 Ke8 Nc3 Kd7 Ncb5 Ke8 Nd6+ Kf8 Kf5 Kg7 Kg5 Kh8 Kf6 Kh7 Nf5 Kg8 Ke7 Kh8 Kf8 Kh7 Kf7 Kh8 Kg6 Kg8 Ne7+ Kf8 Kf6 Ke8 Ng6 Kd8 Ke5 Kd7 Kd5 Kd8 Kd6 Ke8 Ke6 Kd8 Ne5 Ke8 Nd7 Kd8 Nf6 Kc7 Ke7 Kb7 Kd6 Kb6 Nd7+ Kb7 Ne5 Kb6 Nec6 Kb7 Ne7 Kb6 Nec8+ Ka5 Kc5 Ka4 Kc4 Ka3 Kc3 Ka2 Nd6 Ka3 Ndb5+ Ka2 Kc2 Ka1 Na3 Ka2 Nc4 Ka1 Kb3 Kb1 Nb2 Kc1 Kc3 Kb1 Nd3 Ka2 Kb4 Kb1 Kb3 Ka1 Kc2 Ka2 Nb5 a7 Nc1+ Ka1 Nc3 a8=Q Nb3#
safeStrCpy: copying [1] -97.71 Ne7 Kd6 Nc8+ Kc5 Ka6 Kc4 Nb6+ Kb4 Nd5+ Kc4 Nf4 Kb4 Nd3+ Kb3 Ne1 Kb4 Nc2+ Kb3 Nd4+ Kc4 Nf3 Kd3 Kb5 a4+ Ka5 Kc2 Nbd2 Kc3 Nf1 Kc2 N1h2 Kb1 Ne1 Kc1 Nd3+ Kc2 Nb4+ Kd1 Nf3 Ke2 Nd4+ Kd2 Ne6 Kc1 Nc5 Kd1 Nba6 Ke1 Kb4 Ke2 Kc3 Ke3 Kc4 a5 Kc3 Ke2 Kd4 Kf3 Nd3 Ke2 Ke4 Kd2 Nf4 Kc2 Ke3 Kc3 Nd3 Kc4 Ke4 Kb5 Ndb4 Kc4 Ke5 Kc3 Kd5 Kd2 Kd4 Ke2 Ke4 Kf2 Nc2 Kg3 Ne3 Kh4 Kf4 Kh5 Nd5 Kg6 Kg4 Kg7 Kg5 Kf7 Kf5 Kg7 Ne7 Kh6 Nc8 Kg7 Nc7 Kh6 Kg4 Kg6 Nd5 Kh6 Na7 Kg6 Nc6 Kh6 Nf4 Kg7 Kf5 Kf7 Ke5 a6 Na7 Ke7 Ng6+ Kf7 Kf5 Kg7 Ne5 Kh7 Kf6 Kh6 Ng6 Kh5 Kf5 Kh6 Nf4 Kg7 Ke6 Kg8 Kf6 Kf8 Ne2 Ke8 Nc3 Kd7 Ncb5 Ke8 Nd6+ Kf8 Kf5 Kg7 Kg5 Kh8 Kf6 Kh7 Nf5 Kg8 Ke7 Kh8 Kf8 Kh7 Kf7 Kh8 Kg6 Kg8 Ne7+ Kf8 Kf6 Ke8 Ng6 Kd8 Ke5 Kd7 Kd5 Kd8 Kd6 Ke8 Ke6 Kd8 Ne5 Ke8 Nd7 Kd8 Nf6 Kc7 Ke7 Kb7 Kd6 Kb6 Nd7+ Kb7 Ne5 Kb6 Nec6 Kb7 Ne7 Kb6 Nec8+ Ka5 Kc5 Ka4 Kc4 Ka3 Kc3 Ka2 Nd6 Ka3 Ndb5+ Ka2 Kc2 Ka1 Na3 Ka2 Nc4 Ka1 Kb3 Kb1 Nb2 Kc1 Kc3 Kb1 Nd3 Ka2 Kb4 Kb1 Kb3 Ka1 Kc2 Ka2 Nb5 a7 Nc1+ Ka1 Nc3 a8=Q Nb3# into [1] -97.71 Ne7 Kd6 Nc8+ Kc5 Ka6 Kc4 Nb6+ Kb4 Nd5+ Kc4 Nf4 Kb4 Nd3+ Kb3 Ne1 Kb4 Nc2+ Kb3 Nd4+ Kc4 Nf3 Kd3 Kb5 a4+ Ka5 Kc2 Nbd2 Kc3 Nf1 Kc2 N1h2 Kb1 Ne1 Kc1 Nd3+ Kc2 Nb4+ Kd1 Nf3 Ke2 Nd4+ Kd2 Ne6 Kc1 Nc5 Kd1 Nba6 Ke1 Kb4 Ke2 Kc3 Ke3 Kc4 a5 Kc3 Ke2 Kd4 Kf3 Nd3 Ke2 Ke4 Kd2 Nf4 Kc2 Ke3 Kc3 Nd3 Kc4 Ke4 Kb5 Ndb4 Kc4 Ke5 Kc3 Kd5 Kd2 Kd4 Ke2 Ke4 Kf2 Nc2 Kg3 Ne3 Kh4 Kf4 Kh5 Nd5 Kg6 Kg4 Kg7 Kg5 Kf7 Kf5 Kg7 Ne7 Kh6 Nc8 Kg7 Nc7 Kh6 Kg4 Kg6 Nd5 Kh6 Na7 Kg6 Nc6 Kh6 Nf4 Kg7 Kf5 Kf7 Ke5 a6 Na7 Ke7 Ng6+ Kf7 Kf5 Kg7 Ne5 Kh7  didn't work, not enough space 512
47504 <first : 1 +0 11 1129 Ne3
49294 >first : .
49294 <first : stat01: 11 1129 1 0 0
51308 >first : .
51308 <first : stat01: 11 1129 1 0 0
53319 >first : .
53319 <first : stat01: 11 1129 1 0 0
55331 >first : .
55331 <first : stat01: 11 1129 1 0 0
57344 >first : .
57344 <first : stat01: 11 1129 1 0 0
59358 >first : .
59358 <first : stat01: 11 1129 1 0 0
61368 >first : .
61368 <first : stat01: 11 1129 1 0 0
63380 >first : .
63380 <first : stat01: 11 1129 1 0 0
65393 >first : .
65393 <first : stat01: 11 1129 1 0 0
67405 >first : .
67405 <first : stat01: 11 1129 1 0 0
69417 >first : .
69417 <first : stat01: 11 1129 1 0 0
71429 >first : .
71429 <first : stat01: 11 1129 1 0 0
73442 >first : .
73442 <first : stat01: 11 1129 1 0 0
75454 >first : .
75454 <first : stat01: 11 1129 1 0 0
76085 >first : exit
StartChildProcess (dir=".") Polyglot1466b _PG/houdini15.ini
76586 >second: xboard
protover 2
76587 <second: PolyGlot 1.4.66b by Fabien Letouzey.
76587 <second: feature done=0
76588 >second: accepted done
76588 <second: feature analyze=1
76588 >second: accepted analyze
76588 <second: feature colors=0
76588 >second: accepted colors
76588 <second: feature draw=1
76588 >second: accepted draw
76588 <second: feature ics=1
76588 >second: accepted ics
76588 <second: feature myname="Houdini 1.5"
76589 >second: accepted myname
76589 <second: feature name=1
76589 >second: accepted name
76589 <second: feature pause=0
76589 >second: accepted pause
76589 <second: feature ping=1
76589 >second: accepted ping
76589 <second: feature playother=1
76589 >second: accepted playother
76589 <second: feature sigint=1
76590 >second: accepted sigint
76590 <second: feature reuse=1
76590 >second: accepted reuse
76590 <second: feature san=0
76590 >second: accepted san
76590 <second: feature setboard=1
76590 >second: accepted setboard
76590 <second: feature sigint=0
76590 >second: accepted sigint
76590 <second: feature sigterm=0
76591 >second: accepted sigterm
76591 <second: feature time=1
76591 >second: accepted time
76591 <second: feature usermove=1
76591 >second: accepted usermove
76591 <second: feature nps=1
76591 >second: accepted nps
76591 <second: feature memory=1
76591 >second: accepted memory
76591 <second: feature smp=1
76591 >second: accepted smp
76592 <second: feature egt="gaviota"
76592 >second: accepted egt
76592 <second: feature variants="normal"
76592 >second: accepted variants
76592 <second: feature option="Clear Hash -button"
76592 >second: accepted option
76592 <second: feature option="Split_Depth -spin 10 8 99"
76592 >second: accepted option
76593 <second: feature option="Contempt -spin 1 0 2"
76593 >second: accepted option
76593 <second: feature option="Analysis_Contempt -check 0"
76593 >second: accepted option
76593 <second: feature option="MultiPV -spin 2 1 16"
76593 >second: accepted option
76593 <second: feature option="GaviotaTbCache -spin 16 4 1024"
76594 >second: accepted option
76594 <second: feature option="Hard_Probe_Depth -spin 24 2 99"
76594 >second: accepted option
76594 <second: feature option="Soft_Probe_Depth -spin 16 2 99"
76594 >second: accepted option
76594 <second: feature option="Polyglot SettingsFile -file _PG/houdini15.ini"
76594 >second: accepted option
76595 <second: feature option="Polyglot Log -check 1"
76595 >second: accepted option
76595 <second: feature option="Polyglot LogFile -file houdini15.log"
76595 >second: accepted option
76595 <second: feature option="Polyglot Resign -check 0"
76595 >second: accepted option
76595 <second: feature option="Polyglot ResignMoves -spin 3 0 10000"
76596 >second: accepted option
76596 <second: feature option="Polyglot ResignScore -spin 800 0 10000"
76596 >second: accepted option
76596 <second: feature option="Polyglot Book -check 1"
76596 >second: accepted option
76596 <second: feature option="Polyglot BookFile -file D:\chess\Books\TDDBII.bin"
76597 >second: accepted option
76597 <second: feature option="Polyglot BookRandom -check 1"
76597 >second: accepted option
76597 <second: feature option="Polyglot BookDepth -spin 256 0 256"
76597 >second: accepted option
76597 <second: feature option="Polyglot STFudge -spin 20 0 1000"
76597 >second: accepted option
76598 <second: feature option="Polyglot SyncStop -check 0"
76598 >second: accepted option
76598 <second: feature option="Polyglot Save -save"
76598 >second: accepted option
76598 <second: feature done=1
76598 >second: accepted done
76609 >second: memory 1028
76609 >second: cores 4
76609 >second: new
random
76609 >second: ics -
76609 >second: level 0 5 0
76609 >second: post
76609 >second: hard
76609 >second: easy
76609 >second: ping 1
76609 >second: force
77119 <second: pong 1
write FEN 50-move: 0 1 1
e1. p=-4
77128 >second: setboard 8/k7/8/4Kn2/8/P7/8/1n6 b - - 0 1
Two Machines
77128 >first : computer
77128 >first : name Houdini 1.5
77128 >second: computer
77128 >second: name Houdini 1.5
TC string = ':300'
mps=0 tc=300000 inc=0
TC string = ':300'
mps=0 tc=300000 inc=0
time odds: 1.000000 1.000000
77129 >second: time 30000
77129 >second: otim 30000
book hit = (NULL)
77129 >second: go
nps: w=-1, b=-1
77212 <second: 1 -9771 0 49 Ne7
77214 <second: 1 +0 0 49 Ne3
77215 <second: 1 +0 0 49 Ne3
77215 <second: move f5e7
machine move 1, castling = 7 0 45 7 0 45
7 0 45 7 0 45 Legality test? f5e7
7 0 45 7 0 45 Legality test? f5e7
(7,0) (0,0) (45,0) (7,7) (0,7) (45,7) castling rights
TC string = ':300'
mps=0 tc=300000 inc=0
CoordsToAlgebraic, piece=23 (5,4)-(4,6) -
MateTest: K=1, my=2, his=3
move: f5e7
, parse: Ne7 (
)
MateTest: K=1, my=2, his=3
repeat test fmm=2 bmm=1 ep=-4, reps=4
2 ep=-4
1 ep=-4
time odds: 1.000000 1.000000
77217 >first : time 30000
77217 >first : otim 29991
book hit = (NULL)
77217 >first : usermove 77217 >first : f5e7
77217 >first : go
silence
77432 <first : 1 -9772 0 245 Kd6 Nc8+ Kc5 Ka6 Kc4 Nb6+ Kb4 Nd5+ Kc4 Nf4 Kb4 Nd3+ Kb3 Ne1 Kb4 Nc2+ Kb3 Nd4+ Kc4 Nf3 Kd3 Kb5 a4+ Ka5 Kc2 Nbd2 Kc3 Nf1 Kc2 N1h2 Kb1 Ne1 Kc1 Nd3+ Kc2 Nb4+ Kd1 Nf3 Ke2 Nd4+ Kd2 Ne6 Kc1 Nc5 Kd1 Nba6 Ke1 Kb4 Ke2 Kc3 Ke3 Kc4 a5 Kc3 Ke2 Kd4 Kf3 Nd3 Ke2 Ke4 Kd2 Nf4 Kc2 Ke3 Kc3 Nd3 Kc4 Ke4 Kb5 Ndb4 Kc4 Ke5 Kc3 Kd5 Kd2 Kd4 Ke2 Ke4 Kf2 Nc2 Kg3 Ne3 Kh4 Kf4 Kh5 Nd5 Kg6 Kg4 Kg7 Kg5 Kf7 Kf5 Kg7 Ne7 Kh6 Nc8 Kg7 Nc7 Kh6 Kg4 Kg6 Nd5 Kh6 Na7 Kg6 Nc6 Kh6 Nf4 Kg7 Kf5 Kf7 Ke5 a6 Na7 Ke7 Ng6+ Kf7 Kf5 Kg7 Ne5 Kh7 Kf6 Kh6 Ng6 Kh5 Kf5 Kh6 Nf4 Kg7 Ke6 Kg8 Kf6 Kf8 Ne2 Ke8 Nc3 Kd7 Ncb5 Ke8 Nd6+ Kf8 Kf5 Kg7 Kg5 Kh8 Kf6 Kh7 Nf5 Kg8 Ke7 Kh8 Kf8 Kh7 Kf7 Kh8 Kg6 Kg8 Ne7+ Kf8 Kf6 Ke8 Ng6 Kd8 Ke5 Kd7 Kd5 Kd8 Kd6 Ke8 Ke6 Kd8 Ne5 Ke8 Nd7 Kd8 Nf6 Kc7 Ke7 Kb7 Kd6 Kb6 Nd7+ Kb7 Ne5 Kb6 Nec6 Kb7 Ne7 Kb6 Nec8+ Ka5 Kc5 Ka4 Kc4 Ka3 Kc3 Ka2 Nd6 Ka3 Ndb5+ Ka2 Kc2 Ka1 Na3 Ka2 Nc4 Ka1 Kb3 Kb1 Nb2 Kc1 Kc3 Kb1 Nd3 Ka2 Kb4 Kb1 Kb3 Ka1 Kc2 Ka2 Nb5 a7 Nc1+ Ka1 Nc3 a8=Q Nb3#
safeStrCpy: copying [1]W-97.72 Kd6 Nc8+ Kc5 Ka6 Kc4 Nb6+ Kb4 Nd5+ Kc4 Nf4 Kb4 Nd3+ Kb3 Ne1 Kb4 Nc2+ Kb3 Nd4+ Kc4 Nf3 Kd3 Kb5 a4+ Ka5 Kc2 Nbd2 Kc3 Nf1 Kc2 N1h2 Kb1 Ne1 Kc1 Nd3+ Kc2 Nb4+ Kd1 Nf3 Ke2 Nd4+ Kd2 Ne6 Kc1 Nc5 Kd1 Nba6 Ke1 Kb4 Ke2 Kc3 Ke3 Kc4 a5 Kc3 Ke2 Kd4 Kf3 Nd3 Ke2 Ke4 Kd2 Nf4 Kc2 Ke3 Kc3 Nd3 Kc4 Ke4 Kb5 Ndb4 Kc4 Ke5 Kc3 Kd5 Kd2 Kd4 Ke2 Ke4 Kf2 Nc2 Kg3 Ne3 Kh4 Kf4 Kh5 Nd5 Kg6 Kg4 Kg7 Kg5 Kf7 Kf5 Kg7 Ne7 Kh6 Nc8 Kg7 Nc7 Kh6 Kg4 Kg6 Nd5 Kh6 Na7 Kg6 Nc6 Kh6 Nf4 Kg7 Kf5 Kf7 Ke5 a6 Na7 Ke7 Ng6+ Kf7 Kf5 Kg7 Ne5 Kh7 Kf6 Kh6 Ng6 Kh5 Kf5 Kh6 Nf4 Kg7 Ke6 Kg8 Kf6 Kf8 Ne2 Ke8 Nc3 Kd7 Ncb5 Ke8 Nd6+ Kf8 Kf5 Kg7 Kg5 Kh8 Kf6 Kh7 Nf5 Kg8 Ke7 Kh8 Kf8 Kh7 Kf7 Kh8 Kg6 Kg8 Ne7+ Kf8 Kf6 Ke8 Ng6 Kd8 Ke5 Kd7 Kd5 Kd8 Kd6 Ke8 Ke6 Kd8 Ne5 Ke8 Nd7 Kd8 Nf6 Kc7 Ke7 Kb7 Kd6 Kb6 Nd7+ Kb7 Ne5 Kb6 Nec6 Kb7 Ne7 Kb6 Nec8+ Ka5 Kc5 Ka4 Kc4 Ka3 Kc3 Ka2 Nd6 Ka3 Ndb5+ Ka2 Kc2 Ka1 Na3 Ka2 Nc4 Ka1 Kb3 Kb1 Nb2 Kc1 Kc3 Kb1 Nd3 Ka2 Kb4 Kb1 Kb3 Ka1 Kc2 Ka2 Nb5 a7 Nc1+ Ka1 Nc3 a8=Q Nb3# into [1]W-97.72 Kd6 Nc8+ Kc5 Ka6 Kc4 Nb6+ Kb4 Nd5+ Kc4 Nf4 Kb4 Nd3+ Kb3 Ne1 Kb4 Nc2+ Kb3 Nd4+ Kc4 Nf3 Kd3 Kb5 a4+ Ka5 Kc2 Nbd2 Kc3 Nf1 Kc2 N1h2 Kb1 Ne1 Kc1 Nd3+ Kc2 Nb4+ Kd1 Nf3 Ke2 Nd4+ Kd2 Ne6 Kc1 Nc5 Kd1 Nba6 Ke1 Kb4 Ke2 Kc3 Ke3 Kc4 a5 Kc3 Ke2 Kd4 Kf3 Nd3 Ke2 Ke4 Kd2 Nf4 Kc2 Ke3 Kc3 Nd3 Kc4 Ke4 Kb5 Ndb4 Kc4 Ke5 Kc3 Kd5 Kd2 Kd4 Ke2 Ke4 Kf2 Nc2 Kg3 Ne3 Kh4 Kf4 Kh5 Nd5 Kg6 Kg4 Kg7 Kg5 Kf7 Kf5 Kg7 Ne7 Kh6 Nc8 Kg7 Nc7 Kh6 Kg4 Kg6 Nd5 Kh6 Na7 Kg6 Nc6 Kh6 Nf4 Kg7 Kf5 Kf7 Ke5 a6 Na7 Ke7 Ng6+ Kf7 Kf5 Kg7 Ne5 Kh7 Kf6 
77441 <first : 1 -9798 0 245 Kd4 Nd2
77442 <first : 1 -9798 0 245 Kd4 Nd2
77443 <first : move e5d6
machine move 2, castling = 7 0 45 7 0 45
7 0 45 7 0 45 Legality test? e5d6
7 0 45 7 0 45 Legality test? e5d6
(7,0) (0,0) (45,0) (7,7) (0,7) (45,7) castling rights
TC string = ':300'
mps=0 tc=300000 inc=0
CoordsToAlgebraic, piece=21 (4,4)-(3,5) -
MateTest: K=1, my=3, his=2
move: e5d6
, parse: Kd6 (
)
MateTest: K=1, my=3, his=2
repeat test fmm=3 bmm=1 ep=-4, reps=4
3 ep=-4
2 ep=-4
1 ep=-4
time odds: 1.000000 1.000000
77444 >second: time 29991
77444 >second: otim 29977
book hit = (NULL)
77444 >second: usermove 77444 >second: e5d6
silence
77623 <second: 1 -9773 0 192 Nc8+ Kc7
77623 <second: 1 +0 0 192 Ng6
77624 <second: 1 +0 0 192 Ng6
77624 <second: move e7c8
machine move 3, castling = 7 0 45 7 0 45
7 0 45 7 0 45 Legality test? e7c8
7 0 45 7 0 45 Legality test? e7c8
(7,0) (0,0) (45,0) (7,7) (0,7) (45,7) castling rights
TC string = ':300'
mps=0 tc=300000 inc=0
CoordsToAlgebraic, piece=23 (4,6)-(2,7) -
MateTest: K=1, my=2, his=3
move: e7c8
, parse: Nc8+ (
)
MateTest: K=1, my=2, his=3
repeat test fmm=4 bmm=1 ep=-4, reps=4
4 ep=-4
3 ep=-4
2 ep=-4
1 ep=-4
time odds: 1.000000 1.000000
77626 >first : time 29977
77626 >first : otim 29973
book hit = (NULL)
77626 >first : usermove 77626 >first : e7c8
silence
77840 <first : 1 -9774 0 117 Kc5 Ka6 Kc4 Nb6+ Kb4 Nd5+ Kc4 Nf4 Kb4 Nd3+ Kb3 Ne1 Kb4 Nc2+ Kb3 Nd4+ Kc4 Nf3 Kd3 Kb5 a4+ Ka5 Kc2 Nbd2 Kc3 Nf1 Kc2 N1h2 Kb1 Ne1 Kc1 Nd3+ Kc2 Nb4+ Kd1 Nf3 Ke2 Nd4+ Kd2 Ne6 Kc1 Nc5 Kd1 Nba6 Ke1 Kb4 Ke2 Kc3 Ke3 Kc4 a5 Kc3 Ke2 Kd4 Kf3 Nd3 Ke2 Ke4 Kd2 Nf4 Kc2 Ke3 Kc3 Nd3 Kc4 Ke4 Kb5 Ndb4 Kc4 Ke5 Kc3 Kd5 Kd2 Kd4 Ke2 Ke4 Kf2 Nc2 Kg3 Ne3 Kh4 Kf4 Kh5 Nd5 Kg6 Kg4 Kg7 Kg5 Kf7 Kf5 Kg7 Ne7 Kh6 Nc8 Kg7 Nc7 Kh6 Kg4 Kg6 Nd5 Kh6 Na7 Kg6 Nc6 Kh6 Nf4 Kg7 Kf5 Kf7 Ke5 a6 Na7 Ke7 Ng6+ Kf7 Kf5 Kg7 Ne5 Kh7 Kf6 Kh6 Ng6 Kh5 Kf5 Kh6 Nf4 Kg7 Ke6 Kg8 Kf6 Kf8 Ne2 Ke8 Nc3 Kd7 Ncb5 Ke8 Nd6+ Kf8 Kf5 Kg7 Kg5 Kh8 Kf6 Kh7 Nf5 Kg8 Ke7 Kh8 Kf8 Kh7 Kf7 Kh8 Kg6 Kg8 Ne7+ Kf8 Kf6 Ke8 Ng6 Kd8 Ke5 Kd7 Kd5 Kd8 Kd6 Ke8 Ke6 Kd8 Ne5 Ke8 Nd7 Kd8 Nf6 Kc7 Ke7 Kb7 Kd6 Kb6 Nd7+ Kb7 Ne5 Kb6 Nec6 Kb7 Ne7 Kb6 Nec8+ Ka5 Kc5 Ka4 Kc4 Ka3 Kc3 Ka2 Nd6 Ka3 Ndb5+ Ka2 Kc2 Ka1 Na3 Ka2 Nc4 Ka1 Kb3 Kb1 Nb2 Kc1 Kc3 Kb1 Nd3 Ka2 Kb4 Kb1 Kb3 Ka1 Kc2 Ka2 Nb5 a7 Nc1+ Ka1 Nc3 a8=Q Nb3#
safeStrCpy: copying [1]W-97.74 Kc5 Ka6 Kc4 Nb6+ Kb4 Nd5+ Kc4 Nf4 Kb4 Nd3+ Kb3 Ne1 Kb4 Nc2+ Kb3 Nd4+ Kc4 Nf3 Kd3 Kb5 a4+ Ka5 Kc2 Nbd2 Kc3 Nf1 Kc2 N1h2 Kb1 Ne1 Kc1 Nd3+ Kc2 Nb4+ Kd1 Nf3 Ke2 Nd4+ Kd2 Ne6 Kc1 Nc5 Kd1 Nba6 Ke1 Kb4 Ke2 Kc3 Ke3 Kc4 a5 Kc3 Ke2 Kd4 Kf3 Nd3 Ke2 Ke4 Kd2 Nf4 Kc2 Ke3 Kc3 Nd3 Kc4 Ke4 Kb5 Ndb4 Kc4 Ke5 Kc3 Kd5 Kd2 Kd4 Ke2 Ke4 Kf2 Nc2 Kg3 Ne3 Kh4 Kf4 Kh5 Nd5 Kg6 Kg4 Kg7 Kg5 Kf7 Kf5 Kg7 Ne7 Kh6 Nc8 Kg7 Nc7 Kh6 Kg4 Kg6 Nd5 Kh6 Na7 Kg6 Nc6 Kh6 Nf4 Kg7 Kf5 Kf7 Ke5 a6 Na7 Ke7 Ng6+ Kf7 Kf5 Kg7 Ne5 Kh7 Kf6 Kh6 Ng6 Kh5 Kf5 Kh6 Nf4 Kg7 Ke6 Kg8 Kf6 Kf8 Ne2 Ke8 Nc3 Kd7 Ncb5 Ke8 Nd6+ Kf8 Kf5 Kg7 Kg5 Kh8 Kf6 Kh7 Nf5 Kg8 Ke7 Kh8 Kf8 Kh7 Kf7 Kh8 Kg6 Kg8 Ne7+ Kf8 Kf6 Ke8 Ng6 Kd8 Ke5 Kd7 Kd5 Kd8 Kd6 Ke8 Ke6 Kd8 Ne5 Ke8 Nd7 Kd8 Nf6 Kc7 Ke7 Kb7 Kd6 Kb6 Nd7+ Kb7 Ne5 Kb6 Nec6 Kb7 Ne7 Kb6 Nec8+ Ka5 Kc5 Ka4 Kc4 Ka3 Kc3 Ka2 Nd6 Ka3 Ndb5+ Ka2 Kc2 Ka1 Na3 Ka2 Nc4 Ka1 Kb3 Kb1 Nb2 Kc1 Kc3 Kb1 Nd3 Ka2 Kb4 Kb1 Kb3 Ka1 Kc2 Ka2 Nb5 a7 Nc1+ Ka1 Nc3 a8=Q Nb3# into [1]W-97.74 Kc5 Ka6 Kc4 Nb6+ Kb4 Nd5+ Kc4 Nf4 Kb4 Nd3+ Kb3 Ne1 Kb4 Nc2+ Kb3 Nd4+ Kc4 Nf3 Kd3 Kb5 a4+ Ka5 Kc2 Nbd2 Kc3 Nf1 Kc2 N1h2 Kb1 Ne1 Kc1 Nd3+ Kc2 Nb4+ Kd1 Nf3 Ke2 Nd4+ Kd2 Ne6 Kc1 Nc5 Kd1 Nba6 Ke1 Kb4 Ke2 Kc3 Ke3 Kc4 a5 Kc3 Ke2 Kd4 Kf3 Nd3 Ke2 Ke4 Kd2 Nf4 Kc2 Ke3 Kc3 Nd3 Kc4 Ke4 Kb5 Ndb4 Kc4 Ke5 Kc3 Kd5 Kd2 Kd4 Ke2 Ke4 Kf2 Nc2 Kg3 Ne3 Kh4 Kf4 Kh5 Nd5 Kg6 Kg4 Kg7 Kg5 Kf7 Kf5 Kg7 Ne7 Kh6 Nc8 Kg7 Nc7 Kh6 Kg4 Kg6 Nd5 Kh6 Na7 Kg6 Nc6 Kh6 Nf4 Kg7 Kf5 Kf7 Ke5 a6 Na7 Ke7 Ng6+ Kf7 Kf5 Kg7 Ne5 Kh7 Kf6 Kh6 Ng6 K didn't work, not enough space 512
EdCollins
 
Posts: 71
Joined: 16 May 2010, 09:05
Location: Southern California

Re: Slight problem/glitch with Gaviota tablebases

Postby H.G.Muller » 07 May 2011, 19:16

Well, the PV is clipped, for sure. But that doesn't explain why it is not displayed.

When I remove the error message generated by WinBoard itself, and shorten the PV a bit,we get this:

Code: Select all
47295 >first : analyze
47295 <first : pong 2
47494 <first : 1 -9771 11 1129 Ne7 Kd6 Nc8+ Kc5 Ka6 Kc4 Nb6+ Kb4 Nd5+ ... Nc1+ Ka1 Nc3 a8=Q Nb3#
47504 <first : 1 +0 11 1129 Ne3
49294 >first : .
49294 <first : stat01: 11 1129 1 0 0


So clearly the engine sends two PVs, the second one only a single move long (Ne3), with a draw score. So presumably that is the best move of the 1-ply iteration, as the score of the long PV was rather low. After that the engine is polled for periodic updates,which also contain a depth=1 value. If Ne3 is not the best move, it is the engine that is in error for sending it.

Now I think part of your problem is that WinBoard will clear the engine-output display when it gets a PV of depth 1, because it thinks it starts a new search. It could be that the stat01 messages for the periodic updates also have this effect, which would then be the reason the Ne3 disappears. You can test that by switching periodic updates off. Then the Ne3 should at least hang there forever. You would still lose the Ne7 PV, but it was not the best move of the iteration anyway, so that is forgivable.

I think the main problem is that the engine is lying about its depth. It should not present a PV of more than 100 moves as 1 ply. It is clear that it is aware that it is lying, because otherwise, why wouldn't it continue with a 2-ply search? It knows that what it has is already worth more than 1 ply (or in fact valid to infinite depth), and this is why it stops deepening. So there is no excuse for claiming it is only a 1 ply result.
User avatar
H.G.Muller
 
Posts: 3453
Joined: 16 Nov 2005, 12:02
Location: Diemen, NL

Re: Slight problem/glitch with Gaviota tablebases

Postby EdCollins » 07 May 2011, 19:47

Correct. When I turn periodic updates off, 1...Ne3 appears in the pane and stays there. (Again, while in Analysis Mode.)

And then switching from "Analysis Mode" to "Two Machines" does, as mentioned before, begin the long sequence of both engine following their best moves, which leads to mate in 115 for Black, beginning with 1...Ne7, and not 1...Ne3.

Correct again - it does appear to be an engine specific problem. When I switch from Houdini to Critter, an engine which also uses the Gaviota tablebases, Analysis Mode works fine. The mate sequence appears immediately in the window, and stays there, with no other engine analysis.

As always, thanks.

Ed
EdCollins
 
Posts: 71
Joined: 16 May 2010, 09:05
Location: Southern California

I suspect gaviota tablebases contain errors.

Postby crystalclear » 23 Sep 2011, 13:44

Title: I suspect gaviota tablebases contain errors.
----------------------------------------------------------
I've had problems too, though I am new to this, so it may well be something I have done (or not done) myself that is causing my problems.

I once downloaded the chess engine gaviota-0.83-windows, and at some point in time decided that having some tablesbases would be a good idea too.
I have written a chess engine - currently rubbish in performance - and wanted to know how to add tablebases. Gaviota seemed to have some software
source code for probing its tablebases, so I downloaded that.

On one of these forums someone asked about downloading tablesbases and there was a reply - generate your own. The reply was criticised: don't do that,
it will take days. But I thought my computer was a reasonable speed and didn't want to download lots of files. One day I saw there was an option in Gaviota to
generate the tablebases, so I let my computer run for a week and it gave me 5 men tablebases.

I then managed to get Houdini to consult my new tablebases and was happy when I tested it with Bishop and Knight versus nothing.
I beat Houdini, putting up what should have been best resistance, and thought that all was well. Then for comparison I let Houdini loose
in DEMO mode (on GUI Arena) to see what it would play for the winning side. I was surprised to find the game was DRAWN. Arrggghh!

Suspicion 1.
I suspected there might be a problem with the way Houdini was accessing the tables bases.
To rule that out, I loaded the Gaviota chess engine and let it run in Demo mode on the same starting position.
(Demo mode means that chess engines play both the black and the white moves.)
I had a single engine loaded so the same engine was playing both sides.
Since [I assume] the tablesbases give some metric on positions rather than a move to play, there is a choice of "best" moves
to be made by the chess engines and different engines are entitled to play different "optimatal" lines from a given position.
I was initially startled when Gaviota using the same Gaviota tablesbases made different moves to Houdini, but
a after a moments reflection it made sense. But then Gaviota went on to reach a draw playing against itself too.
Gaviota's sraw was by repetition. Houdini's draw was due to insufficient material after allowing a piece to be captured.

You might think that I had just picked a drawn starting position, but remember that I myself beat Houdini
from the same starting position with Houdini using the tablesbases for its defence.

So I think that narrows the problem to the tablesbases or the software that accesses them (if forexample Houdini
uses some access routines taken from Gaviota rather than home-made routines based on a tablebase description).
Is there a Gaviota tablebase format specification anywhere?
Do competition chess engines need
A. Their own tablebase format.
B. Standard (=copied?) format but generated with own code.
C. Standard format and copied is acceptable, but must be accessed by own code.
D. Standard format and accessed by a standard interface is acceptable.
My first experiments with tablebases are option D. But that smacks of plagiarism to me.

Suspicion 2.
I thought I might have corrupt tablebases.
I downloaded GTB_cp4_checksum and ran it.
This said my tablebases are correct.

Unfortunately, it didn't seem to say what values it expected for the checksums and what the checksums are.
If GTB_cp4_checksum was written before the tablebases were error free, it may well be verifying if the tablebases
are buggy rather than clean.

I believe there is a more lengthy tablebase verification procedure, but I haven't got round to that yet.
I am debating whether to find more details, eg a FEN to post here, or whether to try to verify the tablebase
somehow, or maybe even just move on to opening books and come back to this when tablebases are smaller,
more standard and more stable.

Conclusion
------------
My gut feeling is that there is a glitch in the Gaviota tablebases or their access routines caused by a minor programming error.
Gaviota and Houdini seems to play out some difficult wins eg Two knights beating a pawn instantansously (showing the tablebases are
installed and working), and counts down the distance to mate one step at a time against another tablebase engine,
or monotonically decreasing against a thinking engine. So it seems the vast majority of the tablebase content and access software
is giving correct results.

I am thinking of putting a video on youtube showing the problem.
Since I am doing this first, I can't give you a link.
But if I invent a hopefully unique string (B6012D52) for search engines to home in on, it should be easy to find.
crystalclear
 
Posts: 91
Joined: 22 Sep 2011, 14:19

Re: Slight problem/glitch with Gaviota tablebases

Postby crystalclear » 23 Sep 2011, 15:36

I am still confused. (And still using the same chess engines and Gaviota tablebases.)

I expected I'd be able to find the problem FEN and post it here - the position where the chess engine switches from thinking that the game is won to deciding that it can only draw. I copied the starting position from my youtube video of 'Houdini using the tablebases to draw a theoretically won position'
entitled "Gaviota tablebase problem B6012D52 Houdini".

Today it plays through the game and manages to win.
I very much doubt that Houdini has learnt from its mistakes - if it did that it would have learnt from its mistakes yesterday.

So I have chess engines using tablebases and that are doing different things from one day to another :x

I'd say the best thing to do here is for me to ignore the whole sequence of events unless my chess engines have another bad-hair-day,
and let's hope it doesn't happen to anyone else. Maybe it was a M$ windoze problem that went go away with an automatic update.

FEN=
8/4K2k/8/4N3/8/1B6/8/8 w - - 0 1

If anyone wants to try their engines, this is FEN of the position (give or take a move number) that confused Houdini and Gaviota last night,
but that behaves better now that my computer is sober.

I'll add a youtube video of Houdini managing to checkmate itself with the tablebases, where yesterday it could only manage a draw.
crystalclear
 
Posts: 91
Joined: 22 Sep 2011, 14:19

Re: Slight problem/glitch with Gaviota tablebases

Postby crystalclear » 23 Sep 2011, 15:58

Here are the videos, where yesterday the engines using Gaviota tablebases could only manage a draw and today they can manage a win

http://www.youtube.com/watch?v=9N1CiqFmEUc Gaviota tablebase problem B6012D52 Houdini
http://www.youtube.com/watch?v=OfHM28Jhn30 Gaviota tablebase problem B6012D52 Gaviota

http://www.youtube.com/watch?v=4T-by-dC7Ik Gaviota tablebase B6012D52 okay? Houdini
http://www.youtube.com/watch?v=OI7gaWy7CBA Gaviota tablebase B6012D52 okay? Gaviota
crystalclear
 
Posts: 91
Joined: 22 Sep 2011, 14:19

Re: Slight problem/glitch with Gaviota tablebases

Postby H.G.Muller » 23 Sep 2011, 16:20

I guess you would have a better chance getting your question answered if you posted in in the general section of the forum. This section is mainly for reporting / solving bugs and discussing featurerequests for the WinBoard GUI (and itseems you are not even using that). So not everyone might read here.

I don't know anything about Gaviota tablebases specifically, but I think there are no drawn KBNK positions with white to move except those where the black King is forking (unprotected and unprotectable) B+N, or where it has N trapped in a corner, or where moving a hanging piece away leaves a stalemate. Anyway, only positions where it is obvious within two ply that the game has ended in a draw. So if an engine fails to win KBNK, there must be an error, either in the tablebase or in the probing code.
User avatar
H.G.Muller
 
Posts: 3453
Joined: 16 Nov 2005, 12:02
Location: Diemen, NL

Re: Slight problem/glitch with Gaviota tablebases

Postby crystalclear » 24 Sep 2011, 13:42

Thanks for the reply.

Today I just tried Houdini versus Gaviota, Gaviota versus Gaviota and Houdini versus Houdini.
8/4K2k/8/4N3/8/1B6/8/8 w - - 0 1
I used the position which had resulted in drawn games in the past and all three resulted in Mate in 21
via different paths. I played the winning side against Houdini myself and that was mate in 21 too. I started with Kf6
like Gaviota (Houdini Kf7) but don't have the same confidence as Gaviota in letting the eneny king come away from the
edge of the board.

The fact that the tablesbases are giving wins today andgave wins yesterday means that the problem I had when I first installed the tablebases
was some sort of glitch, eg windows giving the same chunk of memory to two programs, or an uninitialised variable type of bug
in the tablebase probing code.

The tablebases themselves must be fine for them to work correctly today.
---------------------------------------------------------------------------------------

So as things stand, I don't think any action is really required by anyone, and its not an issue (more of an advantage maybe) if I'm posting on a rarely read thread.
My concern that I was using dodgy tablebases has gone, and I can now adapt the probing code to my board layout and piece values etc.

I am likely to start messing about with the tablebases again soon - I want to shift them from the Gaviota engine directory where the engine created them
to somewhere more logical, where Arena (a GUI) and other engines can access them. I'd like to back them up - 5 men Gaviota tablebases, and I think that in CP4 format they are just to big for a DVD - I need to check. If they are too big, they are only a little too big, and it will irritate me. Slightly better compression might solve that.

I wonder if there are options for the CP4 compression that can be tweaked to give me smaller files without the tablebase probing code needing to be changed.
Comments on CP4 compression are welcome!
crystalclear
 
Posts: 91
Joined: 22 Sep 2011, 14:19

Re: Slight problem/glitch with Gaviota tablebases

Postby matematiko » 26 Sep 2011, 03:08

Just out of curiosity, and to eliminate corruption as the culprit, have you verified the check-sum of each file in the tablebases? See topic:
http://www.open-aurec.com/wbforum/viewtopic.php?f=4&t=51396&p=195063&hilit=checksum

Regards,
One that does not live to serve, does not deserve to live.
matematiko
 
Posts: 219
Joined: 07 Dec 2008, 17:11
Location: Texas

Re: Slight problem/glitch with Gaviota tablebases

Postby H.G.Muller » 26 Sep 2011, 16:33

crystalclear wrote:The fact that the tablesbases are giving wins today andgave wins yesterday means that the problem I had when I first installed the tablebases
was some sort of glitch, eg windows giving the same chunk of memory to two programs, or an uninitialised variable type of bug
in the tablebase probing code.

That cannot really be concluded with certainty. There are often many path with the same length to mate, and it could be that only one of the paths is corrupted. So if the engine happens to pick the uncorrupted path one day, and the corrupted one the other day, it could find the mate sometimes, but other times getstuck in a loop.

Loops can occur when there exists a position in the tablebase that is listed with too low a DTM. This could divert the play from the correct path, because it promises a lower DTM than the correct move from the predecessor. But once arrived there, all legal moves would then lead to positions with larger DTM, and the best of those could be up-stream in the original path.
User avatar
H.G.Muller
 
Posts: 3453
Joined: 16 Nov 2005, 12:02
Location: Diemen, NL

Re: Slight problem/glitch with Gaviota tablebases

Postby Miguel A. Ballicora » 27 Sep 2011, 05:31

crystalclear wrote:Thanks for the reply.

Today I just tried Houdini versus Gaviota, Gaviota versus Gaviota and Houdini versus Houdini.
8/4K2k/8/4N3/8/1B6/8/8 w - - 0 1
I used the position which had resulted in drawn games in the past and all three resulted in Mate in 21
via different paths. I played the winning side against Houdini myself and that was mate in 21 too. I started with Kf6
like Gaviota (Houdini Kf7) but don't have the same confidence as Gaviota in letting the eneny king come away from the
edge of the board.

The fact that the tablesbases are giving wins today andgave wins yesterday means that the problem I had when I first installed the tablebases
was some sort of glitch, eg windows giving the same chunk of memory to two programs, or an uninitialised variable type of bug
in the tablebase probing code.

The tablebases themselves must be fine for them to work correctly today.
---------------------------------------------------------------------------------------

So as things stand, I don't think any action is really required by anyone, and its not an issue (more of an advantage maybe) if I'm posting on a rarely read thread.
My concern that I was using dodgy tablebases has gone, and I can now adapt the probing code to my board layout and piece values etc.

I am likely to start messing about with the tablebases again soon - I want to shift them from the Gaviota engine directory where the engine created them
to somewhere more logical, where Arena (a GUI) and other engines can access them. I'd like to back them up - 5 men Gaviota tablebases, and I think that in CP4 format they are just to big for a DVD - I need to check. If they are too big, they are only a little too big, and it will irritate me. Slightly better compression might solve that.

I wonder if there are options for the CP4 compression that can be tweaked to give me smaller files without the tablebase probing code needing to be changed.
Comments on CP4 compression are welcome!



This is the position in your video that is not handled properly. Gaviota played Ne5 which is horrible. If you send the command 'bk' in the console (or the book options in winboard) you will see that the TBs are fine. If you type 'analyze', gaviota plays Kg5 announcing mate in 10.

Code: Select all
setboard 8/8/6K1/3B4/8/3N2k1/8/8 w - -
d
+-----------------+
| . . . . . . . . |
| . . . . . . . . |
| . . . . . . K . |
| . . . B . . . . |    Castling:
| . . . . . . . . |    ep: -
| . . . N . . k . |
| . . . . . . . . |
| . . . . . . . . | [White]
+-----------------+

bk
 White wins in   10 moves
 ----------------------------------
 Kg5      wins in  10 ( 19 plies)
 Kh5      wins in  10 ( 19 plies)
 Kf5      wins in  12 ( 23 plies)
 Ba8      wins in  15 ( 29 plies)
 Bh1      wins in  15 ( 29 plies)
 Be4      wins in  15 ( 29 plies)
 Kf6      wins in  15 ( 29 plies)
 Bc6      wins in  15 ( 29 plies)
 Bb7      wins in  15 ( 29 plies)
 Kh6      wins in  15 ( 29 plies)
 Kf7      wins in  16 ( 31 plies)
 Kg7      wins in  16 ( 31 plies)
 Kh7      wins in  16 ( 31 plies)
 Nb4      wins in  24 ( 47 plies)
 Nb2      wins in  24 ( 47 plies)
 Ne5      wins in  24 ( 47 plies)
 Nc1      wins in  26 ( 51 plies)
 Nc5      wins in  26 ( 51 plies)
 Bc4      wins in  26 ( 51 plies)
 Bb3      wins in  27 ( 53 plies)
 Be6      wins in  28 ( 55 plies)
 Bg8      wins in  28 ( 55 plies)
 Bf7      wins in  28 ( 55 plies)
 Ba2      wins in  29 ( 57 plies)
 Ne1      wins in  29 ( 57 plies)
 Nf2     DRAW
 Nf4     DRAW
 Bf3     DRAW
 Bg2     DRAW

analyze
iterative deepening --> start, thread=0
set timer to infinite
        29   1:      0.0  +Mat_10  1.Kg5 [TB]
        58   2:      0.0  +Mat_10  1.Kg5 [TB]

--------------------------------------------------------------------------
Score: 125.32 (32081)  Evals: 0  Time: 0.0s  nps: 265143  Q/all: 0.00
hashtable attempts: 1856  hits: 98.4%  perfect:  0.0%
--------------------------------------------------------------------------


I have no idea why you saw that problem.

If you want to compress the TBs for archival purposes, and you have all the uncompressed files in one folder, I think that compressing the whole thing with 7z will give you just above 4 GiB. Someone reported that some time ago. You cannot have such a good compression with the "compressed and ready to play" TBs because they need to be compressed in small chunks, hurting efficiency.

Miguel
User avatar
Miguel A. Ballicora
 
Posts: 160
Joined: 03 Aug 2005, 02:24
Location: Chicago, IL, USA

Re: Slight problem/glitch with Gaviota tablebases

Postby crystalclear » 10 Jul 2012, 11:21

Thanks for the reply, which I must have missed. Either that or I have Alzheimers!

I have had no problem since. Sorry for the false alarm. I have my chess engine running using your tablebase and probing code for which I am grateful and sort of in debt to you! It's working fine!
crystalclear
 
Posts: 91
Joined: 22 Sep 2011, 14:19


Return to WinBoard development and bugfixing

Who is online

Users browsing this forum: No registered users and 8 guests