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:
  1. Take a step of size noisy step in a random direction

  2. If it reduces the cost, keep the solution

  3. 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

cooling(temperature, cooling_schedule, temperature_decay, temperature_end, steps_total)[source]
post_process(traj, fitnesses_results)[source]

See post_process()

end(traj)[source]

See end()

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