跳转到内容

随机行走

来自代码酷

随机行走(Random Walk)是一种数学对象,描述由一系列随机步骤组成的路径。它在计算机科学、物理学、金融学、生物学等领域有广泛应用,是理解随机化算法和概率模型的基础工具之一。

基本概念[编辑 | 编辑源代码]

随机行走的核心思想是:在每一步,移动的方向或距离由某种概率分布决定。最简单的例子是一维随机行走,其中每一步以相等概率向左或向右移动一个单位。

数学定义[编辑 | 编辑源代码]

对于离散时间的一维随机行走,定义如下:

  • S0=0 为起点。
  • n 步的位置 Sn 满足:
 Sn=Sn1+Xn  
 其中 Xn 是独立同分布的随机变量,取值 +11,概率各为 1/2

代码示例[编辑 | 编辑源代码]

以下是一个模拟一维随机行走的Python代码:

  
import random  
import matplotlib.pyplot as plt  

def random_walk(steps):  
    position = 0  
    path = [position]  
    for _ in range(steps):  
        step = random.choice([-1, 1])  
        position += step  
        path.append(position)  
    return path  

# 模拟100步随机行走  
walk_path = random_walk(100)  

# 绘制路径  
plt.plot(walk_path)  
plt.xlabel("Step")  
plt.ylabel("Position")  
plt.title("1D Random Walk")  
plt.show()

输入:步数(如100)。 输出:一个列表,记录每一步的位置,并绘制路径图。

扩展模型[编辑 | 编辑源代码]

高维随机行走[编辑 | 编辑源代码]

随机行走可以推广到二维、三维或更高维度。例如,二维随机行走中,每一步可能向上、下、左、右移动(各概率 1/4)。

graph LR A[Start] --> B{Step 1} B -->|Up| C[Position + (0,1)] B -->|Down| D[Position + (0,-1)] B -->|Left| E[Position + (-1,0)] B -->|Right| F[Position + (1,0)]

有偏随机行走[编辑 | 编辑源代码]

若移动概率不均匀(如向右概率 p>0.5),则称为有偏随机行走,常用于建模带趋势的过程。

应用案例[编辑 | 编辑源代码]

1. 金融建模:股票价格波动常被模拟为随机行走(几何布朗运动)。 2. 网络爬虫:某些算法通过随机行走抽样网页。 3. 分子运动:布朗运动是连续时间随机行走的经典例子。

数学性质[编辑 | 编辑源代码]

  • 期望位移:一维对称随机行走的期望位移为 E[Sn]=0
  • 方差Var(Sn)=n(步数)。
  • 返回原点概率:在一维和二维中,随机行走最终会返回原点(递归性);但在三维及以上,此概率小于1。

进阶主题[编辑 | 编辑源代码]

蒙特卡洛方法[编辑 | 编辑源代码]

随机行走是蒙特卡洛模拟的基础,用于数值积分和优化问题。

自避免行走[编辑 | 编辑源代码]

限制路径不自交,用于模拟聚合物链等物理系统。

总结[编辑 | 编辑源代码]

随机行走是连接概率论与算法的桥梁,其简单性和普适性使其成为多学科研究的核心工具。通过调整参数(维度、偏置、步长分布),可适配不同应用场景。

模板:Stub