module MetaheuristicAlgorithms::BaseAlgorithmModule

Public Instance Methods

gaussian(mean, stddev) click to toggle source

Based on the code by antonakos on stackoverflow.com/questions/5825680/code-to-generate-gaussian-normally-distributed-random-numbers-in-ruby His code is under CC0 1.0 Universal (CC0 1.0)

# File lib/metaheuristic_algorithms/base_algorithm_module.rb, line 14
def gaussian(mean, stddev)
  theta = 2 * Math::PI * Kernel.rand
  rho = Math.sqrt(-2 * Math.log(1 - Kernel.rand))
  scale = stddev * rho
  x = mean + scale * Math.cos(theta)
  # y = mean + scale * Math.sin(theta)
  return x
end
get_decision_variable_value_by_randomization(decision_variable_index) click to toggle source
# File lib/metaheuristic_algorithms/base_algorithm_module.rb, line 5
def get_decision_variable_value_by_randomization(decision_variable_index)
  # @function_wrapper.minimum_decision_variable_values[decision_variable_index]
  # + (@function_wrapper.maximum_decision_variable_values[decision_variable_index] - @function_wrapper.minimum_decision_variable_values[decision_variable_index]) * bigdecimal_rand
  @function_wrapper.minimum_decision_variable_values[decision_variable_index].to_f 
  + (@function_wrapper.maximum_decision_variable_values[decision_variable_index].to_f - @function_wrapper.minimum_decision_variable_values[decision_variable_index].to_f) * rand
end