def test_find_glocal_minimum_for_michaelwicz_function(self):

        michaelwicz_function_wrapper = MichaelwiczFunctionWrapper()

        number_of_variables = 2
        objective = "minimization"

        simplified_particle_swarm_optimization = SimplifiedParticleSwarmOptimization(
            michaelwicz_function_wrapper, number_of_variables, objective)

        number_of_particiles = 20
        number_of_iterations = 15
        social_coefficient = 0.5
        random_variable_coefficient = 0.2

        result = simplified_particle_swarm_optimization.search(
            number_of_particiles=number_of_particiles,
            number_of_iterations=number_of_iterations,
            social_coefficient=social_coefficient,
            random_variable_coefficient=random_variable_coefficient)

        self.assertAlmostEqual(result["best_decision_variable_values"][0],
                               2.1701,
                               delta=1)
        self.assertAlmostEqual(result["best_decision_variable_values"][1],
                               1.5703,
                               delta=1)
        self.assertAlmostEqual(result["best_objective_function_value"],
                               -1.7843,
                               delta=1)
示例#2
0
def execute_simplified_particle_swarm_optimization(args):
    objective_function = instantiate_objective_function(
        args.objective_function)

    from metaheuristic_algorithms.simplified_particle_swarm_optimization import SimplifiedParticleSwarmOptimization
    simplified_particle_swarm_optimization = SimplifiedParticleSwarmOptimization(
        objective_function, args.number_of_variables, args.objective)

    result = simplified_particle_swarm_optimization.search(
        number_of_particiles=args.number_of_particiles,
        number_of_iterations=args.number_of_iterations,
        social_coefficient=args.social_coefficient,
        random_variable_coefficient=args.random_variable_coefficient)

    print('best_decision_variable_values=',
          result["best_decision_variable_values"])
    print('best_objective_function_value=',
          result["best_objective_function_value"])