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

controller() click to toggle source
# File lib/rubyneat/rubyneat.rb, line 422
def self.controller ; @controller ; end
controller=(controller) click to toggle source
# File lib/rubyneat/rubyneat.rb, line 423
def self.controller=(controller) ; @controller = controller ; end
create_controller(*parms) click to toggle source
# File lib/rubyneat/rubyneat.rb, line 424
def self.create_controller(*parms); @controller = Controller.new(*parms); end
dpp(ob) click to toggle source

PrettyPrint to log.debug

# File lib/rubyneat/rubyneat.rb, line 77
def self.dpp ob
  #$log.ap ob
end
gaussian() click to toggle source

Mixin for the gaussian object.

# File lib/rubyneat/rubyneat.rb, line 74
def self.gaussian ; @controller.gaussian; end
new_innovation() click to toggle source

Mixin for new innovation numbers.

# File lib/rubyneat/rubyneat.rb, line 71
def self.new_innovation; @controller.new_innovation; end
random_name_generator() click to toggle source
# 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