Class MetropolisAcceptanceProbabilityFunction

  • All Implemented Interfaces:
    TemperedAcceptanceProbabilityFunction

    public class MetropolisAcceptanceProbabilityFunction
    extends Object
    implements TemperedAcceptanceProbabilityFunction
    Uses the classic Metropolis rule, f_{t+1}/f_t. The density function is given by:
     f(currentState) = currentEnergy
     f(previousState) = previousEnergy
     exp(-f(proposedState) / temperature) = exp(-proposedEnergy / temperature)
     
    The reference has it: \(\pi_t(\mathbf{x}) = exp(-h(\mathbf{x})/T_t))\) This is the default acceptance probability function for 'normal' annealing.
    • Constructor Detail

      • MetropolisAcceptanceProbabilityFunction

        public MetropolisAcceptanceProbabilityFunction()
    • Method Detail

      • acceptanceProbability

        public double acceptanceProbability​(Vector currentState,
                                            double currentEnergy,
                                            Vector proposedState,
                                            double proposedEnergy,
                                            double temperature)
        Description copied from interface: TemperedAcceptanceProbabilityFunction
        Computes the probability that the next state transition will be accepted.
        Specified by:
        acceptanceProbability in interface TemperedAcceptanceProbabilityFunction
        Parameters:
        currentState - the current state of the system
        currentEnergy - the energy in the current state
        proposedState - the proposed next state of the system
        proposedEnergy - the energy in the proposed state
        temperature - the current temperature
        Returns:
        the acceptance probability