From: livesey@solntze.wpd.sgi.com (Jon Livesey)
Newsgroups: talk.origins
Subject: Re: AWESOME computer program (Populus)
Date: 11 Nov 1992 20:47:44 GMT
Organization: Silicon Graphics, Inc.  Mountain View, CA
NNTP-Posting-Host: solntze.wpd.sgi.com


In article <1992Nov11.125743.1085@city.cs>, lionel@cs.city.ac.uk writes:
> 
> This is more like it, the sort of random mutation I am talking
> about. Lets say the chess program is 1M (approx 1 million bytes or
> 8 million bits). You randomly change a few bits.

You might be interested to know that people have indeed
been doing this kind of thing for quite a long time.   In
the early eighties, there was a "program mutation" research
program at Georgia Tech.

You ought to read the published Tech Reports, but the
general idea was this: you take a program that was alleged
to work, and on which various tests had been run.   Then
you change bits of it at random and run the same tests
again.

Now, if the program really does 'work' and the tests check
every control path through it, then you would expect most
changes to cause the program output to change.   If it does
not, then either you have some redundancy in the program,
or you have some control paths that were never tested.   So
now you can eliminate the redundancy or improve the
'coverage' of the tests.   [Like I said, there's more to it
than this, so read the papers].

This isn't chess playing, but the *total system* of program
plus test routines, is getting better through random changes.

Heck, whenever I go into the lab to test something, chances
are that I'll try something at random.   Haven't you ever done
that?   Aren't there a surprising number of times when you
come out of the lab with more than you went in with?

> Your claim is that you may by chance change a variable suc
> as `number of moves ahead' or `a coefficient of some sort'.
> Do you really think that the program will play better chess?

This is a rhetorical trick you are playing.   You are
trying to appeal to the reader's sense of incredulity by
mixing up things at different levels: "e few bits" versus
"plays chess better".

Most people have the intuition that playing better chess
involves more than a few bits, and that intuition is what
you are appealing to, rather than making an argument.

The fact is, it does not matter much *what* level of
representation you talk about.   If you change a few bits
in a bit sting input to a Turing machine, you expect a
modification in behaviour.   If you change a few variables
in the input to a Fortran compiler, you expect the output
binary to behave differently.   In either case, what you
will get is some programs that crash altogether, some which
produce bogus output, and some which - by chance - still
produce valid output, and of those, some which produce
their output in a "better" - by some measure - way.

> I am talking about a _well designed_ chess program which has
> _already_ been finely tuned.

Another bogus piece of rhetoric.   When you say a chess
playing progam has been well tuned, you mean to imply that
a particular algorithm that a particular author had in mind
has been carefully implemented.  If that algorithm is so
specialised and so carefully implemented that it is, in
effect, a dead-end, then we would expect any change to
dis-improve it, especially in the short run.

On the other hand, if the author has been kind enough to
parameterise his algorithm and leave it possible to plug in
a great many different values of parameters, and maybe even
have an internal representation lanaguage for different
search, tactical and strategic strategies, then most of us
would have the intuition that random changes at the
appropriate representational level really *might* lead to a
better chess player.

Like all "it couldn't happen" arguments, you are almost all
presentation and slick misleading analogies, and almost no
content.

jon.
Newsgroups: talk.origins