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"])
Beispiel #3
0
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"])