EvolutionaryOptimizer
EvolutionaryOptimizer
¤
A wrapper class for the evosax package. Note that we do not aim to solve any generic optimization problem, especially in a high dimension space.
Parameters¤
ndims : int The dimension of the parameter space. popsize : int The population size of the evolutionary algorithm. verbose : bool Whether to print the progress bar.
Attributes¤
strategy : evosax.CMA_ES The evolutionary strategy. es_params : evosax.CMA_ESParams The parameters of the evolutionary strategy. verbose : bool Whether to print the progress bar.
Methods¤
optimize(objective, bound, n_loops = 100, seed = 9527) Optimize the objective function. get_result() Get the best member and the best fitness.
Source code in flowMC/utils/EvolutionaryOptimizer.py
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 |
|
get_result()
¤
Get the best member and the best fitness.
Returns¤
best_member : (ndims,) ndarray The best member. best_fitness : float The best fitness.
Source code in flowMC/utils/EvolutionaryOptimizer.py
109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 |
|
optimize(objective, bound, n_loops=100, seed=9527, keep_history_step=0)
¤
Optimize the objective function.
Parameters¤
objective : Callable The objective function, which should be implemented in JAX. bound : (2, ndims) ndarray The bound of the parameter space. n_loops : int The number of iterations. seed : int The random seed.
Returns¤
None
Source code in flowMC/utils/EvolutionaryOptimizer.py
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
|