Learn about our RFC process, Open RFC meetings & more.Join in the discussion! »

genetically

1.0.4 • Public • Published

Build Status codecov npm bundle size GitHub issues GitHub last commit GitHub package.json version

Genetically

A Genetic Algorithm library designed for typescript

Live example and informations about genetically can be founds in the demonstration

Install

Using npm :

$ npm install -S genetically

Examples

Take a look at the examples on simple functions made for optimization problems:

Usage

Simple use case

import {GeneticAlgorithm} from 'genetically';
 
const genetic = new GeneticAlgorithm<number, string>(
  encodeFunction,
  decodeFunction,
  randomValueFunction,
  fitnessFunction,
  configurationObject
);
 
genetic.run();

More complex usage with the LinearGeneticAlgorithm example.

import {
  createEncodeFunctionOfBase,
  FitnessFunctionObjective,
  GeneticAlgorithm,
  LinearGeneticAlgorithm,
} from './genetically';
 
// Create a GeneticAlgorithm Object from a test function
const gaLinear = LinearGeneticAlgorithm();
gaLinear.run();
gaLinear.display();
 
// Or create you own genetic algorithm
 
/**
 * Random starting value
 */
const randomValue = () => Math.floor(Math.random() * 64) - 32;
 
/**
 * Transform x
 * start is [-32, 32]
 * end is   [000000, 111111]
 */
const encoder6 = createEncodeFunctionOfBase(2, 6);
const encode = (x: number) => encoder6(x + 32);
 
/**
 * Transform x
 * start is [000000, 111111]
 * end is [-32, 32]
 */
const decode = (x: string) => parseInt(x, 2) - 32;
 
/**
 * Function to optimize
 * f(x) = x²
 */
const fitness = (i: number) => -1 * i ** 2;
 
// Make the genetic algorithm object
const ga = new GeneticAlgorithm<number, string>(
  encode,
  decode,
  randomValue,
  fitness,
  {
    objective: FitnessFunctionObjective.MINIMIZE,
  }
);
 
// Compute the fitness of the population and display it
ga.runPopulation();
ga.display();
 
// Evolve the population
ga.run();
 
// After the evolution is complete, display it
 
console.log('End evolution');
ga.display();

Documentation

Please take a look at the documentation for references on how to use the library.

Install

npm i genetically

DownloadsWeekly Downloads

0

Version

1.0.4

License

MIT

Unpacked Size

405 kB

Total Files

180

Last publish

Collaborators

  • avatar