Molecular nanotechnology is the precise, three-dimensional control of materials
and devices at the atomic scale. An important part of nanotechnology is
the design of molecules for specific purposes. This paper describes early
results using genetic software techniques to automatically design molecules
under the control of a fitness function. The fitness function must be capable
of determining which of two arbitrary molecules is better for a specific
task. The software begins by generating a population of random molecules.
The population is then evolved towards greater fitness by randomly combining
parts of the better individuals to create new molecules. These new molecules
then replace some of the worst molecules in the population. The unique
aspect of our approach is that we apply genetic crossover to molecules
represented by graphs, i.e., sets of atoms and the bonds that connect them.
We present evidence suggesting that crossover alone, operating on graphs,
can evolve any possible molecule given an appropriate fitness function
and a population containing both rings and chains. Prior work evolved strings
or trees that were subsequently processed to generate molecular graphs.
In principle, genetic graph software should be able to evolve other graph
representable systems such as circuits, transportation networks, metabolic
pathways, computer networks, etc.