[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: computer-go: Authenticating the identity of a remote go-playing computer program
Matthew John Saffell <saffell@xxxxxxxxxxxxxxxxx> wrote:
> Look - here's the point: all bug-free algorithms are deterministic. That
> is, given the same set of inputs it will produce the same output.
As has already been pointed out, the timing of the inputs may matter, to
some pretty high precision! If a program thinks ahead on its opponents time,
it may be able to build more or less complete prediction(s) while waiting.
If it then uses strict time management, and reads many alternative sequences
deeper and deeper until it reads the hardware clock and sees it is time to
make the best move it has found so far, then the move it selects may depend
on the number of variations it happened to have time to analyze, which again
depends on the precision of the (hardware?) clock and of what ever else may
have taken CPU time meanwhile, for example interrupts from the disk and
network, number of times a packet had to be retransmitted, and the amount of
mouse movement.
It may well be possible to eliminate these variations in principle, but I
feel it will be far from trivial, and that most go programmers rather spend
their time in improving the performance of their program during actual play
rather than such artificial conditions.
Personally I start to feel that we have hashed the arguments back and forth
enough, and (at least my own) conclusion is that it may be possible to
require and enforce programs to deterministic and verifiable, but that it
looks like too much of a hazzle, and that real-life go programmers will
probably not be bothered. There will be controversies at some tournaments,
no matter how well or badly the limitations are drawn up...
Just my $0.79 ($0.02 after compensating for taxes, inflation, and other
hidden costs ;-)
--
Heikki Levanto LSD Levanto Software Development heikki@xxxxxxxxxxxxxxxxx
"In Murphy we Turst"