An alternative to Metropolis Monte Carlo

  • Context: Graduate 
  • Thread starter Thread starter christianjb
  • Start date Start date
  • Tags Tags
    Monte carlo
Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
2 replies · 2K views
christianjb
Messages
529
Reaction score
1
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.
 
Physics news on Phys.org
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:
wow that's really cool, i had never heard of that before, you are very smart to figure that out