Jump and relax

Keyword:

MOVE_JUMP_AND_RELAX

Move code:

13

Status:

stable

How it works

Jump-and-relax concentrates sampling effort on relocating a single chain. It is a composite of three sub-steps applied to the selected chain:

  1. relax - a single-chain crankshaft “shake” (many local perturbations of the chain, each accepted/rejected on its own);

  2. jump - a rigid translation of the whole chain, accepted or rejected on its own merit;

  3. relax - a second single-chain shake in the chain’s (possibly new) location.

The relaxations let the chain explore conformations before and after the relocation attempt, so a chain that lands somewhere viable can settle into its new surroundings.

Why detailed balance holds

The argument is composition, not a single acceptance test. Each of the three sub-steps is, on its own, a valid Monte Carlo update that leaves the Boltzmann distribution \(\pi\) invariant:

  • the relaxation shakes are ordinary single-chain crankshaft sub-chains, each obeying detailed balance (Crankshaft);

  • the jump is a standard single-chain translation accepted with the Metropolis criterion \(\min(1, e^{-\Delta E/T})\) (Chain translate).

A sequence of \(\pi\)-invariant kernels \(K_1, K_2, K_3\) has \(\pi\) as a stationary distribution of the product \(K_1 K_2 K_3\),

\[(\pi K_1 K_2 K_3)(y) = \pi(y),\]

so the composite move samples the correct distribution.

A subtle history

Earlier versions of this move applied the jump unconditionally and deferred a single accept/reject to the energy after both relaxations (\(E_\text{final}\) vs \(E_\text{initial}\)). Because the relaxations bias the proposal, that composite is an asymmetric proposal, and a plain Metropolis test on \(E_\text{final}-E_\text{initial}\) is not a valid Hastings acceptance - it over-accepts downhill moves and breaks detailed balance (the bias grows with the relaxation strength). Accepting/rejecting the jump on its own merit, between two \(\pi\)-preserving relaxations, is what makes the move correct.

Configuration

MOVE_JUMP_AND_RELAXfloat

Probability of selecting a jump-and-relax step (all MOVE_* must sum to 1.0).

CRANKSHAFT_SUBSTEPSint

Reused to size the two relaxation shakes.

Because the jump is now accepted on its own energy, it does not “rescue” a chain that lands in a bad spot; for aggressive relocation through dense/condensed phases prefer Virtual-Move Monte Carlo (VMMC) or Pull (cooperative reptation), which are built for that.