Optimizer using Simulated Annealing¶
SimulatedAnnealingOptimizer¶
-
class
l2l.optimizers.simulatedannealing.optimizer.
SimulatedAnnealingOptimizer
(traj, optimizee_create_individual, optimizee_fitness_weights, parameters, optimizee_bounding_func=None)[source]¶ Bases:
l2l.optimizers.optimizer.Optimizer
Class for a generic simulate annealing solver. In the pseudo code the algorithm does:
- For n iterations do:
Take a step of size noisy step in a random direction
If it reduces the cost, keep the solution
Otherwise keep with probability exp(- (f_new - f) / T)
NOTE: This expects all parameters of the system to be of floating point
- Parameters
traj (Trajectory) – Use this trajectory to store the parameters of the specific runs. The parameters should be initialized based on the values in parameters
optimizee_create_individual – Function that creates a new individual
optimizee_fitness_weights – Fitness weights. The fitness returned by the Optimizee is multiplied by these values (one for each element of the fitness vector)
parameters – Instance of
namedtuple()
SimulatedAnnealingParameters
containing the parameters needed by the Optimizer
-
post_process
(traj, fitnesses_results)[source]¶ See
post_process()
SimulatedAnnealingParameters¶
-
class
l2l.optimizers.simulatedannealing.optimizer.
SimulatedAnnealingParameters
(n_parallel_runs, noisy_step, temp_decay, n_iteration, stop_criterion, seed, cooling_schedule)¶ Bases:
tuple
- Parameters
n_parallel_runs – Number of individuals per simulation / Number of parallel Simulated Annealing runs
noisy_step – Size of the random step
temp_decay – A function of the form f(t) = temperature at time t
n_iteration – number of iteration to perform
stop_criterion – Stop if change in fitness is below this value
seed – Random seed
cooling_schedule – Which of the available schedules to use
-
property
cooling_schedule
¶
-
property
n_iteration
¶
-
property
n_parallel_runs
¶
-
property
noisy_step
¶
-
property
seed
¶
-
property
stop_criterion
¶
-
property
temp_decay
¶