RubyNEAT -- Neural Evolution of Augmenting Topologies for Ruby. By way of an enhanced form of Genetic Algorithms -- the NEAT algorithm, populations of neural nets are evolved to handle pre-defined goals. RubyNEAT is the first implementation of the NEAT algorithm for Ruby, and it leverages Ruby's power to implement the NEAT algorithm in a way that would be difficult to do in other languages. The 'activation function' is largely standalone. Basically, activation is achieved by functional programming. Meaning, once your network is evolved, you can extract it as source code you can then utilize without the RubyNEAT engine. RubyNEAT can be used for nearly any Machine Learning task you can dream of, because it's also extensible and modular. See http://rubyneat.com for the details.
A web-based Dashboard for your RubyNEAT development, http://localhost:3912
To allow RubyNEAT to extend the phenotypes and evaluations in a distributed and language-neutral manner, this plugin exists. Phenotype DSL is sent in a JSON format through RabbitMQ and the evaluation results are returned via the same. You may now set up worker queues on any number of servers to do the evaluation and return the results.
This is a data structure to represent and manage k-trees, primarily created for use in RubyNEAT, but may see other possible applications. The goal here is to be roebust in the creation of your k-tree, to allow you to prune during creation, since, especially for higher-dimensional trees, the number of leaf node can become very large. So a parent will have children nodes created down to the desired resolution, and immediately after the creation of the children, will check to see if there's enough variance among the children to keep them. If not, they are pruned immediately.