Class: DRP::SearchAlgorithms::PSO::InteractiveParticle

Inherits:
Object
  • Object
show all
Defined in:
lib/pso.rb

Direct Known Subclasses

Particle

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(pso, vector_size) ⇒ InteractiveParticle

Returns a new instance of InteractiveParticle.



54
55
56
57
# File 'lib/pso.rb', line 54

def initialize pso, vector_size
  @pso, @vector_size = pso, vector_size
  init_vector
end

Instance Attribute Details

#vectorObject

Returns the value of attribute vector.



52
53
54
# File 'lib/pso.rb', line 52

def vector
  @vector
end

Instance Method Details

#init_vectorObject



75
76
77
78
# File 'lib/pso.rb', line 75

def init_vector 
  @vector = Array.new(@vector_size) { rand }
  set_as_best
end

#roamObject



66
67
68
69
70
71
72
73
# File 'lib/pso.rb', line 66

def roam
  gbest = @pso.global_best_vector
  @vector_size.times do |i|
    c = @vector[i]
    pbest = @best_vector[i]
    @vector[i] = c + 2 * rand * pbest - c + 2 * rand * gbest[i] - c
  end
end

#set_as_bestObject



59
60
61
# File 'lib/pso.rb', line 59

def set_as_best
  @best_vector = @vector.dup
end

#set_as_global_bestObject



62
63
64
# File 'lib/pso.rb', line 62

def set_as_global_best
  @pso.set_as_global_best self
end