subprotocol / genetic-js

Advanced genetic and evolutionary algorithm library written in Javascript
http://subprotocol.com/
Other
598 stars 120 forks source link

Added support for async fitness function using Promises #14

Open richardklafter opened 7 years ago

richardklafter commented 7 years ago

Minimal changes to support async fitness fitness functions with promises.

zinefer commented 6 years ago

Does this run my fitness functions in parallel? How could I check something like that...

richardklafter commented 6 years ago

It runs all the fitness functions from one generation in parallel. If your fitness function is 100% JS this will not speed anything up but if your fitness function makes network calls or preforms some other async operation they will all be done in parallel.

I used it for tuning the parameters of an AI I built to play a game. In that case, running my fitness function took ~3min and I did it on lots of remote servers.

zinefer commented 6 years ago

Yeah, I came to that realization a bit later last night. My fitness function is just javascript that will require some engineering to get to run asynchronously. Thanks for your help.

Glavin001 commented 6 years ago

For those looking for async support, I've forked this repo and rewrote it in TypeScript and added support for async fitness method (including unit tests): https://github.com/Glavin001/genetic-js Hope this helps you, too! 😃