Skip to content

🔬 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.

License

Notifications You must be signed in to change notification settings

acupy/genetic-algorithm-es6

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Genetic algorithm framework built with JavaScript ES6

Build Status

NPM

This package provides a framework for building applications where genetic algorithms (GA) are 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();

About

🔬 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.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published