# An alternative to Metropolis Monte Carlo

1. Nov 6, 2007

### christianjb

Has anyone come across this? I 'invented' it last night, but I'm sure it was discovered decades ago- either that, or it's wrong.

The standard problem is to sample according to a probability distribution P(x).

In standard MMC, this is achieved by:

1) Pick a trial point x' at random within x-dx..x+dx.

2) If P(x')>P(x) then accept the move- set x=x' and return to 1

3) If P(x')<P(x) then accept the move with a probability P(x')/P(x). If move is accepted then set x=x' and return to 1. If move is rejected- just return to 1 without changing x.

-------------------------------
My variation is this

1) Pick a trial point x' at random within x-dx..x+dx

2) Accept move with probability P(x')/(P(x)+P(x')). If move is accepted then set x=x' and return to 1. If move is rejected- just return to 1 without changing x.

It's quite easy to show that both methods obey 'detailed balance'. I'm not sure if there's any advantage of the variation- but it's interesting that an alternative to the standard algorithm exists.

2. Nov 6, 2007

### christianjb

After some playing around- I found this 'generalized' rule

if P(x')>P(x) accept with probability 1/(alpha P(x)/P(x')+1)
if P(x')<P(x) accept with probability 1/(alpha + P(x')/P(x))

where alpha is a number between 0 and 1.

If alpha = 0 then it reverts to the normal MMC method.
If alpha = 1 then it reverts to my above variation, but any value of alpha works.

It's clear that (the standard choice) alpha=0 is the best choice, because it gives a 100% probability of acceptance if P(x)=P(x'). So- the text-books don't have to be rewritten.

Still, it's nice to see that variants exist on the MMC algorithm. I wonder if there are any other solutions?

Last edited: Nov 6, 2007
3. Nov 6, 2007

### physicsbhelp

wow thats really cool, i had never heard of that before, you are very smart to figure that out