Genetic software
Randomly generate a set of molecules
Many times:
- Select parent molecules at random with bias towards better performance
- Randomly rip copies of each parent in two
- Mate opposite halves
- Replace random molecules with bias towards worse performance