问题标签 [random-walk]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
833 浏览

c++ - 使用 MPI 随机游走:为什么我的消息会丢失?

我正在尝试使用 MPI 和 C++ 开发并行随机游走器模拟。

在我的模拟中,每个过程都可以被认为是一个可以包含粒子(随机游走者)的单元。单元在周期性边界条件(即环形拓扑)的一维上对齐。

在每一个时间步长中,一个粒子可以以一定的概率停留在其单元格中或进入左右相邻单元格。为了使它更容易一点,只有每个单元格列表中的最后一个粒子可以行走。如果粒子行走,则必须将其发送到具有相应等级的进程(MPI_Isend + MPI_Probe + MPI_Recv + MPI_Waitall)。

然而,在第一步之后,我的粒子开始消失,即消息以某种方式“丢失”。

下面是一个最小的例子(对不起,如果它仍然很长)。为了更好地跟踪粒子运动,每个粒子都有一个 ID,该 ID 对应于它开始的进程的等级。在每一步之后,每个单元格都会打印存储在其中的粒子的 ID。

我用 8 个进程运行了模拟,下面是输出示例。在第 1 步中,它似乎仍然运行良好,但从第 2 步开始,粒子开始消失。

我不知道代码有什么问题......不知何故,MPI_Isend + MPI_Probe + MPI_Recv + MPI_Waitall 的组合似乎不起作用......任何帮助都非常感谢!

0 投票
1 回答
1316 浏览

matlab - MATLAB:绘制随机游走

所以我需要创建一个函数,为连续随机跳跃的人绘制位置与时间的关系。每次跳跃以概率 R 向右移动一个单位,否则向左移动一个单位。参数必须是 R = 可能是向右跳一个单位;a = 初始位置;和 numjumps = 个人进行的跳跃次数。我还需要使用该binornd()功能。

到目前为止我编码的是:

我必须用plot_sim(0,25,0.5). 我只是感到困惑,因为即使我有plot(time,loc,'-'),它也不会绘制为连接线,它只是绘制为单独的点。我尝试在 for 循环之外包含 plot 函数,但这不起作用。我什至尝试过改变点的颜色,但这甚至不起作用。我编码错了吗?

0 投票
1 回答
1876 浏览

python - 一般随机游走生成器问题

好的,所以我有一些关于如何继续我的 python 脚本以生成一组随机游走的一般性问题。到目前为止,我的程序中有一个运行良好的一维随机游走。我的问题是,我想创建一个 for 循环以使其具有多个步行者,假设程序处理了 20 个。我该怎么做。另外,我试图找到每个步行者的位移均方根值。我不知道该怎么做,我只知道我需要找到总位移和每个单独步骤平方之间的所有差异的总和,然后除以总步骤数,但我不确定如何也要编码。任何帮助将不胜感激,谢谢!到目前为止,这是我的代码

0 投票
1 回答
1034 浏览

python - 用于评估随机游走的python库?

我正在尝试评估随机游走结束位置的概率,但我的程序速度遇到了一些问题。基本上我想要做的是将包含随机游走概率的字典作为输入(例如 p = {0:0.5, 1:0.2. -1:0.3} 意味着 X 有 50% 的概率停留在0, 20% 的概率 X 增加 1, 30% 的概率 X 减少 1) 然后计算 n 次迭代后所有可能的未来状态的概率。

例如,如果 p = {0:0.5, 1:0.2。-1:0.3} 和 n = 2 如果 p = {0:0.5, 1:0.2,它将返回 {0:0.37, 1:0.2, -1:0.3, 2:0.04, -2:0.09}。-1:0.3} 和 n = 1 那么它将返回 {0:0.5, 1:0.2。-1:0.3}

我有工作代码,如果 n 很低并且 p 字典很小,它运行相对较快,但是当 n > 500 并且字典有大约 50 个值时,计算需要超过 5 分钟。我猜这是因为它只在一个处理器上执行,所以我继续修改它,以便它使用 python 的多处理模块(因为我读到多线程不会因为 GIL 而提高并行计算性能)。

我的问题是,多处理并没有太大的改进,现在我不确定是因为我实现错误还是因为 python 中的多处理开销。我只是想知道当 n > 500 并行时是否有一个库可以评估随机游走的所有可能性的所有概率?如果我找不到任何东西,我的下一步是用 C 编写我自己的函数作为扩展,但这将是我第一次这样做,尽管我已经用 C 编码了一段时间。

原始非多处理代码

多处理代码

0 投票
1 回答
298 浏览

python-2.7 - 使用带有 LineCollection 的子图

我正在尝试绘制一个限制在格子上移动的随机游走。

为了实现这个约束,我使用 hstack 来格式化来自 matplotlib 模块的 LineCollection 段。

我希望四个随机游走在同一个图上的四个象限中开始。就我现在的代码而言,我得到了四个单独的图。

如何指定在同一个图上绘制所有数据?#multiple 2D 随机游走

我在看什么

顺便说一句,我正在使用从放射性同位素硬件随机数生成器生成的随机位。

0 投票
2 回答
1598 浏览

algorithm - 2D 网格中随机游走所覆盖的区域是多少?

