Interface CoolDownControl<M extends Move<S,I>,S extends Solution<S,I>,I extends Instance>

All Known Implementing Classes:
ExponentialCoolDown
Functional Interface:
This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.

@FunctionalInterface public interface CoolDownControl<M extends Move<S,I>,S extends Solution<S,I>,I extends Instance>
Specify how the temperature changes in each simulated annealing iteration. Given current iteration and temperature set next iteration temperature. It is recommended to use a lambda expression instead of extending this interface directly.
  • Method Summary

    Modifier and Type
    Method
    Description
    double
    coolDown(S solution, Neighborhood<M,S,I> neighborhood, double currentTemperature, int iteration)
    Set temperature for the next iteration of simulated annealing
  • Method Details

    • coolDown

      double coolDown(S solution, Neighborhood<M,S,I> neighborhood, double currentTemperature, int iteration)
      Set temperature for the next iteration of simulated annealing
      Parameters:
      solution - current best solution
      neighborhood - neighborhood used in the SA
      currentTemperature - current temperature (before cooldown)
      iteration - current iteration
      Returns:
      new temperature