Skip to content

tmenezes/geneticSharp

Repository files navigation

GeneticSharp

GeneticSharp is a .Net Core library that that handles the mecanics of a generic algorithm implementation. It automatically creates the population, do by itself the reproduction and mutation phases according with the strategy and configuration set.

GeneticSharp do the hard job for you and let you focus on the most important piece, the problem you are solving. You can direct focus on designing your model, chromosses, and the fitness method.

GeneticSharp accepts as a model any C# POCO class. It needs to be a class, needs to implement the IEvolutionaryIndividual interface and to have the default constructor.

Simplest Usage

using GeneticSharp;
// ...
var geneticEvolution = new GeneticEvolution<MyModel>();

// gen1
var gen1Result = geneticEvolution.Evolve();
Console.WriteLine(gen1Result.BestIndividual);

// gen2
var gen2Result = geneticEvolution.Evolve();
Console.WriteLine(gen2Result.BestIndividual);

Configuration

Supported variables

  1. Population Size: amount of individuals (population) per generation
  2. Natural Selection Rate: population percetage that is selected to reproduce and generate new individuals to the next gen
  3. Mutation Rate
  4. Collection Types Sizes

Types supporteds

  1. string
  2. int, short, long
  3. float, double, decimal
  4. Nullable
  5. bool
  6. DateTime
  7. IEnumerable, IList, List, Array
  8. Enums