def test_find_glocal_maximum_for_nonsmooth_multipeak_function(self): nonsmooth_multipeak_function_wrapper = NonsmoothMultipeakFunctionWrapper( ) number_of_variables = 2 objective = "maximization" firefly_algorithm = FireflyAlgorithm( nonsmooth_multipeak_function_wrapper, number_of_variables, objective) number_of_fireflies = 10 maximun_generation = 10 randomization_parameter_alpha = 0.2 absorption_coefficient_gamma = 1.0 result = firefly_algorithm.search( number_of_fireflies=number_of_fireflies, maximun_generation=maximun_generation, randomization_parameter_alpha=randomization_parameter_alpha, absorption_coefficient_gamma=absorption_coefficient_gamma) # TODO: Improve accuracy: self.assertAlmostEqual(result["best_decision_variable_values"][0], 2.8327, delta=5) self.assertAlmostEqual(result["best_decision_variable_values"][1], -0.0038, delta=5) self.assertAlmostEqual(result["best_objective_function_value"], 3.4310, delta=5)
def execute_firefly_algorithm(args): objective_function = instantiate_objective_function(args.objective_function) from metaheuristic_algorithms.firefly_algorithm import FireflyAlgorithm firefly_algorithm = FireflyAlgorithm(objective_function, args.number_of_variables, args.objective) result = firefly_algorithm.search(number_of_fireflies = args.number_of_fireflies, maximun_generation = args.maximun_generation, randomization_parameter_alpha = args.randomization_parameter_alpha, absorption_coefficient_gamma = args.absorption_coefficient_gamma) print('best_decision_variable_values=', result["best_decision_variable_values"]) print('best_objective_function_value=', result["best_objective_function_value"])
def execute_firefly_algorithm(args): objective_function = instantiate_objective_function( args.objective_function) from metaheuristic_algorithms.firefly_algorithm import FireflyAlgorithm firefly_algorithm = FireflyAlgorithm(objective_function, args.number_of_variables, args.objective) result = firefly_algorithm.search( number_of_fireflies=args.number_of_fireflies, maximun_generation=args.maximun_generation, randomization_parameter_alpha=args.randomization_parameter_alpha, absorption_coefficient_gamma=args.absorption_coefficient_gamma) print('best_decision_variable_values=', result["best_decision_variable_values"]) print('best_objective_function_value=', result["best_objective_function_value"])
def test_find_glocal_maximum_for_nonsmooth_multipeak_function(self): nonsmooth_multipeak_function_wrapper = NonsmoothMultipeakFunctionWrapper() number_of_variables = 2 objective = "maximization" firefly_algorithm = FireflyAlgorithm(nonsmooth_multipeak_function_wrapper, number_of_variables, objective) number_of_fireflies = 10 maximun_generation = 10 randomization_parameter_alpha = 0.2 absorption_coefficient_gamma = 1.0 result = firefly_algorithm.search(number_of_fireflies = number_of_fireflies, maximun_generation = maximun_generation, randomization_parameter_alpha = randomization_parameter_alpha, absorption_coefficient_gamma = absorption_coefficient_gamma) # TODO: Improve accuracy: self.assertAlmostEqual(result["best_decision_variable_values"][0], 2.8327, delta = 5) self.assertAlmostEqual(result["best_decision_variable_values"][1], -0.0038, delta = 5) self.assertAlmostEqual(result["best_objective_function_value"], 3.4310, delta = 5)
# In[79]: import time from metaheuristic_algorithms.firefly_algorithm import FireflyAlgorithm start_time = time.time() print("------ Firefly Started ----") #from metaheuristic_algorithms.function_wrappers.rosenbrook_function_wrapper import RosenbrookFunctionWrapper #from metaheuristic_algorithms.function_wrappers.nonsmooth_multipeak_function_wrapper import NonsmoothMultipeakFunctionWrapper minimize_weights_function_wrapper = MinimizeWeightsSumSquareError() number_of_variables = 74 objective = "minimization" firefly_algo = FireflyAlgorithm(minimize_weights_function_wrapper, number_of_variables, objective) number_of_fireflies = 50 maximun_generation = 200 randomization_parameter_alpha = 0.2 absorption_coefficient_gamma = 1 result = firefly_algo.search(number_of_fireflies = number_of_fireflies, maximun_generation = maximun_generation, randomization_parameter_alpha = randomization_parameter_alpha, absorption_coefficient_gamma = absorption_coefficient_gamma) print(result["best_decision_variable_values"]) print("--- %s seconds ---" % (time.time() - start_time)) print(result["best_objective_function_value"])