我是一名生物学家,正在申请一份工作,为此我需要解决这个问题。这是一个开放的书本测试,互联网和任何其他资源都是公平的游戏。这是问题 - 我坚持如何处理它并希望得到指点。我的直觉贴在下面。

背景

你的邻居是一个农民,有两只牛,克拉拉贝尔和伯纳黛特。每头奶牛都有自己的方形围栏,边长为 11m(见第一张图)。这位农民正要出城旅行,并计划将奶牛留在各自的围栏中,这些围栏完全长满了草。奶牛从围栏的中心开始,慢慢地在围栏周围移动,吃草。他们在围栏周围移动得很慢,每走一步总是停下来吃饭或休息。如果将笔分成 1m 个方格,奶牛每一步可以向任意方向移动一个方格(就像棋盘上的国王一样),如第二张图所示。

图 1/2

每次移动后,奶牛会在新的广场上花 20 分钟时间吃草(如果有的话)。广场上的草一旦被吃掉,就永远消失了。如果牛移动到一个草已经被吃掉的广场,那么牛将在那个广场休息 20 分钟。20 分钟后,无论是休息还是进食,奶牛都会移动到另一个方格。如果一头奶牛在栅栏附近的方格中,她永远不会试图朝栅栏的方向移动。奶牛从不会连续两次在同一个方格内待——它们总是在休息或进食后移动到另一个方格。第一个图显示了几个小时后钢笔的外观示例,棕色斑点表示已擦过的方块。

第一头奶牛克拉拉贝尔在移动时对方向没有偏好。她同样有可能在任何时候都朝任何方向移动。设 p 是她朝某个方向移动的概率,如下图第一张所示。

第二头奶牛伯纳黛特更喜欢向有草的方格移动。她向有草的空间移动的可能性是向她已经吃过的空间移动的可能性的两倍,如下图第二个所示。

图 3/4

问题

  • 如果农夫在 48 小时后返回,您预计 Clarabelle 会吃掉她笔中的草的百分比是多少?
  • 你预计 Bernadette 需要多长时间才能吃掉她笔中 50% 的草?
  • 假设如果任何一头奶牛 24 小时不吃任何草,她就会死。哪头牛有望活得更久?

我的直觉

这似乎是对通过二维网格的随机游走进行建模。例如,我可以计算出在给定时间后处于网格中特定节点的概率。但是我不确定如何考虑牛走过时所覆盖的区域。将不胜感激任何见解。

编辑:这里的最终目标是让我为此编写某种程序。这不是一个纯粹的数学问题,因此这里的帖子。

0 投票
2 回答
48 浏览

function - 用于导出连续随机数序列的函数

我曾经读过一篇关于函数的文章,我相信它有一个像 Piersen 或 Poisson 这样的名字,用来获取接近前一个的随机数。显然,它被用于某些电器,并广泛用于机器人技术中,如文章中所述。这是原始示例:

假设你要建造一个有两个轮子的机器人。您希望这个机器人沿着房间周围的一些随机路径走,而不是特别去任何地方,在随机时间转动随机数量。如果你将一个真正的随机数生成器输入每个轮子,机器人很可能会在原地猛拉和旋转,而不是沿着某个路径前进。我们的目标不是让机器人沿着一条直线行进,而只是让它看起来有一些动作背后的逻辑。

因此存在这个函数,一个连续但随机变化的函数,可以随心所欲地上下弯曲。通过从函数中以设定的间隔获取输出(例如从 234.198 开始,间隔为 0.01),可以保证发送到轮子的每个值都是随机的,但会遵循一些路径以及先前和未来的值。通过选择更大或更小的间隔,可以改变连续值之间的关系程度,从而基本上使机器人或多或少地陶醉。

这个函数的名称是什么?

0 投票
1 回答
3844 浏览

python - 在 Python 中绘制 3D 随机游走

我想在 Python 中绘制 3-D 随机游走。类似于下面给出的图片的东西。你能给我推荐一个工具吗?我正在尝试使用 matplotlib,但对如何做到这一点感到困惑。
现在我有一个lattice零数组,它基本上是X*Y*Z维度的,并保存随机步行者走过的信息,转向随机步行者走过01每一个(x,y,z)

如何创建步行的 3D 视觉效果?在此处输入图像描述

0 投票
2 回答
138 浏览

r - 在 R 中向量化时间序列集合生成器

这个 R 脚本生成时间序列的集合。该系列源自函数 f(t) = alpha * f(t-0) + epsilon,其中 epsilon 是来自正态分布的随机数。

最终结果是从不同的 alpha 值生成的集合列表。

它如何被矢量化?使用基本函数会很棒,但也欢迎需要额外包的解决方案。

0 投票
1 回答
1680 浏览

r - 如何在 R 中重复 1000 次这种随机游走模拟?

我正在模拟一维对称随机游走过程:

其中白噪声用epsilon[t] ~ N(0,1)时间周期表示t。在这个过程中没有漂移。

此外,RW 是对称的,因为Pr(y[i] = +1) = Pr(y[i] = -1) = 0.5.

这是我在 R 中的代码:

我想模拟 1000 个不同的y[i,t]系列(i=1,...,1000; t=1,...,1000)。(之后,我将检查在 和 处回到原点 ( )y[1]=0t=3概率。)t=5t=10

y[t]哪个函数可以让我用随机游走时间序列进行这种重复?