Skip to content

A fast, extensible, multi-platform and multithreading .NET Genetic Algorithm library that simplifies the development of applications using Genetic Algorithms (GAs).

License

unzhin/GeneticSharp

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GeneticSharp

Build Status

GeneticSharp is a fast, extensible, multi-platform and multithreading .NET Genetic Algorithm library that simplifies the development of applications using Genetic Algorithms (GAs).

Can be used in ASP .NET MVC, Web Forms, Windows Forms, GTK# and Unity3D applications.


Features


Usage

Creating your own fitness evaluation

public class YourIFitnessImplementation : IFitness
{  
	public double Evaluate (IChromosome chromosome)
	{
		// Evaluate the fitness of chromosome.
	}
}

Creating your own chromosome

public class YourIChrosomeImplementation : ChromosomeBase
{
	public override Gene GenerateGene (int geneIndex)
	{
		// Generate a gene base on your chromosome representation.
	}

	public override IChromosome CreateNew ()
	{
		return new YourIChrosomeImplementation();
	}
}

Running your GA

var selection = new EliteSelection();
var crossover = new OrderedCrossover();
var mutation = new ReverseSequenceMutation();
var fitness = new YourIFitnessImplementation();
var chromosome = new YourIChrosomeImplementation(); // please, don't use names like that ;)
var population = new Population (50, 70, chromosome);

var ga = new GeneticAlgorithm(population, fitness, selection, crossover, mutation);

ga.Start();

Roadmap

  • Improve Runner.GtkApp
    • Add new problems/classic samples
      • Checkers
      • Time series
  • Create and publish NuGet package
  • Create the wiki
  • Add new selections
    • Reward-based
  • Add new crossovers
    • Order-based (OX2)
    • Position-based (POS)
    • Voting recombination
    • Alternating-position (AP)
    • Sequential Constructive (SCX)
    • Shuffle crossover
    • Precedence Preservative Crossover (PPX)
  • Add new mutations
    • Non-Uniform
    • Flip Bit
    • Boundary
    • Gaussian
  • Add new terminations
    • Fitness convergence
    • Population convergence
    • Chromosome convergence
  • Unity3d game sample (WIP)
  • MonoTouch Runner app (sample)
  • Parallel populations (islands)

How to improve it?

Create a fork of GeneticSharp.

Did you change it? Submit a pull request.

License

Licensed under the The MIT License (MIT). In others words, you can use this library for developement any kind of software: open source, commercial, proprietary and alien.

Change Log

0.5.0 First version.

About

A fast, extensible, multi-platform and multithreading .NET Genetic Algorithm library that simplifies the development of applications using Genetic Algorithms (GAs).

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published