Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical
 
PerlMonks  

RE: Genetic Programming or breeding Perls

by nop (Hermit)
on Sep 06, 2000 at 14:49 UTC ( #31224=note: print w/ replies, xml ) Need Help??


in reply to Genetic Programming or breeding Perls

There's a rich literature on genetic programming. For example, check out John Koza's stuff at www.cs.bham.ac.uk/~wbl/biblio/gp-html/JohnKoza.html.

Another interesting thread is Tom Ray's Tierra. Realizing that computer programs are just too brittle to evolve well (as one bad character in a program can render it all useless, vs. the laxness in say DNA coding and codons), Ray proposed an interesting computer architecture loosely based on biology that supports evolving programs. www.hip.atr.co.jp/~ray/tierra/

Another interesting idea: Danny Hillis (of Connection Machine fame ) suggested in a 1990 paper that programs evolve better when confronted with "parasites". Hillis claimed he could evolve better sorting programs when they were pitted against an evolving landscape of "hard" sort sequences (which in turn were generated by different program evolving hard sequences with the goal of stumping the sorters... see citeseer.nj.nec.com/context/15365/9503

A good site for such topics is SFI www.santafe.edu

This field hasn't generated much of practical significance yet, but it is cool.


Comment on RE: Genetic Programming or breeding Perls
Re: RE: Genetic Programming or breeding Perls
by demerphq (Chancellor) on Sep 02, 2001 at 18:56 UTC
    This field hasn't generated much of practical significance yet, but it is cool.

    Well, I beleive that there are a number of chip frabricators that are using GA to minimize the effect of parasitic transistors, also to minimize labour in layout.

    Danny Hillis's idea does work quite nicely if you can get it right.

    Another idea is to implement a sex difference. By having the genome translate into two different phenomes (for instance in a tracker implementation make sex X build from the genome from the left and sex X from the right) and forcing phenome/genomes to mate with the opposite (you can have as many sexes as you want, I played around with 3 sexes, when two go together they produce a child of the third type. Got the idea from a Piers Anthony book, from the Tarot series.) this minimizes the chance of getting stuck on a local min/maxima. Partially because the best solution will be forced to breed with the other sex, which is evaled differently, thus ensuring that 'good' genes get mixed with 'bad' genes (from either sexes POV). This means the randomness (im sure there is a more appropriate word) in the genepool stays higher.

    Another idea is implement chromosomes. Ie split the genome up into smaller packets that can mutated/bread individually. That way random insertions dont fubar the whole genome, just the chromosome they are in.

    I found the challenging aspect, and perhaps the limiting spect is coming up with an appropriate fitness function. If you can score your creatures then you can can solve the problem they arte trying to solve so whats the point? I mean not really but you get the idea.

    For instance if you do a tracker implementation, by very subtly changing the fitness function you basically kill any possiblity of solving the problem (eating all of the dots).

    From what I know there is really no way to know that your fitness function will enable to population to improve.

    Sorta reminds me of the classic night.day tank problem in neural nets actually..

    Yves

    --
    You are not ready to use symrefs unless you already know why they are bad. -- tadmc (CLPM)

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://31224]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (13)
As of 2014-09-23 17:01 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (232 votes), past polls