[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci
This commit is contained in:
pre-commit-ci[bot] 2024-10-05 06:30:00 +00:00
parent 796d80b61d
commit 57feaea9a6

View File

@ -1,6 +1,7 @@
from collections.abc import Callable # Sorted import from collections.abc import Callable # Sorted import
import numpy as np # Sorted import import numpy as np # Sorted import
class GeneticAlgorithmOptimizer: class GeneticAlgorithmOptimizer:
def __init__( def __init__(
self, self,
@ -58,8 +59,12 @@ class GeneticAlgorithmOptimizer:
if self.rng.random() < self.crossover_probability: if self.rng.random() < self.crossover_probability:
crossover_point = self.rng.integers(1, self.num_variables) crossover_point = self.rng.integers(1, self.num_variables)
child1 = np.concatenate((parent1[:crossover_point], parent2[crossover_point:])) child1 = np.concatenate(
child2 = np.concatenate((parent2[:crossover_point], parent1[crossover_point:])) (parent1[:crossover_point], parent2[crossover_point:])
)
child2 = np.concatenate(
(parent2[:crossover_point], parent1[crossover_point:])
)
return child1, child2 return child1, child2
return parent1, parent2 return parent1, parent2
@ -71,7 +76,7 @@ class GeneticAlgorithmOptimizer:
mutation_index = self.rng.integers(0, self.num_variables) mutation_index = self.rng.integers(0, self.num_variables)
individual[mutation_index] = self.rng.uniform( individual[mutation_index] = self.rng.uniform(
self.variable_bounds[mutation_index, 0], self.variable_bounds[mutation_index, 0],
self.variable_bounds[mutation_index, 1] self.variable_bounds[mutation_index, 1],
) )
return individual return individual
@ -105,11 +110,15 @@ class GeneticAlgorithmOptimizer:
best_fitness_value = fitness_values[min_fitness_index] best_fitness_value = fitness_values[min_fitness_index]
best_solution = population[min_fitness_index] best_solution = population[min_fitness_index]
print(f"Generation {generation + 1}, Best Fitness Value: {best_fitness_value}") print(
f"Generation {generation + 1}, Best Fitness Value: {best_fitness_value}"
)
return best_solution, best_fitness_value return best_solution, best_fitness_value
if __name__ == "__main__": if __name__ == "__main__":
def objective_function(x: float, y: float) -> float: def objective_function(x: float, y: float) -> float:
""" """
Example objective function to minimize x^2 + y^2 Example objective function to minimize x^2 + y^2
@ -119,8 +128,7 @@ if __name__ == "__main__":
variable_bounds: list[tuple[float, float]] = [(-10, 10), (-10, 10)] variable_bounds: list[tuple[float, float]] = [(-10, 10), (-10, 10)]
optimizer = GeneticAlgorithmOptimizer( optimizer = GeneticAlgorithmOptimizer(
objective_function=objective_function, objective_function=objective_function, variable_bounds=variable_bounds
variable_bounds=variable_bounds
) )
best_solution, best_fitness_value = optimizer.optimize() best_solution, best_fitness_value = optimizer.optimize()