Subject: Re: Mathematical Proof of Tablebase Accuracy


Post Followup (without quoting) ] [ Post Followup (with quoting) ] [ Computer Chess Resource Center ] [ Message Listing ]

Posted by GuyHaworth (Profile) on February 02, 2003 at 22:48:43:

In Reply to: Mathematical Proof of Tablebase Accuracy posted by Mike Hood on February 02, 2003 at 21:41:03:

It's an interesting queston and one that I posed in 1969 about programs
generally.  It turned out to be about 30 years too early to be asking such
questions.

Ken Thompson's Turing_Award lecture of some years ago points up the
difficulties.  He did so by talking about how he could insert 'his own code' at
any level of the computing system architecture ... compiler, linker, loader etc.

Even if you prove the computation correct at one level, you are taking as
axiomatic that the system 'up to that level' is correct in principle and will
function correctly in practice.


In the particular case of the EGT-computations, one can prove mathematically
that there is a finite-step, terminating algorithm for producing the EGT.
Curiously, I have never seen this proof in the most general terms which would
admit a variety of definitions of depth.

But, did the computations faithfully execute the algorithm.  Not always.  The
only way to check the results is to compare them with those of an independent,
second-source ... not as easy as it sounds.

The same principle applies whenever the results are not self-evidently correct:
Mersenne Number computations in GIMPS, Proofs of the 4CC, ...


Re EGTs, mistakes have still happened at generation time and runtime:

1)  Most recently, FEG missed inhering shallow wins from subgames (e.g. KNNK)
      Fortunately, Marc Bourzutschky tripped over an incorrect EGT-value
      A self-consistency check would have found the error, but was not run.
      [ Now the bug has been corrected .. and notified to all. ]

2)  Files have been corrupted after being verified correct.
      Stray neutrons - who knows? MD5SUM-checks (or equivalent) spot this.
      My chess-engine spots corrupt files on initialisation:  no idea how.

3)  Underpromotions have occasionally been ignored or forgotten
      That's a case of unwittingly changing the rules of the game.

4)  Access-software for the EGT has occasionally been corrupt
      So the EGT is ok, but the wrong result is returned nevertheless
      A checkers game was lost in 2002 this way:  see ICGA_J v25.3 (Sept)


In practice, EGT results have been checked, not always end-to-end, by these
means:

1)  list of max-depth positions have been 2nd-sourced (for the same metric)

2)  lists of mzugs (regardless of metric) have been second-sourced

3)  where 'Nalimov-style' DTC(onversion) EGTs have been produced two ways
      they have been compared at the binary level

4)  different EGTs should show the same wins, draws and losses
      an API to the EGTs is always helpful to facilitate this


Given the above list, you might well choose not to resign, even if the computer
says "mate in N".


However, given the way the Nalimov DTM EGTs are produced, I personally have more
confidence in their correctness than in a lot of other software on which my life
depends < put your own list here >.


Even so, there is probably still one dodgy (KBPKN) stats file on Rob's site - no
doubt a victim of a file-management error years ago. But that's a derived
result, and I'm the KBPKN EGT itself is fine.

g




Post Followup (without quoting) ] [ Post Followup (with quoting) ] [ Computer Chess Resource Center ] [ Message Listing ]