National Preventative Mechanism

    genetically
    TypeScript icon, indicating that this package has built-in type declarations

    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

    2

    Version

    1.0.4

    License

    MIT

    Unpacked Size

    405 kB

    Total Files

    180

    Last publish

    Collaborators

    • mmmaxou