worm algorithms - ustc
TRANSCRIPT
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
Worm Algorithms
Youjin Deng
Department of Modern PhysicsUniversity of Science and Technology of China
P.R.China
November 6Hefei
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
Outline
References/Collaborators
1. Youjin Deng, Timothy M. Garoni, and Alan D. Sokal,Dynamic Critical Behavior of the Worm Algorithm for the Ising Model,Phys. Rev. Lett. 99, 110601 (2007).
2. Wei Zhang, Timothy M. Garoni, and Youjin Deng,Simulating the fully-packed loop model on the honeycomb lattice with aworm algorithm, preprint.
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
Outline
How do we efficiently simulate models near criticality?
◮ Problem: critical slowing-down
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
Outline
How do we efficiently simulate models near criticality?
◮ Problem: critical slowing-down◮ The current state-of-the-art: cluster algorithms
◮ Swendsen & Wang PRL 1987◮ Use global moves in clever way
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
Outline
How do we efficiently simulate models near criticality?
◮ Problem: critical slowing-down◮ The current state-of-the-art: cluster algorithms
◮ Swendsen & Wang PRL 1987◮ Use global moves in clever way
◮ More recent idea: worm algorithms◮ Prokof’ev & Svistunov PRL 2001◮ Enlarge an Eulerian configuration space to include defects◮ Move the defects via random walk
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
High-temperature expansions, state spaces, worm dynamics . . .
Eulerian subgraphs◮ Fix a finite graph G = (V , E)
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
High-temperature expansions, state spaces, worm dynamics . . .
Eulerian subgraphs◮ Fix a finite graph G = (V , E)
◮ A ⊆ E is Eulerian if every vertex in (V , A) has even degree
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
High-temperature expansions, state spaces, worm dynamics . . .
Eulerian subgraphs◮ Fix a finite graph G = (V , E)
◮ A ⊆ E is Eulerian if every vertex in (V , A) has even degree◮ The cycle space C(G) = {A ⊆ E : A is Eulerian}
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
High-temperature expansions, state spaces, worm dynamics . . .
Eulerian subgraphs◮ Fix a finite graph G = (V , E)
◮ A ⊆ E is Eulerian if every vertex in (V , A) has even degree◮ The cycle space C(G) = {A ⊆ E : A is Eulerian}
◮ Consider the Ising model on G
ZIsing =∑
σ∈{−1,+1}V
∏
ij∈E
eβσiσj
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
High-temperature expansions, state spaces, worm dynamics . . .
Eulerian subgraphs◮ Fix a finite graph G = (V , E)
◮ A ⊆ E is Eulerian if every vertex in (V , A) has even degree◮ The cycle space C(G) = {A ⊆ E : A is Eulerian}
◮ Consider the Ising model on G
ZIsing =∑
σ∈{−1,+1}V
∏
ij∈E
eβσiσj
◮ The high-temperature expansion is
ZIsing =(
2|V | cosh|E | β) ∑
A∈C(G)
(tanh β)|A|
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
High-temperature expansions, state spaces, worm dynamics . . .
State space for worm dynamics
◮ Let ∂A be the set of all vertices with odd degree in (V , A)
x
y◮ For distinct x , y ∈ V define
Sx ,y = {A ⊆ E : ∂A = {x , y}}
Sx ,x = {A ⊆ E : ∂A = ∅}
◮ In this notation Sx ,x = C(G)
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
High-temperature expansions, state spaces, worm dynamics . . .
State space for worm dynamics
◮ Let ∂A be the set of all vertices with odd degree in (V , A)
x
y◮ For distinct x , y ∈ V define
Sx ,y = {A ⊆ E : ∂A = {x , y}}
Sx ,x = {A ⊆ E : ∂A = ∅}
◮ In this notation Sx ,x = C(G)
◮ State space of worm algorithm is
S = {(A, x , y) : x , y ∈ V and A ∈ Sx ,y}
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
High-temperature expansions, state spaces, worm dynamics . . .
State space for worm dynamics
◮ Let ∂A be the set of all vertices with odd degree in (V , A)
x
y◮ For distinct x , y ∈ V define
Sx ,y = {A ⊆ E : ∂A = {x , y}}
Sx ,x = {A ⊆ E : ∂A = ∅}
◮ In this notation Sx ,x = C(G)
◮ State space of worm algorithm is
S = {(A, x , y) : x , y ∈ V and A ∈ Sx ,y}
◮ Assign (A, x , y) ∈ S probability
π(A, x , y) ∝ dx dy (tanh β)|A|
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
High-temperature expansions, state spaces, worm dynamics . . .
Ising susceptibility◮ If Z :=
∑A∈C(G) w |A| and w := tanh β
ZIsing =(
2|V | cosh|E | β)
Z Partition function
Z 〈σxσy 〉Ising =∑
A∈Sx,y
w |A| Two-point function
Z 〈M2〉Ising =∑
A∈S
w |A| Magnetization
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
High-temperature expansions, state spaces, worm dynamics . . .
Ising susceptibility◮ If Z :=
∑A∈C(G) w |A| and w := tanh β
ZIsing =(
2|V | cosh|E | β)
Z Partition function
Z 〈σxσy 〉Ising =∑
A∈Sx,y
w |A| Two-point function
Z 〈M2〉Ising =∑
A∈S
w |A| Magnetization
◮ If G is translationally invariant then
π(A, x , y) = w |A|/Z V χ
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
High-temperature expansions, state spaces, worm dynamics . . .
Ising susceptibility◮ If Z :=
∑A∈C(G) w |A| and w := tanh β
ZIsing =(
2|V | cosh|E | β)
Z Partition function
Z 〈σxσy 〉Ising =∑
A∈Sx,y
w |A| Two-point function
Z 〈M2〉Ising =∑
A∈S
w |A| Magnetization
◮ If G is translationally invariant then
π(A, x , y) = w |A|/Z V χ
◮ Therefore the observable D0(A, x , y) = δx ,y satisfies
〈D0〉π = 1/χ
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
High-temperature expansions, state spaces, worm dynamics . . .
Worm dynamics
x
y◮ Start in configuration (A, x , y)
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
High-temperature expansions, state spaces, worm dynamics . . .
Worm dynamics
x
y◮ Start in configuration (A, x , y)
◮ Pick x or y
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
High-temperature expansions, state spaces, worm dynamics . . .
Worm dynamics
x x ′
y◮ Start in configuration (A, x , y)
◮ Pick x or y◮ Pick x ′ ∼ x
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
High-temperature expansions, state spaces, worm dynamics . . .
Worm dynamics
x
y
x ′◮ Start in configuration (A, x , y)
◮ Pick x or y◮ Pick x ′ ∼ x◮ Propose (A, x , y) → (A△xx ′, x ′, y)
◮ If transition removes an edge accept with probability 1
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
High-temperature expansions, state spaces, worm dynamics . . .
Worm dynamics
x
y
x ′◮ Start in configuration (A, x , y)
◮ Pick x or y◮ Pick x ′ ∼ x◮ Propose (A, x , y) → (A△xx ′, x ′, y)
◮ If transition removes an edge accept with probability 1◮ If transition adds an edge accept with probability w
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
High-temperature expansions, state spaces, worm dynamics . . .
Worm dynamics
◮ Start in configuration (A, x , y)
◮ Pick x or y◮ Pick x ′ ∼ x◮ Propose (A, x , y) → (A△xx ′, x ′, y)
◮ If transition removes an edge accept with probability 1◮ If transition adds an edge accept with probability w
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
High-temperature expansions, state spaces, worm dynamics . . .
Worm dynamics
◮ Start in configuration (A, x , y)
◮ Pick x or y◮ Pick x ′ ∼ x◮ Propose (A, x , y) → (A△xx ′, x ′, y)
◮ If transition removes an edge accept with probability 1◮ If transition adds an edge accept with probability w
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
High-temperature expansions, state spaces, worm dynamics . . .
Worm dynamics
◮ Start in configuration (A, x , y)
◮ Pick x or y◮ Pick x ′ ∼ x◮ Propose (A, x , y) → (A△xx ′, x ′, y)
◮ If transition removes an edge accept with probability 1◮ If transition adds an edge accept with probability w
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
High-temperature expansions, state spaces, worm dynamics . . .
Worm dynamics
◮ Start in configuration (A, x , y)
◮ Pick x or y◮ Pick x ′ ∼ x◮ Propose (A, x , y) → (A△xx ′, x ′, y)
◮ If transition removes an edge accept with probability 1◮ If transition adds an edge accept with probability w
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
High-temperature expansions, state spaces, worm dynamics . . .
Worm dynamics
◮ Start in configuration (A, x , y)
◮ Pick x or y◮ Pick x ′ ∼ x◮ Propose (A, x , y) → (A△xx ′, x ′, y)
◮ If transition removes an edge accept with probability 1◮ If transition adds an edge accept with probability w
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
High-temperature expansions, state spaces, worm dynamics . . .
Worm dynamics
◮ Start in configuration (A, x , y)
◮ Pick x or y◮ Pick x ′ ∼ x◮ Propose (A, x , y) → (A△xx ′, x ′, y)
◮ If transition removes an edge accept with probability 1◮ If transition adds an edge accept with probability w
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
High-temperature expansions, state spaces, worm dynamics . . .
Transition matrix
◮ Let G be translationally invariant with degree z◮ Worm dynamics corresponds to transition matrix P on S
P[(A, x , y) → (A△xx ′, x ′, y)] =12
1z
{1, xx ′ ∈ A,
w , xx ′ 6∈ A,
◮ And similarly for y moves. . .◮ All other non-diagonal elements of P are zero
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
High-temperature expansions, state spaces, worm dynamics . . .
Transition matrix
◮ Let G be translationally invariant with degree z◮ Worm dynamics corresponds to transition matrix P on S
P[(A, x , y) → (A△xx ′, x ′, y)] =12
1z
{1, xx ′ ∈ A,
w , xx ′ 6∈ A,
◮ And similarly for y moves. . .◮ All other non-diagonal elements of P are zero
LemmaP is in detailed balance with π(A, x , y) = w |A|/Z V χ
◮ Can estimate χ by running the worm dynamics
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
High-temperature expansions, state spaces, worm dynamics . . .
Efficiency
◮ Worm dynamics provide a valid way to compute χ
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
High-temperature expansions, state spaces, worm dynamics . . .
Efficiency
◮ Worm dynamics provide a valid way to compute χ
◮ But how efficient is the worm algorithm?
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
High-temperature expansions, state spaces, worm dynamics . . .
Efficiency
◮ Worm dynamics provide a valid way to compute χ
◮ But how efficient is the worm algorithm?◮ How do we measure efficiency anyway?
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
High-temperature expansions, state spaces, worm dynamics . . .
Efficiency
◮ Worm dynamics provide a valid way to compute χ
◮ But how efficient is the worm algorithm?◮ How do we measure efficiency anyway?◮ Empirically – measuring autocorrelations
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
Autocorrelations, critical slowing down . . .
Markov-chain Monte Carlo◮ Markov chain
◮ State space S, with |S| < ∞◮ Transition matrix P◮ Stationary distribution π
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
Autocorrelations, critical slowing down . . .
Markov-chain Monte Carlo◮ Markov chain
◮ State space S, with |S| < ∞◮ Transition matrix P◮ Stationary distribution π
◮ Observables (random variables) X , Y , . . .
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
Autocorrelations, critical slowing down . . .
Markov-chain Monte Carlo◮ Markov chain
◮ State space S, with |S| < ∞◮ Transition matrix P◮ Stationary distribution π
◮ Observables (random variables) X , Y , . . .
◮ Simulate Markov chain s0P−→ s1
P−→ s2
P−→ . . . with st ∈ S
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
Autocorrelations, critical slowing down . . .
Markov-chain Monte Carlo◮ Markov chain
◮ State space S, with |S| < ∞◮ Transition matrix P◮ Stationary distribution π
◮ Observables (random variables) X , Y , . . .
◮ Simulate Markov chain s0P−→ s1
P−→ s2
P−→ . . . with st ∈ S
◮ Get time series X0, X1, X2, . . . with Xt = X (st)
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
Autocorrelations, critical slowing down . . .
Markov-chain Monte Carlo◮ Markov chain
◮ State space S, with |S| < ∞◮ Transition matrix P◮ Stationary distribution π
◮ Observables (random variables) X , Y , . . .
◮ Simulate Markov chain s0P−→ s1
P−→ s2
P−→ . . . with st ∈ S
◮ Get time series X0, X1, X2, . . . with Xt = X (st)
◮ Define the autocorrelation function
ρX (t) :=〈XsXs+t〉π − 〈X 〉2
π
varπ(X )
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
Autocorrelations, critical slowing down . . .
Markov-chain Monte Carlo◮ Markov chain
◮ State space S, with |S| < ∞◮ Transition matrix P◮ Stationary distribution π
◮ Observables (random variables) X , Y , . . .
◮ Simulate Markov chain s0P−→ s1
P−→ s2
P−→ . . . with st ∈ S
◮ Get time series X0, X1, X2, . . . with Xt = X (st)
◮ Define the autocorrelation function
ρX (t) :=〈XsXs+t〉π − 〈X 〉2
π
varπ(X )
◮ Stationary process – start “in equilibrium”
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
Autocorrelations, critical slowing down . . .
Integrated autocorrelation times
◮ The integrated autocorrelation time
τint,X :=12
∞∑
t=−∞
ρX (t)
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
Autocorrelations, critical slowing down . . .
Integrated autocorrelation times
◮ The integrated autocorrelation time
τint,X :=12
∞∑
t=−∞
ρX (t)
◮ If X̂ is the sample mean of {Xt}Tt=1 then we have
var(X̂ ) ∼ 2 τint,Xvar(X )
T, T → ∞
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
Autocorrelations, critical slowing down . . .
Integrated autocorrelation times
◮ The integrated autocorrelation time
τint,X :=12
∞∑
t=−∞
ρX (t)
◮ If X̂ is the sample mean of {Xt}Tt=1 then we have
var(X̂ ) ∼ 2 τint,Xvar(X )
T, T → ∞
◮ 1 “effectively independent” observation every 2 τint,X steps
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
Autocorrelations, critical slowing down . . .
Exponential autocorrelation times
◮ ρX (t) typically decays exponentially as t → ∞
◮ The exponential autocorrelation time
τexp,X := lim supt→∞
t− log |ρX (t)|
and τexp := supX
τexp,X
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
Autocorrelations, critical slowing down . . .
Exponential autocorrelation times
◮ ρX (t) typically decays exponentially as t → ∞
◮ The exponential autocorrelation time
τexp,X := lim supt→∞
t− log |ρX (t)|
and τexp := supX
τexp,X
◮ Typically τexp,X = τexp < ∞ and τint,X ≤ τexp for all X
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
Autocorrelations, critical slowing down . . .
Exponential autocorrelation times
◮ ρX (t) typically decays exponentially as t → ∞
◮ The exponential autocorrelation time
τexp,X := lim supt→∞
t− log |ρX (t)|
and τexp := supX
τexp,X
◮ Typically τexp,X = τexp < ∞ and τint,X ≤ τexp for all X
◮ Start the chain with arbitrary distribution α
◮ Distribution at time t is αP t
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
Autocorrelations, critical slowing down . . .
Exponential autocorrelation times
◮ ρX (t) typically decays exponentially as t → ∞
◮ The exponential autocorrelation time
τexp,X := lim supt→∞
t− log |ρX (t)|
and τexp := supX
τexp,X
◮ Typically τexp,X = τexp < ∞ and τint,X ≤ τexp for all X
◮ Start the chain with arbitrary distribution α
◮ Distribution at time t is αP t
LemmaαP t tends to π with rate bounded by e−t/τexp
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
Autocorrelations, critical slowing down . . .
Critical slowing-down
◮ Near a critical point the autocorrelation times typicallydiverge like
τ ∼ ξz
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
Autocorrelations, critical slowing down . . .
Critical slowing-down
◮ Near a critical point the autocorrelation times typicallydiverge like
τ ∼ ξz
◮ More precisely, we have a family of exponents:zexp, and zint,X for each observable X .
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
Autocorrelations, critical slowing down . . .
Critical slowing-down
◮ Near a critical point the autocorrelation times typicallydiverge like
τ ∼ ξz
◮ More precisely, we have a family of exponents:zexp, and zint,X for each observable X .
◮ Different algorithms for the same model can have verydifferent z
◮ E.g. d = 2 Ising model◮ Glauber (Metropolis) algorithm z ≈ 2◮ Swendsen-Wang algorithm z ≈ 0.2
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
Numerical results
Worm simulations
◮ Simulated the critical square-lattice Ising model
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
Numerical results
Worm simulations
◮ Simulated the critical square-lattice Ising model◮ Focus on two observables:
◮ N (A, x , y) = |A|◮ D0(A, x , y) = δx,y
◮ 〈N〉 is “energy-like”◮ 〈D0〉 = 1/χ
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
Numerical results
Worm simulations
◮ Simulated the critical square-lattice Ising model◮ Focus on two observables:
◮ N (A, x , y) = |A|◮ D0(A, x , y) = δx,y
◮ 〈N〉 is “energy-like”◮ 〈D0〉 = 1/χ
◮ Measured observables after every hit (worm update)◮ Natural unit of time is one sweep (Ld hits)
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
Numerical results
Dynamics of N
◮ ρN (t) is almost a perfect exponential
0.01
0.1
1
0 1 2 3 4 5 6
ρ N (
t)
t/τint,N
0.01
0.1
1
0 1 2 3 4 5 6
ρ N (
t)
t/τint,N
8 16 32 64
128 256 512
10242048
◮ Scaled time by τint,N
◮ Good data collapse suggestszexp ≈ zint,N
◮ Fitting τint,N gives zint,N ≈ 0.379
◮ Li-Sokal bound zexp, zint,N ≥ α/ν applies to worm dynamics
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
Numerical results
Dynamics of D0
◮ ρD0(t) decays significantly in O(1) hits!
10-6
10-5
10-4
10-3
10-2
10-1
1
10710610510410310210 1
ρ D0 (
t)
t
L increases
10-6
10-5
10-4
10-3
10-2
10-1
1
10710610510410310210 1
ρ D0 (
t)
t
L increases
8 16 32 64
128 256 512
10242048 ◮ ρD0(t) ∼ t−s with s ≈ 0.75
◮ D0 decorrelates on a totally different time scale to N
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
Numerical results
Three dimensions
◮ Qualitatively similar behavior when d = 3:
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
Numerical results
Three dimensions
◮ Qualitatively similar behavior when d = 3:◮ ρD0(t) ∼ t−s
◮ s ≈ 0.66
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
Numerical results
Three dimensions
◮ Qualitatively similar behavior when d = 3:◮ ρD0(t) ∼ t−s
◮ s ≈ 0.66◮ ρN (t) roughly exponential◮ zexp ≈ zint,N ≈ α/ν ≈ 0.174◮ Li-Sokal bound may be sharp for d = 3 worm algorithm
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
Numerical results
Three dimensions
◮ Qualitatively similar behavior when d = 3:◮ ρD0(t) ∼ t−s
◮ s ≈ 0.66◮ ρN (t) roughly exponential◮ zexp ≈ zint,N ≈ α/ν ≈ 0.174◮ Li-Sokal bound may be sharp for d = 3 worm algorithm◮ Compare Swendsen-Wang zSW ≈ 0.46
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
Numerical results
Practical efficiency for square/cubic lattice critical Ising
◮ Swendsen-Wang seems to outperform worm when d = 2
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
Numerical results
Practical efficiency for square/cubic lattice critical Ising
◮ Swendsen-Wang seems to outperform worm when d = 2◮ Efficiency depends on observable, X
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
Numerical results
Practical efficiency for square/cubic lattice critical Ising
◮ Swendsen-Wang seems to outperform worm when d = 2◮ Efficiency depends on observable, X◮ A simple way to compare worm and SW is to compute
κ = TCPU varX̂ for both algorithms
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
Numerical results
Practical efficiency for square/cubic lattice critical Ising
◮ Swendsen-Wang seems to outperform worm when d = 2◮ Efficiency depends on observable, X◮ A simple way to compare worm and SW is to compute
κ = TCPU varX̂ for both algorithms◮ When d = 3 and X = D0 we find κworm/κSW ≈ L−0.33
◮ With the crossover κworm/κSW ≈ 1 at around L ≈ 20
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
Numerical results
Practical efficiency for square/cubic lattice critical Ising
◮ Swendsen-Wang seems to outperform worm when d = 2◮ Efficiency depends on observable, X◮ A simple way to compare worm and SW is to compute
κ = TCPU varX̂ for both algorithms◮ When d = 3 and X = D0 we find κworm/κSW ≈ L−0.33
◮ With the crossover κworm/κSW ≈ 1 at around L ≈ 20
◮ There is also a natural worm estimator for ξ
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
Numerical results
Practical efficiency for square/cubic lattice critical Ising
◮ Swendsen-Wang seems to outperform worm when d = 2◮ Efficiency depends on observable, X◮ A simple way to compare worm and SW is to compute
κ = TCPU varX̂ for both algorithms◮ When d = 3 and X = D0 we find κworm/κSW ≈ L−0.33
◮ With the crossover κworm/κSW ≈ 1 at around L ≈ 20
◮ There is also a natural worm estimator for ξ
◮ Again SW outperforms worm when d = 2
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
Numerical results
Practical efficiency for square/cubic lattice critical Ising
◮ Swendsen-Wang seems to outperform worm when d = 2◮ Efficiency depends on observable, X◮ A simple way to compare worm and SW is to compute
κ = TCPU varX̂ for both algorithms◮ When d = 3 and X = D0 we find κworm/κSW ≈ L−0.33
◮ With the crossover κworm/κSW ≈ 1 at around L ≈ 20
◮ There is also a natural worm estimator for ξ
◮ Again SW outperforms worm when d = 2◮ For d = 3 we find κworm/κSW ≈ L−0.32
◮ With the crossover κworm/κSW ≈ 1 at around L ≈ 45
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
An alternate perspective on worm dynamics
An alternative perspective on worm dynamics◮ Our perspective so far:
Worm algorithm ⇐⇒ simulate Ising high-temperature graphs
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
An alternate perspective on worm dynamics
An alternative perspective on worm dynamics◮ Our perspective so far:
Worm algorithm ⇐⇒ simulate Ising high-temperature graphs
◮ Eulerian-subgraph model
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
An alternate perspective on worm dynamics
An alternative perspective on worm dynamics◮ Our perspective so far:
Worm algorithm ⇐⇒ simulate Ising high-temperature graphs
◮ Eulerian-subgraph model◮ State space C(G)
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
An alternate perspective on worm dynamics
An alternative perspective on worm dynamics◮ Our perspective so far:
Worm algorithm ⇐⇒ simulate Ising high-temperature graphs
◮ Eulerian-subgraph model◮ State space C(G)◮ P(A) ∝ w |A|
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
An alternate perspective on worm dynamics
An alternative perspective on worm dynamics◮ Our perspective so far:
Worm algorithm ⇐⇒ simulate Ising high-temperature graphs
◮ Eulerian-subgraph model◮ State space C(G)◮ P(A) ∝ w |A|
◮ Run a worm simulation
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
An alternate perspective on worm dynamics
An alternative perspective on worm dynamics◮ Our perspective so far:
Worm algorithm ⇐⇒ simulate Ising high-temperature graphs
◮ Eulerian-subgraph model◮ State space C(G)◮ P(A) ∝ w |A|
◮ Run a worm simulation◮ Only observe the chain when A ∈ C(G), i.e. when x = y
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
An alternate perspective on worm dynamics
An alternative perspective on worm dynamics◮ Our perspective so far:
Worm algorithm ⇐⇒ simulate Ising high-temperature graphs
◮ Eulerian-subgraph model◮ State space C(G)◮ P(A) ∝ w |A|
◮ Run a worm simulation◮ Only observe the chain when A ∈ C(G), i.e. when x = y◮ Obtain a new Markov chain P◮ Stationary distribution π(A, x , x) ∝ f (x) w |A|
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
An alternate perspective on worm dynamics
An alternative perspective on worm dynamics◮ Our perspective so far:
Worm algorithm ⇐⇒ simulate Ising high-temperature graphs
◮ Eulerian-subgraph model◮ State space C(G)◮ P(A) ∝ w |A|
◮ Run a worm simulation◮ Only observe the chain when A ∈ C(G), i.e. when x = y◮ Obtain a new Markov chain P◮ Stationary distribution π(A, x , x) ∝ f (x) w |A|
◮ New perspective:
Worm algorithm ⇐⇒ simulate Eulerian-subgraph model
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
An alternate perspective on worm dynamics
Loop models
◮ Honeycomb lattice Eulerian subgraphs = disjoint cycles◮ Nienhuis loop model
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
An alternate perspective on worm dynamics
Loop models
◮ Honeycomb lattice Eulerian subgraphs = disjoint cycles◮ Nienhuis loop model
0 < w < wc Disordered phasewc < w < ∞ Critical densely-packed phase
w = +∞ Critical fully-packed phase
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
An alternate perspective on worm dynamics
Loop models
◮ Honeycomb lattice Eulerian subgraphs = disjoint cycles◮ Nienhuis loop model
0 < w < wc Disordered phasewc < w < ∞ Critical densely-packed phase
w = +∞ Critical fully-packed phase
+ + + ++ − − + +
+ − − ++ − + − +
+ − − ++ + + + + ◮ 1 loop config ↔ 2 dual spin configs
◮ Ising spin domains
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
An alternate perspective on worm dynamics
Loop models
◮ Honeycomb lattice Eulerian subgraphs = disjoint cycles◮ Nienhuis loop model
0 < w < wc Disordered phasewc < w < ∞ Critical densely-packed phase
w = +∞ Critical fully-packed phase
+ + + ++ − − + +
+ − − ++ − + − +
+ − − ++ + + + + ◮ 1 loop config ↔ 2 dual spin configs
◮ Ising spin domains◮ w = e−2β
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
An alternate perspective on worm dynamics
Loop models
◮ Honeycomb lattice Eulerian subgraphs = disjoint cycles◮ Nienhuis loop model
0 < w < wc Disordered phasewc < w < ∞ Critical densely-packed phase
w = +∞ Critical fully-packed phase
+ + + ++ − − + +
+ − − ++ − + − +
+ − − ++ + + + + ◮ 1 loop config ↔ 2 dual spin configs
◮ Ising spin domains◮ w = e−2β
◮ w > 1 =⇒ antiferromagnetic β
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
An alternate perspective on worm dynamics
Loop models
◮ Honeycomb lattice Eulerian subgraphs = disjoint cycles◮ Nienhuis loop model
0 < w < wc Disordered phasewc < w < ∞ Critical densely-packed phase
w = +∞ Critical fully-packed phase
+ + + ++ − − + +
+ − − ++ − + − +
+ − − ++ + + + + ◮ 1 loop config ↔ 2 dual spin configs
◮ Ising spin domains◮ w = e−2β
◮ w > 1 =⇒ antiferromagnetic β
◮ Worm ⇐⇒ simulate dual Ising domain boundaries
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
An alternate perspective on worm dynamics
Fully-packed loop model (FPL)
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
An alternate perspective on worm dynamics
Fully-packed loop model (FPL)
◮ FPL ↔ triangular-lattice Ising antiferromagnet at T = 0
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
An alternate perspective on worm dynamics
Fully-packed loop model (FPL)
+−
+
Frustration
◮ FPL ↔ triangular-lattice Ising antiferromagnet at T = 0◮ Frustrated systems hard to simulate
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
An alternate perspective on worm dynamics
Fully-packed loop model (FPL)
+−
+
Frustration
◮ FPL ↔ triangular-lattice Ising antiferromagnet at T = 0◮ Frustrated systems hard to simulate◮ Cluster algorithms for frustrated Ising models thought to be
non-ergodic at T = 0
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
An alternate perspective on worm dynamics
Fully-packed loop model (FPL)
+−
+
Frustration
◮ FPL ↔ triangular-lattice Ising antiferromagnet at T = 0◮ Frustrated systems hard to simulate◮ Cluster algorithms for frustrated Ising models thought to be
non-ergodic at T = 0◮ Can we use worm instead?
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
An alternate perspective on worm dynamics
P∞ has absorbing states
◮ Standard worm transitions for w ≥ 1 on z-regular graph:
Pw [(A, x , y) → (A△xx ′, x ′, y)] =1
2z
{1/w xx ′ ∈ A
1 xx ′ 6∈ A
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
An alternate perspective on worm dynamics
P∞ has absorbing states
◮ Standard worm transitions for w ≥ 1 on z-regular graph:
Pw [(A, x , y) → (A△xx ′, x ′, y)] =1
2z
{1/w xx ′ ∈ A
1 xx ′ 6∈ A
◮ Identity transitions are fixed by normalization:
Pw [(A, x , y) → (A, x , y)] = (1 − 1/w)dx(A) + dy (A)
2z
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
An alternate perspective on worm dynamics
P∞ has absorbing states
◮ Standard worm transitions for w ≥ 1 on z-regular graph:
Pw [(A, x , y) → (A△xx ′, x ′, y)] =1
2z
{1/w xx ′ ∈ A
1 xx ′ 6∈ A
◮ Identity transitions are fixed by normalization:
Pw [(A, x , y) → (A, x , y)] = (1 − 1/w)dx(A) + dy (A)
2z
◮ P∞[(A, x , y) → (A, x , y)] = 1 whenever dx(A) = dy (A) = z
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
An alternate perspective on worm dynamics
P∞ has absorbing states
◮ Standard worm transitions for w ≥ 1 on z-regular graph:
Pw [(A, x , y) → (A△xx ′, x ′, y)] =1
2z
{1/w xx ′ ∈ A
1 xx ′ 6∈ A
◮ Identity transitions are fixed by normalization:
Pw [(A, x , y) → (A, x , y)] = (1 − 1/w)dx(A) + dy (A)
2z
◮ P∞[(A, x , y) → (A, x , y)] = 1 whenever dx(A) = dy (A) = z◮ Cannot use standard worm algorithm when w = +∞
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
An alternate perspective on worm dynamics
How do we solve the problem?
◮ P∞[(A, x , y) → (A, x , y)] = 1 whenever dx(A) = dy (A) = z
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
An alternate perspective on worm dynamics
How do we solve the problem?
◮ P∞[(A, x , y) → (A, x , y)] = 1 whenever dx(A) = dy (A) = z◮ But on the honeycomb lattice z = 3
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
An alternate perspective on worm dynamics
How do we solve the problem?
◮ P∞[(A, x , y) → (A, x , y)] = 1 whenever dx(A) = dy (A) = z◮ But on the honeycomb lattice z = 3◮ So states with Eulerian A never get stuck
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
An alternate perspective on worm dynamics
How do we solve the problem?
◮ P∞[(A, x , y) → (A, x , y)] = 1 whenever dx(A) = dy (A) = z◮ But on the honeycomb lattice z = 3◮ So states with Eulerian A never get stuck◮ To simulate loop models, we only observe the chain when
A is Eulerian. . .
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
An alternate perspective on worm dynamics
How do we solve the problem?
◮ P∞[(A, x , y) → (A, x , y)] = 1 whenever dx(A) = dy (A) = z◮ But on the honeycomb lattice z = 3◮ So states with Eulerian A never get stuck◮ To simulate loop models, we only observe the chain when
A is Eulerian. . .◮ Try defining new transition matrix P ′
∞ such that:
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
An alternate perspective on worm dynamics
How do we solve the problem?
◮ P∞[(A, x , y) → (A, x , y)] = 1 whenever dx(A) = dy (A) = z◮ But on the honeycomb lattice z = 3◮ So states with Eulerian A never get stuck◮ To simulate loop models, we only observe the chain when
A is Eulerian. . .◮ Try defining new transition matrix P ′
∞ such that:◮ P ′
∞[(A, x , x) → · ] = limw→∞ Pw [(A, x , x) → · ]
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
An alternate perspective on worm dynamics
How do we solve the problem?
◮ P∞[(A, x , y) → (A, x , y)] = 1 whenever dx(A) = dy (A) = z◮ But on the honeycomb lattice z = 3◮ So states with Eulerian A never get stuck◮ To simulate loop models, we only observe the chain when
A is Eulerian. . .◮ Try defining new transition matrix P ′
∞ such that:◮ P ′
∞[(A, x , x) → · ] = limw→∞ Pw [(A, x , x) → · ]◮ P ′
∞[(A, x , y) → (A, x , y)] = 0 when x 6= y
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
An alternate perspective on worm dynamics
How do we solve the problem?
◮ P∞[(A, x , y) → (A, x , y)] = 1 whenever dx(A) = dy (A) = z◮ But on the honeycomb lattice z = 3◮ So states with Eulerian A never get stuck◮ To simulate loop models, we only observe the chain when
A is Eulerian. . .◮ Try defining new transition matrix P ′
∞ such that:◮ P ′
∞[(A, x , x) → · ] = limw→∞ Pw [(A, x , x) → · ]◮ P ′
∞[(A, x , y) → (A, x , y)] = 0 when x 6= y
◮ This will get rid of the absorbing states. . .
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
An alternate perspective on worm dynamics
How do we solve the problem?
◮ P∞[(A, x , y) → (A, x , y)] = 1 whenever dx(A) = dy (A) = z◮ But on the honeycomb lattice z = 3◮ So states with Eulerian A never get stuck◮ To simulate loop models, we only observe the chain when
A is Eulerian. . .◮ Try defining new transition matrix P ′
∞ such that:◮ P ′
∞[(A, x , x) → · ] = limw→∞ Pw [(A, x , x) → · ]◮ P ′
∞[(A, x , y) → (A, x , y)] = 0 when x 6= y
◮ This will get rid of the absorbing states. . .◮ If we are lucky P ′
∞ will simulate the FPL. . .
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
An alternate perspective on worm dynamics
Worm algorithm for honeycomb-lattice FPL◮ Start in configuration (A, x , y)
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
An alternate perspective on worm dynamics
Worm algorithm for honeycomb-lattice FPL◮ Start in configuration (A, x , y)
◮ If x = y
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
An alternate perspective on worm dynamics
Worm algorithm for honeycomb-lattice FPL◮ Start in configuration (A, x , y)
◮ If x = y◮ Pick x ′ ∼ x
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
An alternate perspective on worm dynamics
Worm algorithm for honeycomb-lattice FPL◮ Start in configuration (A, x , y)
◮ If x = y◮ Pick x ′ ∼ x◮ If xx ′ 6∈ A
◮ (A, x , x) → (A ∪ xx ′, x ′
, x) or(A, x , x) → (A ∪ xx ′
, x , x ′)
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
An alternate perspective on worm dynamics
Worm algorithm for honeycomb-lattice FPL◮ Start in configuration (A, x , y)
◮ If x = y◮ Pick x ′ ∼ x◮ If xx ′ 6∈ A
◮ (A, x , x) → (A ∪ xx ′, x ′
, x) or(A, x , x) → (A ∪ xx ′
, x , x ′)
◮ Else (A, x , x) → (A, x , x)
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
An alternate perspective on worm dynamics
Worm algorithm for honeycomb-lattice FPL◮ Start in configuration (A, x , y)
◮ If x = y◮ Pick x ′ ∼ x◮ If xx ′ 6∈ A
◮ (A, x , x) → (A ∪ xx ′, x ′
, x) or(A, x , x) → (A ∪ xx ′
, x , x ′)
◮ Else (A, x , x) → (A, x , x)
◮ Else if x 6= y
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
An alternate perspective on worm dynamics
Worm algorithm for honeycomb-lattice FPL◮ Start in configuration (A, x , y)
◮ If x = y◮ Pick x ′ ∼ x◮ If xx ′ 6∈ A
◮ (A, x , x) → (A ∪ xx ′, x ′
, x) or(A, x , x) → (A ∪ xx ′
, x , x ′)
◮ Else (A, x , x) → (A, x , x)
◮ Else if x 6= y◮ Pick x or y (say x)
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
An alternate perspective on worm dynamics
Worm algorithm for honeycomb-lattice FPL◮ Start in configuration (A, x , y)
◮ If x = y◮ Pick x ′ ∼ x◮ If xx ′ 6∈ A
◮ (A, x , x) → (A ∪ xx ′, x ′
, x) or(A, x , x) → (A ∪ xx ′
, x , x ′)
◮ Else (A, x , x) → (A, x , x)
◮ Else if x 6= y◮ Pick x or y (say x)◮ If dx(A) = 3
◮ Pick one of the three xx ′ ∈ A◮ (A, x , y) → (A \ xx ′
, x ′, y)
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
An alternate perspective on worm dynamics
Worm algorithm for honeycomb-lattice FPL◮ Start in configuration (A, x , y)
◮ If x = y◮ Pick x ′ ∼ x◮ If xx ′ 6∈ A
◮ (A, x , x) → (A ∪ xx ′, x ′
, x) or(A, x , x) → (A ∪ xx ′
, x , x ′)
◮ Else (A, x , x) → (A, x , x)
◮ Else if x 6= y◮ Pick x or y (say x)◮ If dx(A) = 3
◮ Pick one of the three xx ′ ∈ A◮ (A, x , y) → (A \ xx ′
, x ′, y)
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
An alternate perspective on worm dynamics
Worm algorithm for honeycomb-lattice FPL◮ Start in configuration (A, x , y)
◮ If x = y◮ Pick x ′ ∼ x◮ If xx ′ 6∈ A
◮ (A, x , x) → (A ∪ xx ′, x ′
, x) or(A, x , x) → (A ∪ xx ′
, x , x ′)
◮ Else (A, x , x) → (A, x , x)
◮ Else if x 6= y◮ Pick x or y (say x)◮ If dx(A) = 3
◮ Pick one of the three xx ′ ∈ A◮ (A, x , y) → (A \ xx ′
, x ′, y)
◮ Else if dx(A) = 1◮ Pick one of the two xx ′ 6∈ A◮ (A, x , y) → (A ∪ xx ′
, x ′, y)
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
An alternate perspective on worm dynamics
Worm algorithm for honeycomb-lattice FPL◮ Start in configuration (A, x , y)
◮ If x = y◮ Pick x ′ ∼ x◮ If xx ′ 6∈ A
◮ (A, x , x) → (A ∪ xx ′, x ′
, x) or(A, x , x) → (A ∪ xx ′
, x , x ′)
◮ Else (A, x , x) → (A, x , x)
◮ Else if x 6= y◮ Pick x or y (say x)◮ If dx(A) = 3
◮ Pick one of the three xx ′ ∈ A◮ (A, x , y) → (A \ xx ′
, x ′, y)
◮ Else if dx(A) = 1◮ Pick one of the two xx ′ 6∈ A◮ (A, x , y) → (A ∪ xx ′
, x ′, y)
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
An alternate perspective on worm dynamics
Worm algorithm for honeycomb-lattice FPL◮ Start in configuration (A, x , y)
◮ If x = y◮ Pick x ′ ∼ x◮ If xx ′ 6∈ A
◮ (A, x , x) → (A ∪ xx ′, x ′
, x) or(A, x , x) → (A ∪ xx ′
, x , x ′)
◮ Else (A, x , x) → (A, x , x)
◮ Else if x 6= y◮ Pick x or y (say x)◮ If dx(A) = 3
◮ Pick one of the three xx ′ ∈ A◮ (A, x , y) → (A \ xx ′
, x ′, y)
◮ Else if dx(A) = 1◮ Pick one of the two xx ′ 6∈ A◮ (A, x , y) → (A ∪ xx ′
, x ′, y)
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
An alternate perspective on worm dynamics
Worm algorithm for honeycomb-lattice FPL◮ Start in configuration (A, x , y)
◮ If x = y◮ Pick x ′ ∼ x◮ If xx ′ 6∈ A
◮ (A, x , x) → (A ∪ xx ′, x ′
, x) or(A, x , x) → (A ∪ xx ′
, x , x ′)
◮ Else (A, x , x) → (A, x , x)
◮ Else if x 6= y◮ Pick x or y (say x)◮ If dx(A) = 3
◮ Pick one of the three xx ′ ∈ A◮ (A, x , y) → (A \ xx ′
, x ′, y)
◮ Else if dx(A) = 1◮ Pick one of the two xx ′ 6∈ A◮ (A, x , y) → (A ∪ xx ′
, x ′, y)
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
An alternate perspective on worm dynamics
Worm algorithm for honeycomb-lattice FPL◮ Start in configuration (A, x , y)
◮ If x = y◮ Pick x ′ ∼ x◮ If xx ′ 6∈ A
◮ (A, x , x) → (A ∪ xx ′, x ′
, x) or(A, x , x) → (A ∪ xx ′
, x , x ′)
◮ Else (A, x , x) → (A, x , x)
◮ Else if x 6= y◮ Pick x or y (say x)◮ If dx(A) = 3
◮ Pick one of the three xx ′ ∈ A◮ (A, x , y) → (A \ xx ′
, x ′, y)
◮ Else if dx(A) = 1◮ Pick one of the two xx ′ 6∈ A◮ (A, x , y) → (A ∪ xx ′
, x ′, y)
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
An alternate perspective on worm dynamics
Transition matrix◮ x 6= y
P ′∞[(A, x , y) → (A△xx ′, x ′, y)] =
{1/6 dx(A) = 3
1/4 xx ′ 6∈ A◮ x = y
P ′∞[(A, x , x) → (A, x , x)] =
dx(A)
3
P ′∞[(A, x , x) → (A ∪ xx ′, x ′, x)] =
16
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
An alternate perspective on worm dynamics
Transition matrix◮ x 6= y
P ′∞[(A, x , y) → (A△xx ′, x ′, y)] =
{1/6 dx(A) = 3
1/4 xx ′ 6∈ A◮ x = y
P ′∞[(A, x , x) → (A, x , x)] =
dx(A)
3
P ′∞[(A, x , x) → (A ∪ xx ′, x ′, x)] =
16
TheoremThe set of states in S with no isolated vertices is recurrent andirreducible, its complement is transient, and the stationarydistribution of P ′
∞ is uniform on the fully-packed configurations
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
An alternate perspective on worm dynamics
Transition matrix◮ x 6= y
P ′∞[(A, x , y) → (A△xx ′, x ′, y)] =
{1/6 dx(A) = 3
1/4 xx ′ 6∈ A◮ x = y
P ′∞[(A, x , x) → (A, x , x)] =
dx(A)
3
P ′∞[(A, x , x) → (A ∪ xx ′, x ′, x)] =
16
TheoremThe set of states in S with no isolated vertices is recurrent andirreducible, its complement is transient, and the stationarydistribution of P ′
∞ is uniform on the fully-packed configurations◮ Therefore P ′
∞ correctly simulates the FPL
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
Numerical results
Worm simulations of honeycomb-lattice FPL
◮ Simulated the honeycomb-lattice FPL
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
Numerical results
Worm simulations of honeycomb-lattice FPL
◮ Simulated the honeycomb-lattice FPL◮ Again observed multiple time scales
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
Numerical results
Worm simulations of honeycomb-lattice FPL
◮ Simulated the honeycomb-lattice FPL◮ Again observed multiple time scales◮ Nl(A, x , y) = number of loops (cyclomatic number)◮ 〈Nl〉 is “energy-like”
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
Numerical results
Worm simulations of honeycomb-lattice FPL
◮ Simulated the honeycomb-lattice FPL◮ Again observed multiple time scales◮ Nl(A, x , y) = number of loops (cyclomatic number)◮ 〈Nl〉 is “energy-like”◮ Nl is the slowest mode observed
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
Numerical results
Dynamics of Nl
◮ ρNl (t) is almost a perfect exponential
0.01
0.1
1
0 1 2 3 4 5 6 7 8
ρ Nl (
t)
t/τint,Nl
0.01
0.1
1
0 1 2 3 4 5 6 7 8
ρ Nl (
t)
t/τint,Nl
12 24 30 60 90150240600900
◮ Scaled time by τint,Nl
◮ Good data collapse suggestszexp ≈ zint,Nl
◮ Fitting τint,Nl giveszint,Nl = 0.515(8)
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
Summary
◮ Standard worm algorithm for Ising high-temperaturegraphs outperforms SW in three dimensions
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
Summary
◮ Standard worm algorithm for Ising high-temperaturegraphs outperforms SW in three dimensions
◮ Worm decorrelates on different time scales – depends onobservable
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
Summary
◮ Standard worm algorithm for Ising high-temperaturegraphs outperforms SW in three dimensions
◮ Worm decorrelates on different time scales – depends onobservable
◮ Modified worm algorithm is demonstrated to be valid forhoneycomb lattice FPL
◮ Dynamic exponent z ≈ 0.5
Outline Worm algorithms for Ising high-temperature graphs Worm algorithms for fully-packed loops Summary
Summary
◮ Standard worm algorithm for Ising high-temperaturegraphs outperforms SW in three dimensions
◮ Worm decorrelates on different time scales – depends onobservable
◮ Modified worm algorithm is demonstrated to be valid forhoneycomb lattice FPL
◮ Dynamic exponent z ≈ 0.5◮ By contrast, even the best cluster algorithms for frustrated
Ising models are thought to be non-ergodic at T = 0