Class MetropolisAcceptanceCriteria<M extends Move<S,I>,S extends Solution<S,I>,I extends Instance>

java.lang.Object
es.urjc.etsii.grafo.improve.sa.MetropolisAcceptanceCriteria<M,S,I>
All Implemented Interfaces:
AcceptanceCriteria<M,S,I>

public class MetropolisAcceptanceCriteria<M extends Move<S,I>,S extends Solution<S,I>,I extends Instance> extends Object implements AcceptanceCriteria<M,S,I>
Default termination criteria based on metropolis exponential function
  • Constructor Details

    • MetropolisAcceptanceCriteria

      public MetropolisAcceptanceCriteria(Objective<M,S,I> objective)
  • Method Details

    • accept

      public boolean accept(M move, double currentTemperature)
      Description copied from interface: AcceptanceCriteria
      Simulated annealing acceptance criteria. A move can be applied if it either improves the objective function score or if the acceptance function returns true.
      Specified by:
      accept in interface AcceptanceCriteria<M extends Move<S,I>,S extends Solution<S,I>,I extends Instance>
      Parameters:
      move - move to test if accepted
      currentTemperature - current temperature
      Returns:
      true to accept, false to reject