JavaGenes: Evolving Graphs Al Globus, Veridian MRJ Technology Solutions, Inc. John Lawton, UCSC Todd Wipke, UCSC Sean Atsatt, Sierra Imaging,Inc.
Crossover abcd wxyz abyz wxcd Strings Trees Graphs
Graph Crossover Rip Two Parents Apart Combine into a Child
Molecule Fitness Function All-pairs-shortest-path (APSP) distance Assign extended types to each atom = (element, |single bonds|, |double bonds|, |triple bonds|) Find shortest bond path between each pair of atoms Create bag with one item per pair of atoms –item = (type1, type2, path length) –bag = set with repeated items Tanimoto distance = |intersection| / |union|
Evolving Molecules benzene purine cubane diazepam cholesterol morphine NA size median shortest failures(%)
Circuits Directed graphs More node types (and, nand, or, nor, xor, nxor, plus initial 0 or 1 for each type) Exactly one input and one output node per graph Crossover generates unconnected circuits on very rare occasion Fitness function: number of right answers on 100 randomly generated inputs Serial logic (one bit input and output at each step) Logic simulator assumes all devices require unit time
Circuits name size median shortest failures(%) parity delay add200NA 100
Conclusions Evolving graphs using genetic operators is possible Molecules and circuits have been evolved Molecular evolution is reasonably successful Non-trivial circuits have yet to be evolved This is a new technique that will require substantial refinement open source in the near future Where self-assembly problems can be cast as graphs JavaGenes may be of some utility