Re: Semi-Automated Programming

Eugene Leitl (eugene@liposome.genebee.msu.su)
Wed, 14 Jan 1998 12:39:50 +0300 (MSK)


On Tue, 13 Jan 1998, Brian Atkins wrote:

> Yeah, everyone should start coding in Perl :-) It rocks!
> Seriously, it would seem to require some kind of AI to get
> any farther than what we have now ?

The Genetic Algorithms Archive
http://www.aic.nrl.navy.mil/galist/

John Koza has a variant of GA he called GP patented (strictly speaking, I
do not see any difference in evolving code and data, for code is just data
interpreted by an abstract entity). He initiated a school of evolving
code trees of a Lisp subset, with sometimes interesting results.

The good things about GA/GP is that you need just to formally specify the
constraints, i.e. the results which you want to get. The method, in
theory, would generate systems with progressively higher fitness, which
ideally would met your specs fully. This might be useless for
cryptosystems, but great for VLSI design and real-world control problems.
Another cool things are GA evolved IFS for image compression, synthesis
and artwork.

I think what cripples current system is that the GA/GP system's metalevel
(obviously only the fitness function should be sacred, orelse we float off
into Never-Never land) is not open to GA optimization, which makes the
resulting system limited, and brittle. A good GP must adjust at least the
mutation rate and the coding to guarantee a certain kind of optimal
fitness landscape (roughly, a small ball in genespace encompassing maximal
variety in phenotypespace, while genespace being permeated by lots of
neutral filaments (multiple nonlethal migration pathways out of the local
minimum trap)).

I think such systems are easiest to design as CAs, which coincides nicely
with the expected (it'd better) future evolution of computer hardware.
Random defect hit density for deep-submicron WSI considered, evolvable
hardware must obviously favour tiniest dies possible -- CA cells. (Just
for this time, I won't plug molecular dot CAMs here).

ciao,
'gene