SHIFT MOVES 133
v. There are a number of neighbors w
1
,...,w
k
where each has a
γ
chance (indepen-
dently) of not affecting the birth of v in the slightest.
However, it could be that exactly one neighbor is blocking the draw of v.Inthis
case, flip a p
s
-coin, and if it comes up heads, keep the birth and kill the neighbor. In
other words, shift the neighbor w to v.
This move maintains both the number of points in the configuration and the num-
ber of pairs within distance R of each other. Also, the rate of shifting from x + v −w
to x + w −v are exactly equal, so the conditions of the theorem are satisfied.
This gives rise to the following pseudocode.
Strauss shift update Input: current x, Output: next x
1) Draw T
B
← Exp(
βν
(S))
2) Draw T
D
← Exp(#x)
3) If T
D
< T
B
(then there is a death)
4) Draw v uniformly from x, x ← x −v
5) Else
6) Draw v over
ν
(S)
7) N
v
←{w :dist(v,w) ≤ R}
8) For each w ∈ N
v
9) Draw C ← Bern(
γ
),IfC = 1thenN
v
← N
v
−w
10) If #N
v
= 0or(#N
v
= 1andU < p
s
)
11) x ← x N
v
+ v
Now examine how to update the bounding chain. Recall that the bounds are A ⊆
x ⊆ B, so that points in A are definitely in the configuration, while points in B A
might be in the configuration, or they might not be. So both possibilities have to be
considered when deciding what to do at the next step.
Let N
A,v
= {w ∈ A :dist(v,w) ≤ R},andN
B,v
= {w ∈ B :dist(v, w) ≤ R}.Then
each point in N
B,v
is retained independently with pro bability 1 −
γ
. If it is removed
from N
B,v
, it is also removed from N
A,v
. Now there are three cases to consider.
Case 1: #N
A,v
= #N
B,v
= 0. This is the easiest case, since here v will be born
regardless of whether or not a shift is attempted.
Case 2: #N
A,v
= 0, #N
B,v
= 1. This is an interesting case. Suppose a shift is at-
tempted. Then the fact that there is a w ∈ N
B,v
N
A,v
means that this point w might or
might not be part of the configuration. If it is not part of the configuration, then the
point v is born normally. If it is part of the configuration, then w is shifted to v. Eith er
way , w is now removed from the configuration, and v is added!
Case 3: #N
A,v
= 1, #N
B,v
> 1. When there is no shift move then the point in N
A,v
prevents v from being born. When there is a shift move, bad things happen: v might
or might not be born, and the point w ∈ N
A,v
might or might not be shifted away. The
result is that v and w are both removed from A andaddedtoB.
Case 4: #N
A,v
= 0, #N
B,v
> 2. In this case, whether or not there is a shift move
thefateofv is u ncertain, and so v is added to B but not to A.
This is summarized in the following pseudocode.
Strauss shift bounding update Input: x, A, B Output: x, A, B