[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



On Wed, Dec 06, 2000 at 02:04:21PM +0100, Heikki Levanto wrote:
> Steve Pagliarulo <s_pagliarulo@xxxxxxxxxxxxxxxxx> wrote:
> 
> > 1. For tournament purposes don't allow random play. Allow pseudo random play 
> > based on an initial seed (to avoid predictability). For verification, the 
> > seed is disclosed and the program will play identically.
> 
> As someone pointed out, careful time management can easily produce
> non-repeatable play, even without randomness.

Here's how to modify any program to accept expert advice not
recognizable as cheating:

for (;;) {
  do figure out and display best move m1 and 2nd best move m2
  while awaiting input of opponent move;
  if input happened at odd second then play m1 else play m2;
}

Certainly the operator will have the freedom of delaying input of
the opponent move by one second; and this very freedom allows him
to choose the better of the 2 moves proposed.
The only way to avoid this behaviour is to disallow all time management;
the program's behaviour must depend only on initial pseudo random seed
(which could be hardwired into the program as it is checksummed before
the tournament. in the next tournament it better use a new seed so that
opponents cannot simply win by following old games)
when trying to reproduce a program's behaviour it can of course happen that the
new machine it runs on will play much slower so time forfeits should be
ignored there.

regards,
-john