summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJaron Kent-Dobias <jaron@kent-dobias.com>2017-10-23 21:52:07 -0400
committerJaron Kent-Dobias <jaron@kent-dobias.com>2017-10-23 21:52:07 -0400
commit6fb87aa2b1b50af5e5be6fb02b463cb6b72a4425 (patch)
treeb5f20ae3ce192f255b9178df1ec20ceee95bd206
parent0ceefdc60f6f63e53f6939027d2cd5cd2cd5b280 (diff)
downloadPRE_98_063306-6fb87aa2b1b50af5e5be6fb02b463cb6b72a4425.tar.gz
PRE_98_063306-6fb87aa2b1b50af5e5be6fb02b463cb6b72a4425.tar.bz2
PRE_98_063306-6fb87aa2b1b50af5e5be6fb02b463cb6b72a4425.zip
a lot of writing
-rw-r--r--monte-carlo.tex356
1 files changed, 354 insertions, 2 deletions
diff --git a/monte-carlo.tex b/monte-carlo.tex
index 5cf41fe..6509eab 100644
--- a/monte-carlo.tex
+++ b/monte-carlo.tex
@@ -7,6 +7,8 @@
\usepackage[utf8]{inputenc}
\usepackage{amsmath,amssymb,latexsym,mathtools,xifthen}
+\usepackage{algorithm}
+\usepackage{algorithmic}
% uncomment to label only equations that are referenced in the text
%\mathtoolsset{showonlyrefs=true}
@@ -25,6 +27,9 @@
\def\dd{d} % differential
\def\O{O} % big O
\def\o{o} % little O
+\def\Z{\mathbb Z}
+\def\R{\mathbb R}
+\def\G{S}
% subscript for ``critical'' values, e.g., T_\c
\def\c{\mathrm c}
@@ -37,6 +42,8 @@
\def\fS{\mathcal S} % surface tension
\def\fG{\mathcal G} % exponential factor
+\def\H{\mathcal H}
+
% lattice types
\def\sq{\mathrm{sq}}
\def\tri{\mathrm{tri}}
@@ -56,6 +63,17 @@
\frac{\partial\tmp#2}{\partial#3\tmp}
}
+\newcommand\nn[2]{\langle#1#2\rangle}
+\newcommand\avg[1]{\langle#1\rangle}
+\newcommand\eavg[1]{\langle#1\rangle_{\mathrm e}}
+\newcommand\mavg[1]{\langle#1\rangle_{\mathrm m}}
+\def\e{\mathrm e}
+\def\m{\mathrm m}
+\newcommand\new[1]{\tilde{#1}}
+
+\renewcommand\vec[1]{\mathbf{#1}}
+\newcommand\unit[1]{\hat{\mathbf{#1}}}
+
% used to reformat display math to fit in two-column ``reprint'' mode
\makeatletter
\newif\ifreprint
@@ -64,7 +82,9 @@
\begin{document}
-\title{A cluster algorithm for an Ising model in an external field}
+\algsetup{indent=1em}
+
+\title{A cluster algorithm for the Ising model in an external field}
\author{Jaron Kent-Dobias}
\author{James P.~Sethna}
\affiliation{Laboratory of Atomic and Solid State Physics, Cornell University, Ithaca, NY, USA}
@@ -77,12 +97,344 @@
\maketitle
+\section{Introduction}
+
+The Ising model is a simple model of a magnet. It is comprised of $n$ sites
+arranged in a regular lattice. At every site $i$ is a magnetic spin that can
+be oriented up or down, corresponding to a local magnetization $s_i$ with
+value $1$ or $-1$, respectively. Configurations of the spins are uniquely
+described by the local magnetization of every site,
+so the model's
+configuration space is $\G^n=\G\times\cdots\times\G$ for $\G=\{-1,1\}$
+and states of the model are given by $s=(s_1,\ldots,s_n)\in\G^n$. The
+Ising Hamiltonian $\H:\G^n\to\R$ gives the energy of a particular state
+$s\in\G^n$ by
+\[
+ \H(s)=-\frac12\sum_{i=1}^n\sum_{j=1}^nJ_{ij}s_is_j-HM(s)
+ \label{eq:ham}
+\]
+where $H$ is the external magnetic field, $M:\G^n\to\R$ is the magnetization
+and is defined for $s\in\G^n$ by
+\[
+ M(s)=\sum_{i=1}^ns_i,
+\]
+and the spin--spin coupling $J$ is defined by
+\[
+ J_{ij}=\begin{cases}
+ 1 & \text{$i$, $j$ are neighboring sites}\\
+ 0 & \text{otherwise.}
+ \end{cases}
+\]
+The quantities of interest in statistical physics are averaged out over
+timescales large compared to the dynamics of the system. If $A:\G^n\to\R$ is a
+physical quantity that depends on the model's configuration and $s(t)$ gives
+the configuration as a function of time $t$, then
+\[
+ \bar A=\lim_{T\to\infty}\frac1T\int_0^TA(s(t))\,\dd t
+\]
+Typically the average value of physical quantities is not actually computed by
+taking a time average. Instead, the ergodic hypothesis is applied, which
+stipulates that the system's dynamics access all states $s\in S^n$ with relative
+duration $e^{-\beta\H(s)}$, so that the time average can be written as the
+ensemble average, or the average over configuration space,
+\[
+ \avg A=\frac{\sum_se^{-\beta\H(s)}A(s)}{\sum_se^{-\beta\H(s)}}
+ =\frac1Z\sum_se^{-\beta\H(s)}A(s),
+ \label{eq:avg.obs}
+\]
+where $\beta=1/kT$ is the inverse temperature in energy units and
+\[
+ Z=\sum_se^{-\beta\H(s)}
+\]
+is the partition function.
+
+Monte Carlo methods attempt to estimate quantities of the form
+\eqref{eq:avg.obs} without doing the often intractable sum explicitly by
+sampling the set of possible states such that a state $s$ is sampled with
+probably $e^{-\beta\H(s)}$, appropriately weighting each state's contribution
+to the sum. A common way of doing this is the Markov-chain Monte Carlo
+approach, which steps through configuration space using a Markov process whose
+equilibrium distribution is Boltzmann. One of the most popular of these is the
+Metropolis--Hastings algorithm, shown in Algorithm \ref{alg:met-hast}. One
+spin in the current state $s$ is randomly chosen and perturbed. The new state
+is accepted if the resulting change in energy is negative, or with probability
+$e^{-\beta\Delta\H}$ if the change is positive. Thermodynamic averages of
+functions of the state can be made by periodically sampling from this loop for
+times much longer than the autocorrelation time of the Markov process.
+
+\begin{figure}
+ \begin{algorithm}[H]
+ \begin{algorithmic}
+ \REQUIRE $s\in\G^n$
+ \LOOP
+ \STATE $s'\gets s$
+ \STATE $i \gets\text{random integer between $1$ and $n$}$
+ \STATE $s'_i\gets-s_i$
+ \IF{$e^{-\beta(\H(s')-\H(s))}\geq\text{random number between $0$ and $1$}$}
+ \STATE $s\gets s'$
+ \ENDIF
+ \ENDLOOP
+ \end{algorithmic}
+ \caption{Metropolis--Hastings}
+ \label{alg:met-hast}
+ \end{algorithm}
+\end{figure}
+
+This algorithm is very generic and works well for many models. However, near
+the critical point of the Ising model it suffers from critical slowing down,
+where the autocorrelation time of the algorithm diverges with proximity to the
+critical point.
+The Wolff algorithm is such a method that is very efficient when
+$H=0$, i.e., in the absence of an external field. It is shown in Algorithm
+\ref{alg:wolff}. Briefly, whole clusters of spins are flipped in a way that
+correctly samples states from the Boltzmann distribution while never rejecting
+a flip attempt. A random spin is selected, then flipped. Each of the spin's
+neighbors that was initially oriented the same direction as the spin is then
+flipped with probability $1-e^{-2\beta}$, and the same is true recursively for
+each of those flipped spins' neighbors.
+
+The Wolff algorithm solves many of the problems of the Metropolis--Hastings
+algorithm, but only in the absence of a field, since it depends on the natural
+symmetry $\H(s)=\H(-s)$ which is true only when $H=0$. The Wolff algorithm
+can be extended to work in a field by combining it with aspects of the
+Metropolis--Hastings algorithm in what we will refer to as the hybrid
+Wolff/Metropolis--Hastings. In each step of this algorithm, a Wolff-style
+cluster is constructed exactly as above. Instead of moving on, however, the
+system is reverted to its previous state with probability
+$\max\{0,1-e^{\beta\Delta M H}\}$, where $\Delta M$ is the change in
+magnetization due to the cluster flip. This is precisely a
+Metropolis--Hastings step where the perturbation of $s$ to $s'$ is the Wolff
+cluster and, since the detailed balance with respect to the spin--spin energy
+is performed by the cluster creation, only the change in energy due to the
+external field is considered. For $H=0$ this reverts to the Wolff algorithm
+exactly. A strictly faster version of this algorithm is accomplished by
+evaluating the probability that the cluster-building is reverted at every step
+in its formation, so that large unlikely clusters abandoned before very much
+time is wasted in constructing them. This algorithm is given as follows.
+
+\begin{figure}
+ \begin{algorithm}[H]
+ \begin{algorithmic}
+ \REQUIRE $s\in\G^n$
+ \STATE \textbf{let} $q$ be an empty stack
+ \STATE \textbf{let} $i_0$ be the index of a random site
+ \STATE $q.\mathrm{push}(i_0)$
+ \STATE $\sigma\gets s_{i_0}$
+ \WHILE {$q$ is not empty}
+ \STATE $i\gets q.\mathrm{pop}$
+ \IF {$s_i=\sigma$}
+ \FOR {$j=1$ \TO $n$}
+ \IF {$1-e^{-2\beta J_{ij}s_is_j}\geq$ random number
+ between 0 and 1}
+ \STATE $q.\mathrm{push}(j)$
+ \ENDIF
+ \ENDFOR
+ \STATE $s_i\gets-s_i$
+ \ENDIF
+ \ENDWHILE
+ \end{algorithmic}
+ \caption{Wolff (Zero-Field)}
+ \label{alg:wolff}
+ \end{algorithm}
+\end{figure}
+
+
+\begin{figure}
+ \begin{algorithm}[H]
+ \begin{algorithmic}
+ \REQUIRE $s\in\G^n$
+ \STATE \textbf{let} $q_1$ and $q_2$ be empty stacks
+ \STATE \textbf{let} $i_0$ be the index of a random site
+ \STATE $q_1.\mathrm{push}(i_0)$
+ \STATE $\sigma\gets s_{i_0}$
+ \STATE stopped $\gets$ \FALSE
+ \WHILE {$q_1$ is not empty}
+ \STATE $i\gets q_1.\mathrm{pop}$
+ \IF {$s_i=\sigma$}
+ \FORALL {$j>0$ such that $J_{ij}\neq0$}
+ \IF {$s_is_j=1$ \AND $1-e^{-2\beta J_{ij}}\geq$ random number
+ between 0 and 1}
+ \STATE $q_1.\mathrm{push}(j)$
+ \ENDIF
+ \ENDFOR
+ \STATE $s_i\gets-s_i$
+ \STATE $q_2.\mathrm{push}(i)$
+ \IF {$1-e^{-2\beta\sigma H}>$ random number between 0 and 1}
+ \STATE stopped $\gets$ \TRUE
+ \STATE \textbf{break}
+ \ENDIF
+ \ENDIF
+ \ENDWHILE
+ \IF {stopped}
+ \WHILE {$q_2$ is not empty}
+ \STATE $i\gets q_2.\mathrm{pop}$
+ \STATE $s_i\gets-s_i$
+ \ENDWHILE
+ \ENDIF
+ \end{algorithmic}
+ \caption{Hybrid Wolff/Metropolis--Hastings}
+ \label{alg:h.wolff}
+ \end{algorithm}
+\end{figure}
+
+\section{Cluster-flip in a Field}
+
+Consider a system whose state $s=\{s_0,s_1,\ldots,s_n\}$ $s\in\Z_2^{n+1}$ is specified by the
+value of $n+1$ boolean variables with the Hamiltonian
+\[
+ \new\H(s)=-\sum_{i=0}^n\sum_{j=0}^n\new J_{ij}s_is_j,
+ \label{eq:new.ham}
+\]
+where
+\[
+ \new J_{ij}=\begin{cases}
+ 1 & \text{$i,j>0$, $i$, $j$ are neighboring sites}\\
+ H & \text{$i=0$ or $j=0$}\\
+ 0 & \text{otherwise}
+ \end{cases}
+\]
+gives the coupling. Since \eqref{eq:new.ham} is a discrete-spin Hamiltonian
+invariant under the transformation $s\to-s$, it directly admits analysis using
+the Wolff algorithm specified above. By rewriting the sums, however, we also
+see that
+\[
+ \new\H(s)=-\frac12\sum_{i=1}^n\sum_{j=1}^nJ_{ij}s_is_j-H\new M(s)
+ \label{eq:mod_hamiltonian}
+\]
+where
+\[
+ \new M(s)=s_0\sum_{i=1}^ns_i
+\]
+This is precisely the same Hamiltonian as \eqref{eq:ham} but with a redefined
+magnetization whose sign depends on the state of the zeroth spin. Our
+algorithm for sampling the Ising model in a field, then, is simply the Wolff
+algorithm described above with $\tilde J_{ij}$ replacing $J_{ij}$. These are
+formally equivalent, since every state $s\in S$ corresponds to two states
+$\tilde s\in\tilde S$, $\tilde s=\pm(1,s)$, such that $\H(s)=\tilde\H(\tilde
+s)$. We therefore have
+\begin{align}
+ \avg A_{\tilde S}
+ &=\frac{\sum_{\tilde s}e^{-\beta\tilde\H(\tilde
+ s)}A(s_0s)}{\sum_{\tilde s}e^{-\beta\tilde\H(\tilde s)}}\\
+ &=\frac{\sum_se^{-\beta\tilde\H(s_0,s)}A(s)+\sum_se^{-\beta\tilde\H(-s_0,-s)}A(s)}{\sum_se^{-\beta\tilde\H(1,s)}+\sum_se^{-\beta\tilde\H(-1,-s)}}\\
+ &=\avg A_S
+\end{align}
+$\tilde A(s_0,s)=A(s_0s)$. This is true for the mangetization $\tilde M$ as
+defined above, for instance.
+
+\begin{figure}
+ \begin{algorithm}[H]
+ \begin{algorithmic}
+ \REQUIRE $s\in\G^n$
+ \STATE \textbf{let} $q$ be an empty stack
+ \STATE \textbf{let} $i_0$ be the index of a random site
+ \STATE $q.\mathrm{push}(i_0)$
+ \STATE $\sigma\gets s_{i_0}$
+ \WHILE {$q$ is not empty}
+ \STATE $i\gets q.\mathrm{pop}$
+ \IF {$s_i=\sigma$}
+ \FOR {$j=0$ \TO $n$}
+ \IF {$1-\exp(-2\beta \tilde J_{ij}s_is_j)\geq$ random number
+ between 0 and 1}
+ \STATE $q.\mathrm{push}(j)$
+ \ENDIF
+ \ENDFOR
+ \STATE $s_i\gets-s_i$
+ \ENDIF
+ \ENDWHILE
+ \end{algorithmic}
+ \caption{Wolff (Non-zero Field)}
+ \label{alg:wolff-field}
+ \end{algorithm}
+\end{figure}
+
+
+At sufficiently small $H$ both our algorithm and the hybrid Wolff--Metropolis reduce
+to the ordinary Wolff algorithm. At very large $H$, the hybrid
+Wolff--Metropolis behaves exactly like Metropolis, where almost only one spin
+is ever flipped at a time with probability $\sim e^{-2\beta H}$, since the
+energy is dominated by the field.
+
+We measured the correlation time $\tau$ of these three algorithms at various fields
+and temperatures. This was done using a batch mean. Time was measured as ``the
+number of spins that have either been attempted to flip or attempted to add to
+a cluster.''
+
+$E_s=A_s+XB_s$
+\[
+ \pd{\avg B}X=\beta\big(\avg{B^2}-\avg B^2\big)
+\]
+\[
+ \chi=\pd{\avg M}H=\beta\big(\avg{M^2}-\avg M^2\big)
+\]
+
+Since \eqref{eq:mod_hamiltonian} has the form of a simple (ferromagnetic)
+spin-spin Hamiltonian, its ensemble average can be taken using the Wolff
+algorithm while never rejecting a step.
+
+
+\section{Magnetization Estimator}
+
+For any finite system, the average magnetization at zero field is identically
+zero at all temperatures. However, people often want to use finite simulations
+to estimate the average magnetization of the Ising model in the thermodynamic
+limit, where due to a superselection principle there is one of two average
+magnetizations at zero field below the critical temperature. The ergodic
+principle that defends the esemble average replacing a time average is no
+longer valid, since once the system has taken a certain magnetization it has
+zero probability of ever changing direction. This is typically
+accomplished by using $\avg{|M|}$. But what is the best way to estimate the
+magnetization of a finite system in the presence of a field?
+
+$\tilde M$ is the true magnetization of the finite-size system. We can
+estimate the magnetization of system in the thermodynamic limit by enforcing
+the superselection principle:
+\[
+ S_\e=\{s\mid M(s)>0\}
+\]
+\[
+ \eavg{A}=\frac{\sum_{s\in S_\e}e^{-\beta\H(s)}A(s)}{\sum_{s\in
+ S_\e}e^{-\beta\H(s)}}=\frac1{Z_\e}\sum_{s\in S_\e}e^{-\beta\H(s)}A(s)
+\]
+\[
+ S_\m=\{s\mid M(s)<0\}
+\]
+\[
+ \mavg{A}=\frac{\sum_{s\in S_\m}e^{-\beta\H(s)}A(s)}{\sum_{s\in
+ S_\m}e^{-\beta\H(s)}}=\frac1{Z_\m}\sum_{s\in S_\m}e^{-\beta\H(s)}A(s)
+\]
+For $H=0$, $\eavg M=\avg{|M|}$, defending the canonical measure of
+the ferromagnetic phase magnetization at zero field. This can be seen first by
+identifying the bijection $s\to-s$ that maps $S_\e$ to $S_\m$. Then, since
+$\H(s)=\H(-s)$, $M(s)=-M(-s)$ when $H=0$, $Z_\e=Z_\m$, $Z=2Z_\e+Z_0$, and
+\begin{align}
+ \avg{|M|}
+ &=\frac1{2Z_\e+Z_0}\sum_{s\in S}e^{-\beta\H(s)}M(s)\\
+ &=\frac1{Z_\e+\frac12Z_0}\sum_{s\in S_\e}e^{-\beta\H(s)}M(s)\\
+ &=\frac1{1+\frac{Z_0}{2Z_\e}}\eavg M
+\end{align}
+At infinite temperature, $Z_0/Z_\e\simeq N^{-1/2}\sim L^{-1}$ for large $L$,
+$N$. At any finite temperature, especially in the ferromagnetic phase,
+$Z_0\ll Z_\e$ in a much more extreme way.
+
+If the ensemble average over only positive magnetizations can be said to
+converge to the equilibrium state of the Ising model in the thermodynamic
+limit, what of the average over only \emph{negative} magnetizations,
+ordinarily unphysical?
+
+Collapse of the magnetizations $\avg M$ and $\eavg M$ at low and
+high temperature
\begin{acknowledgments}
- Thatks!
+ Thanks!
\end{acknowledgments}
%\bibliography{monte-carlo}
+
+\begin{itemize}
+ \item metastable and stable state mixing at finite size?
+ \item tracking the wolff algorithm cluster size versus correlation length
+\end{itemize}
\end{document}