Python中的随机游走实现

2025年3月5日 | 阅读 4 分钟

引言

在一个数学空间(例如整数)上由一系列随机步骤组成的旅程,可以用一个称为随机游走的数学对象来描述,有时也称为随机过程。整数数轴上的随机游走是随机游走的一个简单例子。它从 0 开始,在每一步以相等的概率前进 +1 或 -1。随机游走模型也可以用来表示其他现象,例如分子在液体或气体中移动的路径、动物的搜索路径、波动股票的价格或赌徒的财务状况,即使这些现象实际上可能不是随机的。

正如这些例子所示,随机游走在许多科学领域都有用,例如生态学、心理学、计算机科学、物理学、化学、生物学和经济学。作为已知随机活动的基本模型,随机游走解释了许多学科中众多系统的观察行为。在基于代理建模的上下文中,可以使用随机游走大致计算 pi 的值,这是一个更数学化的应用。

我完成了枯燥的理论。既然我们已经理解了代码,让我们休息一下。因此,要编程实现随机游走,我们实际上需要几个 Python 库:一些用于算术计算,另一些用于绘图。

所需库

  • matplotlib 一个名为 Matplotlib 的灵活的 Python 包,可用于在各种格式中创建各种静态、交互式和动画可视化。
  • numpy. 一个名为 NumPy 的 Python 包,在数值计算中有效地利用数组和矩阵。
  • random 要创建随机点,我们将使用一个内置的 Python 模块。

一维随机游走

整数数轴上的随机游走,它从 0 开始,在每一步以相等的概率前进 +1 或 -1,是随机游走的一个简单示例。

因此,让我们尝试使用 Python 来创建一维随机游走。

输出

Random Walk Implementation in Python

说明

随附的 Python 代码模拟了一维随机游走。它设置起始位置,创建随机点,初始化向上或向下移动的可能性,然后根据概率计算位置。最后,它使用 Matplotlib 绘制一维随机游走图。

高维随机游走

随机遍历点的集合在高维空间中表现出有趣的几何特征。实际上,得到的是一个离散的分形或一个显示大规模随机自相似性的集合。可以看到由游走使用的网格产生的微小“锯齿状”。下面的两本 Lawler 的书是此信息的绝佳资源。随机游走所访问的点集,无论游走在每个位置的到达时间如何,都称为其轨迹。在一维中,轨迹由游走最低和最高点之间的所有位置组成——平均而言,这两个点都处于 n 的数量级。

让我们尝试生成一个二维随机游走。

输出

Random Walk Implementation in Python

说明

这个 Python 应用程序模拟了网格中的运动来创建一个二维随机游走。它初始化 x 和 y 坐标的数组,输入步数 (n),然后迭代每一步,随机向左、向右、向上或向下移动。最后,它使用 Matplotlib 绘制随机游走图。

随机游走的某些应用

  1. 随机游走可用于模拟计算机网络中服务器上排队的传输数据包数量。
  2. 在群体遗传学中,随机游走被用来表征遗传漂移的统计特征。
  3. 在图像分割中,随机游走被用来标识属于每个像素的标签(例如“对象”或“背景”)。
  4. 在脑科学研究中,使用随机游走和强化随机游走来模拟大脑的细胞放电级联。
  5. 随机游走也被用于在线社交网络和其他大规模在线图的采样。