Class: MetaheuristicAlgorithms::FunctionWrappers::MichaelwiczFunctionWrapper

Inherits:
AbstractWrapper
  • Object
show all
Includes:
CalculationHelper
Defined in:
lib/metaheuristic_algorithms/function_wrappers/michaelwicz_function_wrapper.rb

Instance Method Summary collapse

Methods included from CalculationHelper

#bigdecimal_acos, #bigdecimal_asin, #bigdecimal_atan2, #bigdecimal_cos, #bigdecimal_exp, #bigdecimal_sin, #bigdecimal_sqrt, #bigdecimal_tan, #degree_to_radian, #radian_to_degree

Instance Method Details

#initial_decision_variable_value_estimatesObject



23
24
25
# File 'lib/metaheuristic_algorithms/function_wrappers/michaelwicz_function_wrapper.rb', line 23

def initial_decision_variable_value_estimates
  raise "#{__method__} method must be implemented in the subclass"
end

#maximum_decision_variable_valuesObject



10
11
12
# File 'lib/metaheuristic_algorithms/function_wrappers/michaelwicz_function_wrapper.rb', line 10

def maximum_decision_variable_values
  [BigDecimal('4'), BigDecimal('4')]
end

#miminum_decision_variable_valuesObject



14
15
16
# File 'lib/metaheuristic_algorithms/function_wrappers/michaelwicz_function_wrapper.rb', line 14

def miminum_decision_variable_values
  [BigDecimal('0'), BigDecimal('0')]
end

#objective_function_value(decision_variable_values) ⇒ Object



18
19
20
21
# File 'lib/metaheuristic_algorithms/function_wrappers/michaelwicz_function_wrapper.rb', line 18

def objective_function_value(decision_variable_values)
  -bigdecimal_sin(decision_variable_values[0]) * bigdecimal_sin(decision_variable_values[0].power(2) / BigMath.PI(10)).power(20) - 
  bigdecimal_sin(decision_variable_values[1]) * bigdecimal_sin(decision_variable_values[1].power(2) / BigMath.PI(10)).power(20)
end