Class: DRP::SearchAlgorithms::PSO::InteractiveParticle
- Inherits:
-
Object
- Object
- DRP::SearchAlgorithms::PSO::InteractiveParticle
- Defined in:
- lib/pso.rb
Direct Known Subclasses
Instance Attribute Summary collapse
-
#vector ⇒ Object
Returns the value of attribute vector.
Instance Method Summary collapse
- #init_vector ⇒ Object
-
#initialize(pso, vector_size) ⇒ InteractiveParticle
constructor
A new instance of InteractiveParticle.
- #roam ⇒ Object
- #set_as_best ⇒ Object
- #set_as_global_best ⇒ Object
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
#vector ⇒ Object
Returns the value of attribute vector.
52 53 54 |
# File 'lib/pso.rb', line 52 def vector @vector end |
Instance Method Details
#init_vector ⇒ Object
75 76 77 78 |
# File 'lib/pso.rb', line 75 def init_vector @vector = Array.new(@vector_size) { rand } set_as_best end |
#roam ⇒ Object
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_best ⇒ Object
59 60 61 |
# File 'lib/pso.rb', line 59 def set_as_best @best_vector = @vector.dup end |
#set_as_global_best ⇒ Object
62 63 64 |
# File 'lib/pso.rb', line 62 def set_as_global_best @pso.set_as_global_best self end |