Nodeo - evolutionary algorithms in the browser

Simple evolutionary algorithm in JavaScript in CommonJS format, for node.js and anything else.


Project maintained by JJ Hosted on GitHub Pages — Theme by mattgraham

Running evolutionary algorithm below

 

NodEO

nodeo Test code and coverage

NPM

codecov

Evolutionary Algorithm, simplified, for node

NodEO includes the functions necessary to create a simple evolutionary algorithm in JavaScript in CommonJS format, for node.js and anything else that uses that format. Can be (and indeed has been) converted to the browser using Browserify. Check out the presentation I did for FOSDEM in case you want to know more about evolutionary algorithms and how they have been implemented in JavaScript.

We’re right now in an extensive refactoring phase.

How to start

Hints/instructions on installing and running it.

Installation

npm install nodeo

You can also clone it from this repo:

git clone git@github.com:JJ/nodeo.git

which of course will get you the latest version, probably not in npm yet.

If you want to generate documentation from the source, you will have to install it independently via npm i -g docco. It’s been eliminated from the source due to its state of maintenance, which is poor.

Testing

If you have downloaded it from npm, it’s already tested. If you have cloned it,

npm install
npm test

Running an evolutionary algorithm

There’s a simple evolutionary algorithm in the app directory of this repository. Run

node app/ea.js

or

node app/classic-ea.js

from the command line, for the version with a bit more complicated data structures and no cached fitness function (lighter on the memory front).

How to go further

You can try and add your own stuff to the library. Work in progress

Problems? Questions?

Please use GitHub issues and I’ll try to help you.