随机游走

  几何布朗运动(Brownian motion)

  布朗运动是将看起来连成一片的液体,在高倍显微镜下看其实是由许许多多分子组成的。液体分子不停地做无规则的运动,不断地随机撞击悬浮微粒。当悬浮的微粒足够小的时候,由于受到的来自各个方向的液体分子的撞击作用是不平衡的。在某一瞬间,微粒在另一个方向受到的撞击作用超强的时候,致使微粒又向其它方向运动,这样,就引起了微粒的无规则的运动就是布朗运动。(布朗运动指的是分子迸出的微粒的随机运动,而不是分子的随机运动。)即布朗运动代表了一种随机涨落现象。


随机游走

  英文:Random Walk

  定义:随机游走,概念接近于布朗运动,是布朗运动的理想数学状态。

  核心概念:任何无规则行走者所带的守恒量都各自对应着一个扩散运输定律。

  随机游走算法的基本思想是:

    • 从一个或一系列顶点开始遍历一张图。在任意一个顶点,遍历者将以概率 $1-a$ 游走到这个顶点的邻居顶点,以概率 $a$ 随机跳跃到图中的任何一个顶点,称 $a$ 为跳转发生概率,每次游走后得出一个概率分布,该概率分布刻画了图中每一个顶点被访问到的概率。用这个概率分布作为下一次游走的输入并反复迭代这一过程。当满足一定前提条件时,这个概率分布会趋于收敛。收敛后,即可以得到一个平稳的概率分布。

一维的随机游走

  一维的随机游走可定义如下:每过一个单位时间,游走者从数轴位置 $x$ 出发以固定概率随机向左或向右移动一个单位。不妨将 $n$ 时刻游走者的位置记为 $L_n$,则有
    $L_{n}=x+X_{1}+\cdots+X_{n}$

  其中 $X_1,X_2,…,X_n$ 为相互独立的随机变量,满足

    $P\left(X_{i}=1\right)=p=1-P\left(X_{i}=-1\right)$

  最经典的一维随机游走问题有赌徒输光问题和酒鬼失足问题。

  1.  赌徒在赌场赌博,赢的概率是 $p$,输的概率 $1-p$,每次的赌注为1元,假设赌徒最开始时有赌金1元,赢了赌金加1元,输了赌金减1元。问赌徒输光的概率是多少?
  2.  一个醉鬼行走在一头是悬崖的道路上,酒鬼从距离悬崖仅一步之遥的位置出发,向前一步或向后退一步的概率皆为1/2,问酒鬼失足掉入悬崖的概率是多少?

  二维随机游走示例代码:

      Random Walk

import random
import numpy as np
import matplotlib.pyplot as plt
N = 1000
d = 1 
x =np.zeros(N+1)
y =np.zeros(N+1)
x[0] = 0
y[0] = 0
for i in range(0,N,1):
    r = random.random()  #[0,1)
    if 0<=r<0.25 :
        y[i+1]=y[i]+d;x[i+1]=x[i]
    elif 0.25<=r<0.5:
        y[i+1]=y[i];x[i+1]=x[i]+d
    elif 0.5<=r<0.75:
        y[i+1]=y[i]-d;x[i+1]=x[i]
    else :
        y[i+1]=y[i]; x[i+1]=x[i]-d
plt.plot(x,y,'r',x[0],y[0],'bo',x[-1],y[-1],'b*')
plt.xlabel("East->")
plt.ylabel('North->')
plt.rcParams['figure.figsize']=(40,20)
plt.show()
View Code

相关文章: