darwin

Build Status

A genetic/evolutionary algorithm library for Dart. Given a population of phenotypes, an evaluator (fitness function), and time, the algorithm will evolve the population until it crosses given fitness threshold.

Read more about genetic algorithms on Wikipedia.

Features of this library:

  • Generic approach (anything can be a gene, as long as it can mutate)
  • User can tune crossover probability, mutation rate, mutation strength, etc.
  • Niching via fitness sharing
  • Multi-objective optimization via Pareto rank
  • Experimental support for multi-threaded computation

For an up-to-date example use, please see example/example.dart.

Libraries

darwin
isolate_worker
Allows for easy multithreading when you have computational tasks that can be defined by a single method in a single extended class.