[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





You make it  sound as if avoiding deterministic  behavior is some kind
of virtue and  allowing it   allows  you to write  more  sophisticated
higher level AI programs.  This is nonsense and has nothing to do with
AI.

I am not portraying any "virtues", Please don't label me.


The only reason a computer  based algorithm might be non-deterministic
is if you do not, or are not able to  document all it's inputs. 

An algorithm may be deterministic, but it is not necessary that its results are.  If you don't believe this,  check into stochastic methods.  The most common of these is "simulated annealing", which attempts to model a natural random process.  This class of methods, which definitely has something to do with AI, are most commonly used for solving optimization and constraint based problems, and they *intentionally* introduce non-deterministic behavior.  They have been proven to be beneficial for many types of problems.

Stochastic methods and learning algorithms are the non-deterministic behaviors which I am concerned about eliminating.  These approaches can be successfully used in solving problems with exponential search space, like Go.

These inputs  might include flaky hardware or  even  software bugs where you
access   uninitialzed    memory.     Some  parallel   algorithms   are
non-deterministic,  but only because it's  not possible to predict the
state of the  hardware at every given  instance of execution.  Even in
this case, it's no virtue, it's an undesirable side affect.  

I think we all agree that we don't wish  to require all programs to be
properly deterministic in this respect, but having said that, I'll bet
most are.  Since programs  are  deterministic by nature, you  actually
have to program  them  explicity to  change this  behavior.   Or if  a
program   is complex  enough  it  will have  enough   bugs to make  it
nondeterministic,  which  might mean   it is accessing  un-initialized
memory or some other goof like this.

Don

Obviously, programming/design errors are excluded from the definition of non-deterministic behavior for the purpose of this discussion. Like you said, most programs will probably have errors, but this is not intentional. I prefer to leave the implementation open to any method desired, and instead prevent or detect inputs coming from outside the algorithm.



-----------------------------------------------------------------
Steve
s_korfhage@xxxxxxxxxxxxxxxxx
korfhage@xxxxxxxxxxxxxxxxx