class RANN::Connection

Public Class Methods

new(input_neuron, output_neuron, weight = nil) click to toggle source
# File lib/rann/connection.rb, line 16
def initialize input_neuron, output_neuron, weight = nil
  @id            = SecureRandom.hex
  @output_neuron = output_neuron
  @input_neuron  = input_neuron
  @weight        = weight || initial_weight
  @processed     = false
  @enabled       = true
  @locked        = false
end

Public Instance Methods

enabled?() click to toggle source
# File lib/rann/connection.rb, line 42
def enabled?
  enabled
end
locked?() click to toggle source
# File lib/rann/connection.rb, line 50
def locked?
  @locked
end
neurons() click to toggle source
# File lib/rann/connection.rb, line 34
def neurons
  [output_neuron, input_neuron]
end
process() click to toggle source
# File lib/rann/connection.rb, line 26
def process
  if processable? && !processed?
    out_value = input_neuron.value * weight
    output_neuron.push_value! out_value
    @processed = true
  end
end
processable?() click to toggle source
# File lib/rann/connection.rb, line 38
def processable?
  input_neuron.value
end
processed?() click to toggle source
# File lib/rann/connection.rb, line 46
def processed?
  processed
end
reset!() click to toggle source
# File lib/rann/connection.rb, line 54
def reset!
  @processed = false
end

Private Instance Methods

initial_weight() click to toggle source
# File lib/rann/connection.rb, line 59
def initial_weight
  if output_neuron.context?
    1.to_d
  else
    rand.to_d BigDecimal.limit
  end
end