Author: martin fierz
Date: 23:17:53 01/28/02
Go up one level in this thread
On January 29, 2002 at 01:27:18, Angrim wrote: >I would agree with the conclusion(independant verification is >a really good idea) but the logic used to support this conclusion >is just plain silly. thank you :-) >The actual need for independant verification is to detect errors in logic, >rather than hardware errors. but obviously schaeffer thinks otherwise... >If the designer of the egtb generator made >a mistake in the move generator or accidentally scored stalemates as >wins or some such, there is some significant chance that they would >make the same mistake again when writing the verification program. >This can partly be avoided by useing a different board structure >and movegen in the verifier than in the generator, but for the highest >levels of certainty an indepentantly designed verification program is >needed. > >> >>: Gentlemen, >>: >>: I have been directed to this page by a couple of ACF members who have >>: inundated me with emails. >>: >>: Verifying the 8-piece database was a difficult task. Gil Dodgen and >>: I found a mistake in the Chinook database which had been present for >>: 8 years, undetected by the most-tested database on the planet. Dr. ><humor> hardly surprising. I don't know what the most-tested >database on the planet is, but I can be quite sure that it has nothing >to do with checkers, and so would not be able to detect errors in the >Chinook database. </humor> i told him that too, but he really seems to believe what he is writing :-) >>: Schaeffer corrected his databases. As we continued to develope our >>: databases, Dr. Schaeffer's results and ours did not agree again, this >>: time it was tracked down to 1123 bits that did not copy properly on >>: *our end.* >>: > >>: Anyone who states that their database computation does not need >>: independent verification is rather foolish. The process is very complex, >>: and hundreds of trillions (I guess a few hundred thousand million in the >>: English sense) of calculations are performed as your database is being built. >>: >>: If your chance of any error creeping in in one in 10,000,000,000 you >>: will most likely have 100 chances to encounter such an error. Should >>: one single integrated circuit dip to -0.5 Volts when it should have been >>: +0.5 Volts (the difference between a binary "0" and a binary "1") even for >>: a microsecond, your databases will be wrong. > >The above is a fairly good explanation of why even a correctly coded >generator can result in files containing errors. However, such an >error should be detected by "unilateral verification" ><humor> Even independant verification is not a complete defense >against hardware errors, since after you ship a copy of the database >off to be verified, your hardware could suddenly decide to make a few >changes to your origional. </humor> i suppose that when you finally distribute your endgame database, you can probably also have errors in the CD / DVD burning or afterwards - for instance during copying the database to the users harddisk. or after that, maybe a bit on the HD suddenly changes it's mind - is anything like this possible? another point is that probably if 100 of 100 billion positions are wrong, chances that you ever reach a position where one of these is hit, AND backed up to the root of the search tree should be pretty slim... what i don't understand about his statement is this: i can see that somebody writes a faulty database generator ( i have been there... ). but let's suppose that my current generator is coded correctly, so that apart from hardware errors, such as mr. trice is referring to, everything is correct. now, let's say i run my program on 2 PC's and they both generate a database. if i now use all kinds of unilateral tests on each PC to first verify that the databases are consistent, and then compare the 2 databases against each other - can i not be sure that everything is correct? if there was a random error in one of the databases, such as mr. trice implies, then i should detect it with ease. of course, this thing does not protect me against faulty logic in my program, and in this sense, independent verification is better, of course. but if we are to only talk about the hardware failure part, isn't 2 instances of the same program identical to 2 different generators? aloha martin
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.