module NEAT
Critter¶ ↑
RubyNEAT DSL¶ ↑
DSL is a domain-specific language for RubyNEAT to allow you to configure the NEAT engine for various evolutionary projects.
Neuron Types¶ ↑
We create all the neuron types for this system here.
NEAT – Module for RubyNEAT.¶ ↑
Synopsis¶ ↑
We have a Population of Critters, and each Critter represents a network of Neurons and a connection list specifying how those Neurons are connected.
Each Neuron has an inplicit genotype and phenotype component. Neurons, from the Ruby persoective, contain their own code to produce their own phenotypes.
There are input Neurons and output Neurons. The input Neurons are special, as they do not contain any input from other nodes, but serve as interfaces from the “real world”. Thier range of inputs are open, and it shall be up to the input Neuron's phenotype generators to condition those inputs, if need be, to someething more suiable for the neural network.
Issues¶ ↑
Multicore / Cloud Computing¶ ↑
Some thought needs to be given to how to make this anenable to multiple processes so that we can leverage the power of multicore systems as well as multiple computers in the Cloud, etc.
Our initial inclination is to put all of that functionality in the Conroller.
Constants
- STIMULUS
Name of the stimulus method in NEAT::Critter::Phenotype to use for the singleton method expression of the critter.
Public Class Methods
# File lib/rubyneat/rubyneat.rb, line 422 def self.controller ; @controller ; end
# File lib/rubyneat/rubyneat.rb, line 423 def self.controller=(controller) ; @controller = controller ; end
# File lib/rubyneat/rubyneat.rb, line 424 def self.create_controller(*parms); @controller = Controller.new(*parms); end
PrettyPrint to log.debug
# File lib/rubyneat/rubyneat.rb, line 77 def self.dpp ob #$log.ap ob end
Mixin for the gaussian object.
# File lib/rubyneat/rubyneat.rb, line 74 def self.gaussian ; @controller.gaussian; end
Mixin for new innovation numbers.
# File lib/rubyneat/rubyneat.rb, line 71 def self.new_innovation; @controller.new_innovation; end
# File lib/rubyneat/rubyneat.rb, line 60 def self.random_name_generator (1..3).map { @rng_names[rand @rng_names.size] }.push(@rng_count += 1).join('_').to_sym end