class Algorithmically::Stochastic::RandomSearch

Public Class Methods

new(size, max_iter) click to toggle source
# File lib/Algorithmically/Stochastic/random_search.rb, line 6
def initialize(size, max_iter)
  problem_size = size
  search_space = Array.new(problem_size) { |i| [-5, +5] }
  maximum_iterations = max_iter
  best_solution = self.search(search_space, maximum_iterations)
  puts "Done. Best Solution: c = #{best_solution[:cost]}, v = #{best_solution[:vector].inspect}"
end

Public Instance Methods

objective_function(vector) click to toggle source
# File lib/Algorithmically/Stochastic/random_search.rb, line 14
def objective_function(vector)
  vector.inject(0) { |sum, x| sum + (x ** 2.0) }
end
random_vector(minmax) click to toggle source
# File lib/Algorithmically/Stochastic/random_search.rb, line 18
def random_vector(minmax)
  Array.new(minmax.size) do |i|
    minmax[i][0] + ((minmax[i][1]) - minmax[i][0] * rand())
  end
end