Valuation (measure theory): Difference between revisions
en>Wikid77 25 changes: ce; condensed 2 {Citation} & updated surname3/given3 as last3/first3, etc. |
en>LokiClock →Dirac valuation: Forgot to remove disambiguation tag |
||
Line 1: | Line 1: | ||
The '''Wang and Landau algorithm''', proposed by Fugao Wang and [[David P. Landau]],<ref name=WangLandau/> is a [[Monte Carlo method]] designed to calculate the [[density of states]] of a system. The method performs a non-markovian random walk to build the density of states by quickly visiting all the available energy spectrum. The Wang and Landau algorithm is an important method to obtain the density of states required to perform a [[multicanonical ensemble|multicanonical simulation]]. | |||
The Wang–Landau algorithm can be applied to any system which is characterized by a cost (or energy) function. For instance, | |||
it has been applied to the solution of numerical integrals<ref name=Belardinelli_Integrals/> and the folding of proteins.<ref name=Ojeda1/><ref name=Ojeda2/> | |||
==Overview== | |||
The Wang and Landau algorithm is used to obtain the [[density of states]] of a system characterized by a cost function. It uses a non-markovian [[stochastic process]] which asymptotically converges to a [[multicanonical ensemble]].<ref name=WangLandau/> (I.e. to a [[Metropolis-Hastings algorithm]] with sampling distribution inverse to the density of states.) The major consequence is that this sampling distribution leads to a simulation where the energy barriers are invisible. This means that the algorithm visits all the accessible states (favorable and less favorable) much faster than a metropolis algorithm.<ref name=Berg/> | |||
==Algorithm== | |||
Consider a system defined on a phase space <math>\Omega</math>, and a cost function, E, (e.g. the energy), bounded on a spectrum <math>E\in\Gamma = [E_\min,E_\max]</math>, which has an associated density of states <math>\rho(E) \equiv \exp(S(E))</math>, which is to be computed. Because Wang and Landau algorithm works in discrete spectra,<ref name=WangLandau/> the spectrum <math>\Gamma</math> is divided in N discrete values with a difference between then of <math>\Delta</math>, such that | |||
:<math> N = \frac{E_\max-E_\min}{\Delta},</math>. | |||
Given this discrete spectrum, the algorithm is initialized by: | |||
*setting all entries of the entropy to zero, <math>S(E_i) = 0\ \ i=1,2,...,N</math> | |||
*initializing <math>f = 1</math> and | |||
*initializing the system randomly, by putting in a random configuration <math>\boldsymbol{r}\in\Omega</math>. | |||
The algorithm then performs a [[multicanonical ensemble]] like simulation:<ref name=WangLandau/> a [[Metropolis-Hastings algorithm|Metropolis-Hastings]] random walk in the phase space of the system with a probability distribution given by <math>P(\boldsymbol{r}) = 1/\rho(E(\boldsymbol{r})) = \exp (-S(E(\boldsymbol{r})))</math> and a probability of proposing a new state given by a probability distribution <math>g(\boldsymbol{r} \rightarrow \boldsymbol{r}')</math>. A histogram <math>H(E)</math> of visited energies is stored. Like in the Metropolis-Hastings algorithm, a proposal-acceptance step is performed, and consists in (see [[Metropolis–Hastings algorithm#Overview|Metropolis–Hastings algorithm overview]]): | |||
# proposing a state <math>\boldsymbol{r}'\in\Omega</math> according to <math>g(\boldsymbol{r} \rightarrow \boldsymbol{r}')</math> | |||
# accept/refusing the proposed state according to | |||
:::<math>A(x\rightarrow x') = \min\left(1,e^{S - S'}\frac{g(\boldsymbol{x}'\rightarrow \boldsymbol{x})}{g(\boldsymbol{x}\rightarrow \boldsymbol{x}')}\right)</math> | |||
:::where <math>S = S(E(\boldsymbol{r}))</math> and <math>S' = S(E(\boldsymbol{r}'))</math>. | |||
After each proposal-acceptance step, the system transits to some value <math>E_i</math>, <math>H(E_i)</math> is incremented by one and the following update is performed: | |||
:<math> S(E_i) \leftarrow S(E_i) + f</math>. | |||
This is the crucial step of the algorithm, and it is what make this Wang and Landau algorithm non-markovian: the [[stochastic process]] now depends on the history of the process. Nevertheless, the next time there is a proposal to a state with that particular energy <math>E_i</math>, that proposal is now more likely refused; in this sense, the algorithm forces the system to visit all the spectrum equally.<ref name=WangLandau/> The consequence is that the histogram <math>H(E)</math> is more and more flat. However, this flatness depends on how well approximated the calculated entropy is to the exact entropy, which naturally depends on the value of f.<ref name=Belardinelli_Saturation/> To better and better approximate the exact entropy (and thus histogram's flatness), f is decreased after M proposal-acceptance steps: | |||
:<math>f \leftarrow f/2</math>. | |||
It was latter shown that updating the f by constantly dividing by two can lead to saturation errors.<ref name=Belardinelli_Saturation/> A small modification to the Wang and Landau method to avoid this problem is to use the f factor proportional to <math>1/t</math>, where <math>t</math> is the number of steps of the simulation.<ref name=Belardinelli_Saturation/> | |||
==Test system== | |||
We want to obtain the DOS for the [[harmonic oscillator]] potential. | |||
:<math> E(x) = x^2, \, </math> | |||
The analytical DOS is given by, | |||
:<math> g(E) = \int \delta (E(x)-E_0) \, dx= \int \delta (x^2-E_0) \, dx,</math> | |||
by performing the last integral we obtain, | |||
:<math> g(E) \propto E^{-1/2},</math> | |||
in general, the DOS for a multidimensional harmonic oscillator will be given by some power of ''E'', the exponent will be a function of the dimension of the system. | |||
Hence, we can use a simple harmonic oscillator potential to test the accuracy of Wang–Landau algorithm because we know already the analytic form of the density of states. | |||
==Sample code== | |||
The following is a sample code of the Wang–Landau algorithm in [[Python (programming language)|Python]], considering that the proposal is such that | |||
:<math>\frac{g(\boldsymbol{x}'\rightarrow \boldsymbol{x})}{g(\boldsymbol{x}\rightarrow \boldsymbol{x}')}=1</math> | |||
The code considers a "system" which is the underlying system being studied. | |||
<source lang=python> | |||
currentEnergy = system.randomConfiguration() # a random initial configuration | |||
while (f > epsilon): | |||
system.proposeConfiguration() # a proposed configuration is proposed | |||
proposedEnergy = system.proposedEnergy() # the energy of the proposed configuration computed | |||
if (random() < exp(entropy[currentEnergy]-entropy[proposedEnergy])): | |||
# if accepted, update the energy and the system: | |||
currentEnergy = proposedEnergy | |||
system.acceptProposedConfiguration() | |||
else: | |||
# if rejected | |||
system.rejectProposedConfiguration() | |||
H[currentEnergy] += 1 | |||
entropy[currentEnergy] += f | |||
if (isFlat(H)): # isFlat tests whether the histogram is flat (e.g. 95% flatness) | |||
H[:] = 0 | |||
f *= 0.5 # refine the f parameter | |||
</source> | |||
==Wang and Landau molecular dynamics== | |||
It should be noted that the Wang and Landau algorithm can be implemented not only in a Monte Carlo simulation but also in a molecular dynamics simulation. To do this would require an escalation of the temperature of the system as follows: | |||
:<math> T'(E) \rightarrow (\partial S(E)/\partial E) T(E),</math> | |||
where <math>S(E)</math> is the entropy of the system, <math>T(E)</math> the micro-canonical temperature and <math>T'(E)</math> is the "scaled" temperature used in the simulation. | |||
==References== | |||
{{reflist|refs= | |||
<ref name=WangLandau> | |||
{{cite journal | |||
| title = Efficient, Multiple-Range Random Walk Algorithm to Calculate the Density of States | |||
| author = Wang, Fugao and Landau, D. P. | |||
| journal = Phys. Rev. Lett. | |||
| volume = 86 | |||
| issue = 10 | |||
| pages = 2050–2053 | |||
|date=Mar 2001 | |||
| pmid = 11289852 | |||
| doi = 10.1103/PhysRevLett.86.2050 | |||
| publisher = American Physical Society | |||
| bibcode=2001PhRvL..86.2050W | |||
|arxiv = cond-mat/0011174 }} | |||
</ref> | |||
<ref name=Belardinelli_Integrals> | |||
{{cite journal | |||
| title = Analysis of the convergence of the 1∕t and Wang–Landau algorithms in the calculation of multidimensional integrals | |||
| author = R. E. Belardinelli and S. Manzi and V. D. Pereyra | |||
| journal = Phys. Rev. E | |||
| volume = 78 | |||
| page = 067701 | |||
|date=Dec 2008 | |||
| doi = 10.1103/PhysRevE.78.067701 | |||
| publisher = American Physical Society | |||
| issue = 6 | |||
|arxiv = 0806.0268 |bibcode = 2008PhRvE..78f7701B }} | |||
</ref> | |||
<ref name=Ojeda1> | |||
{{cite journal | |||
| title = Monte Carlo Simulations of Proteins in Cages: Influence of Confinement on the Stability of Intermediate States | |||
| author = P. Ojeda and M. Garcia and A. Londono and N.Y. Chen | |||
| journal = Biophys. Jour. | |||
| volume = 96 | |||
| issue = 3 | |||
| pages = 1076–1082 | |||
|date=Feb 2009 | |||
| doi = 10.1529/biophysj.107.125369 | |||
| publisher = Biophysical Society | |||
| bibcode=2009BpJ....96.1076O | |||
}} | |||
</ref> | |||
<ref name=Ojeda2> | |||
{{cite journal | |||
| title = Electric Field-Driven Disruption of a Native beta-Sheet Protein Conformation and Generation of alpha-Helix-Structure | |||
| author = P. Ojeda and M. Garcia | |||
| journal = Biophys. Jour. | |||
| volume = 99 | |||
| issue = 2 | |||
| pages = 595–599 | |||
|date=Jul 2010 | |||
| doi = 10.1016/j.bpj.2010.04.040 | |||
| publisher = Biophysical Society | |||
| bibcode=2009BpJ....96.1076O | |||
| pmid=20643079 | |||
| pmc=2905109 | |||
}} | |||
</ref> | |||
<ref name=Berg>{{Cite doi|10.1103/PhysRevLett.68.9}}</ref> | |||
<ref name=Belardinelli_Saturation> | |||
{{cite journal | |||
| title = Wang–Landau algorithm: A theoretical analysis of the saturation of the error | |||
| author = Belardinelli, R. E. and Pereyra, V. D. | |||
| journal = Jour. Chem. Phys. | |||
| volume = 127 | |||
| issue = 18 | |||
| page = 184105 | |||
| year = 2007 | |||
| doi = 10.1063/1.2803061 | |||
|arxiv = cond-mat/0702414 |bibcode = 2007JChPh.127r4105B }} | |||
</ref> | |||
}} | |||
[[Category:Markov chain Monte Carlo]] | |||
[[Category:Statistical algorithms]] | |||
[[Category:Computational physics]] |
Revision as of 00:36, 12 October 2013
The Wang and Landau algorithm, proposed by Fugao Wang and David P. Landau,[1] is a Monte Carlo method designed to calculate the density of states of a system. The method performs a non-markovian random walk to build the density of states by quickly visiting all the available energy spectrum. The Wang and Landau algorithm is an important method to obtain the density of states required to perform a multicanonical simulation.
The Wang–Landau algorithm can be applied to any system which is characterized by a cost (or energy) function. For instance, it has been applied to the solution of numerical integrals[2] and the folding of proteins.[3][4]
Overview
The Wang and Landau algorithm is used to obtain the density of states of a system characterized by a cost function. It uses a non-markovian stochastic process which asymptotically converges to a multicanonical ensemble.[1] (I.e. to a Metropolis-Hastings algorithm with sampling distribution inverse to the density of states.) The major consequence is that this sampling distribution leads to a simulation where the energy barriers are invisible. This means that the algorithm visits all the accessible states (favorable and less favorable) much faster than a metropolis algorithm.[5]
Algorithm
Consider a system defined on a phase space , and a cost function, E, (e.g. the energy), bounded on a spectrum , which has an associated density of states , which is to be computed. Because Wang and Landau algorithm works in discrete spectra,[1] the spectrum is divided in N discrete values with a difference between then of , such that
Given this discrete spectrum, the algorithm is initialized by:
- setting all entries of the entropy to zero,
- initializing and
- initializing the system randomly, by putting in a random configuration .
The algorithm then performs a multicanonical ensemble like simulation:[1] a Metropolis-Hastings random walk in the phase space of the system with a probability distribution given by and a probability of proposing a new state given by a probability distribution . A histogram of visited energies is stored. Like in the Metropolis-Hastings algorithm, a proposal-acceptance step is performed, and consists in (see Metropolis–Hastings algorithm overview):
After each proposal-acceptance step, the system transits to some value , is incremented by one and the following update is performed:
This is the crucial step of the algorithm, and it is what make this Wang and Landau algorithm non-markovian: the stochastic process now depends on the history of the process. Nevertheless, the next time there is a proposal to a state with that particular energy , that proposal is now more likely refused; in this sense, the algorithm forces the system to visit all the spectrum equally.[1] The consequence is that the histogram is more and more flat. However, this flatness depends on how well approximated the calculated entropy is to the exact entropy, which naturally depends on the value of f.[6] To better and better approximate the exact entropy (and thus histogram's flatness), f is decreased after M proposal-acceptance steps:
It was latter shown that updating the f by constantly dividing by two can lead to saturation errors.[6] A small modification to the Wang and Landau method to avoid this problem is to use the f factor proportional to , where is the number of steps of the simulation.[6]
Test system
We want to obtain the DOS for the harmonic oscillator potential.
The analytical DOS is given by,
by performing the last integral we obtain,
in general, the DOS for a multidimensional harmonic oscillator will be given by some power of E, the exponent will be a function of the dimension of the system.
Hence, we can use a simple harmonic oscillator potential to test the accuracy of Wang–Landau algorithm because we know already the analytic form of the density of states.
Sample code
The following is a sample code of the Wang–Landau algorithm in Python, considering that the proposal is such that
The code considers a "system" which is the underlying system being studied.
currentEnergy = system.randomConfiguration() # a random initial configuration
while (f > epsilon):
system.proposeConfiguration() # a proposed configuration is proposed
proposedEnergy = system.proposedEnergy() # the energy of the proposed configuration computed
if (random() < exp(entropy[currentEnergy]-entropy[proposedEnergy])):
# if accepted, update the energy and the system:
currentEnergy = proposedEnergy
system.acceptProposedConfiguration()
else:
# if rejected
system.rejectProposedConfiguration()
H[currentEnergy] += 1
entropy[currentEnergy] += f
if (isFlat(H)): # isFlat tests whether the histogram is flat (e.g. 95% flatness)
H[:] = 0
f *= 0.5 # refine the f parameter
Wang and Landau molecular dynamics
It should be noted that the Wang and Landau algorithm can be implemented not only in a Monte Carlo simulation but also in a molecular dynamics simulation. To do this would require an escalation of the temperature of the system as follows:
where is the entropy of the system, the micro-canonical temperature and is the "scaled" temperature used in the simulation.
References
43 year old Petroleum Engineer Harry from Deep River, usually spends time with hobbies and interests like renting movies, property developers in singapore new condominium and vehicle racing. Constantly enjoys going to destinations like Camino Real de Tierra Adentro.
- ↑ 1.0 1.1 1.2 1.3 1.4 Cite error: Invalid
<ref>
tag; no text was provided for refs namedWangLandau
- ↑ Cite error: Invalid
<ref>
tag; no text was provided for refs namedBelardinelli_Integrals
- ↑ Cite error: Invalid
<ref>
tag; no text was provided for refs namedOjeda1
- ↑ Cite error: Invalid
<ref>
tag; no text was provided for refs namedOjeda2
- ↑ Cite error: Invalid
<ref>
tag; no text was provided for refs namedBerg
- ↑ 6.0 6.1 6.2 Cite error: Invalid
<ref>
tag; no text was provided for refs namedBelardinelli_Saturation