LShade example

 1import time
 2
 3from opfunu.cec_based import F12014
 4
 5from detpy.DETAlgs.lshade import LSHADE
 6from detpy.DETAlgs.data.alg_data import LShadeData
 7from detpy.models.fitness_function import FitnessFunctionOpfunu
 8from detpy.models.enums import optimization, boundary_constrain
 9
10fitness_fun_opf = FitnessFunctionOpfunu(
11    func_type=F12014,
12    ndim=10
13)
14
15if __name__ == "__main__":
16    # Define parameters
17    num_of_nfe = 10_000
18    population_size = 100
19    dimension = 10
20
21    # Define LSHADE parameters using LShadeData
22    params_lshade = LShadeData(
23        max_nfe=num_of_nfe,
24        population_size=population_size,
25        dimension=dimension,
26        lb=[-100] * dimension,
27        ub=[100] * dimension,
28        show_plots=True,
29        # We want the plots to be rendered (Best fitness per NFE, Average fitness per NFE, Standard deviation per NFE)
30        optimization_type=optimization.OptimizationType.MINIMIZATION,
31        boundary_constraints_fun=boundary_constrain.BoundaryFixing.RANDOM,
32        function=fitness_fun_opf,
33        log_population=True,
34        parallel_processing=['thread', 1]
35    )
36
37    # Initialize and run LSHADE
38    start_time = time.time()
39    lshade = LSHADE(params_lshade, db_conn='DE.db', db_auto_write=False)
40    results = lshade.run()
41    elapsed_time = time.time() - start_time
42
43    # Extract and display results
44    best_fitness = min(epoch.best_individual.fitness_value for epoch in results.epoch_metrics)
45    print(f"Best Fitness Value: {best_fitness}")
46    print(f"Elapsed Time: {elapsed_time:.2f} seconds")