JavaGenes and Condor: Cycle-Scavenging Genetic Algorithms
Created by W.Langdon from
gp-bibliography.bib Revision:1.8051
- @InProceedings{globus:2000:jgac,
-
title = "{JavaGenes} and {Condor:} Cycle-Scavenging Genetic
Algorithms",
-
author = "Al Globus and Eric Langhirt and Miron Livny and
Ravishankar Ramamurthy and Marvin Solomon and
Steve Traugott",
-
booktitle = "Java Grande 2000, sponsored by ACM SIGPLAN",
-
address = "San Francisco, California",
-
month = "3-4 " # jun,
-
year = "2000",
-
URL = "http://www.cs.wisc.edu/condor/doc/javagenes.pdf",
-
URL = "http://people.nas.nasa.gov/~globus/papers/JavaGrande2000/JavaGrandePaper.html",
-
keywords = "genetic algorithms, genetic programming",
-
abstract = "A genetic algorithm code, JavaGenes, was written in
Java and used to evolve pharmaceutical drug molecules
and digital circuits. JavaGenes was run under the
Condor cycle-scavenging batch system managing 100-170
desktop, desk-side, and rack-mounted SGI workstations.
Genetic algorithms mimic biological evolution by
evolving solutions to problems using crossover and
mutation. While most genetic algorithms evolve strings
or trees, JavaGenes evolves graphs representing
(currently) molecules and circuits. Java was chosen as
the implementation language because the genetic
algorithm requires random splitting and recombining of
graphs, a complex data structure manipulation with
ample opportunities for memory leaks, loose pointers,
out-of-bound indices, and other hard to find bugs. Java
garbage-collection memory management, lack of pointer
arithmetic, and array-bounds index checking reduces the
frequency of these bugs, substantially reducing
development time. While a run-time performance penalty
must be paid, the only unacceptable performance we
encountered was using standard Java serialization to
checkpoint and restart the code. This was fixed by a
two-day implementation of custom checkpointing.
JavaGenes is minimally integrated with Condor; in other
words, JavaGenes must do its own checkpointing and I/O
redirection. A prototype Java-aware version of Condor
was developed using standard Java serialization for
checkpointing. For the prototype to be useful, standard
Java serialization must be significantly optimized.
JavaGenes is approximately 8700 lines of code and a few
thousand JavaGenes jobs have been run. Most jobs ran
for a few days. Results include proof that genetic
algorithms can evolve directed and undirected graphs,
development of a novel crossover operator for graphs, a
paper in the journal Nanotechnology [Globus, et al.
1999], and another paper in preparation.",
- }
Genetic Programming entries for
Al Globus
Eric Langhirt
Miron Livny
Ravishankar Ramamurthy
Marvin Solomon
Steve Traugott
Citations