Package Exports
- genetic-algorithm-fw
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (genetic-algorithm-fw) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Genetic algorithm framework built with JavaScript ES6
This package provides a framework for building applications where genetic algorithm (GA) is used for solving optimization problems based on a natural selection process that mimics biological evolution.
The algorithm repeatedly modifies a population of individual solutions.
Installation
npm install genetic-algorithm-fw
Functions to define
mutation
function mutation(oldPhenotype){
// return a new phenotype
}
crossover
function crossover (phenoTypeA, phenoTypeB) {
// using phenoTypeA and phenotypeB create a new list of two phenoTypes
// return [phenotype1, phenotype2]
}
fitness
function fitness(phenotype) {
// return the fitness number
// the higher the value the fitter it is
}
competition
function competition(phenoTypeA, phenoTypeB) {
// return true when the fitness value is higher for phenoTypeA
// otherwise return false
}
Initialize GA object with the previously defined functions
var GeneticAlgorithm = require('genetic-algorithm-fw');
var geneticalgorithm = new GeneticAlgorithm(
mutation, // if not specified, no mutation happens
crossover, // if not specified, the initial phenoTypes are returned
fitness, // if not specified, 0 is returned
competition, // if not specified, no competition happens
[], // initial list of phenoTypes
populationSize, // by defualt it is 100
chanceOfMutation); // by defautlt it is 50
Evolve our population
// we can run as many iterations as we like
geneticalgorithm.evolve();
Get the best result
// we can check the best phenotype in our current population
var theBestPhenotype = geneticalgorithm.best();