Skip to content

200sc/geva

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Geva

Version 0.0.3

Usage: see test files

Run go get -u github.com/200sc/geva to pull this project into your GOPATH.

New since 0.0.2

Added the EDA subpackage, with a much better API model than that used by everything else, so much that everything else is going to be shifted to use that model soon.

Next Steps

The neural network model is crummy and should be replaced with bindings to a better neural network library, or a fork if necessary.

Our way of judging fitness, 1 being the best and high being bad, makes converting fitnesses into weights for probabilistic selection a chore. It should also be allowed for the user to choose between high or low being good or bad, depending on the problem.

We'd like to add a Hall of Fame approach or addition to new generations, but doing so requires a problem where the fitness function is a flexible competition.

It'd be great if we could modify selection and crossover to also be concurrent-- crossover being concurrent is probably going to be simple once we have dedicated methods for parent pairing (generate a list of pairs, then split a goroutine off for each pair, and collect the results).

It's then worth reviewing and running performance tests on anything that is or could be concurrent to decide if it actually allows for increased speed.

As a part of these reviews, looking into what can be passed to graphics cards for work instead of to the processor would be very worthwhile, but is currently limited by a lack of an interface to do that in Go.

About

Evolutionary Algorithms in Go

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published