Class MetropolisAcceptanceProbabilityFunction
- java.lang.Object
-
- dev.nm.solver.multivariate.unconstrained.annealing.acceptanceprobabilityfunction.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:
The reference has it: \(\pi_t(\mathbf{x}) = exp(-h(\mathbf{x})/T_t))\) This is the default acceptance probability function for 'normal' annealing.f(currentState) = currentEnergy f(previousState) = previousEnergy exp(-f(proposedState) / temperature) = exp(-proposedEnergy / temperature)
-
-
Constructor Summary
Constructors Constructor Description MetropolisAcceptanceProbabilityFunction()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description double
acceptanceProbability(Vector currentState, double currentEnergy, Vector proposedState, double proposedEnergy, double temperature)
Computes the probability that the next state transition will be accepted.
-
-
-
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 interfaceTemperedAcceptanceProbabilityFunction
- Parameters:
currentState
- the current state of the systemcurrentEnergy
- the energy in the current stateproposedState
- the proposed next state of the systemproposedEnergy
- the energy in the proposed statetemperature
- the current temperature- Returns:
- the acceptance probability
-
-