【发布时间】:2020-04-17 18:28:58
【问题描述】:
我有一个由顶点和弧组成的网络(图),如下所示。
我想要什么:
A 想要从第 1 天到第 m 天在网络中进行一组随机游走,以便在该组随机游走中的至少一个随机游走中访问所有顶点。
我在 while 循环中执行此操作。
问题:
可能的最小实例(网络)在 28 天内由三种类型的顶点(白天、晚上和夜晚)组成。
这会导致 while 循环永远运行。这是因为随机游走最有可能在夜间结束,并且包含顶点 (n-2) 的随机游走的概率为 (1/3^28 = 0,00000000000000131%)。
随机游走的起点是在可能的顶点/弧中均匀随机地选择下一个顶点/弧。在我的网络中,这将导致以下概率:
[(1/3, 1/3, 1/3), (0, 1/2, 1/2), (0, 0, 1)]
#Equivalent to
[(33, 33, 33), (0, 50, 50), (0, 0, 100)]
#[(day),(evening),(night)]
其中每个元组表示当最后一个选择的顶点分别是白天、晚上和夜晚时,下一个顶点被选择最多的概率。
解决方案:
我想出的解决方案是将概率 [(33, 33, 33), (0, 50, 50), (0, 0, 100)] 更改为 fx [(80, 15, 5), (0, 80, 20), (0, 0, 100)].
我会根据从每种类型的顶点到每种类型的顶点的弧数来计算。
#list1
[[27,27,27], [0,27,27], [0,0,27]]
#list2
[(80, 15, 5), (0, 80, 20), (0, 0, 100)]
总结一下:
矩阵中的第一个向量(在list1中)分别表示从顶点类型1到顶点类型1、类型2和类型3的边数。同样,向量2表示从顶点类型2到分别的边数向量类型 1、类型 2 和类型 3,与向量 3 类似。
list2 表示当最后选择的顶点分别为类型 1、类型 2 和类型 3 时,随机游走中的下一个顶点将分别被选择为顶点类型 1、类型 2 和类型 3 的概率。
需要帮助:
我想基于 [[27,27,27], [0,27] 获得类似于 [(80, 15, 5), (0, 80, 20), (0, 0, 100)] 的东西,27], [0,0,27]]。
我怎样才能在数学上做到这一点?
(它不一定要给出完全相同的值,但与 list2 中的大小比例相同(因为它们只是基于逻辑))
我认为它可以以某种通用方式在数学上表示,这样它就可以用于更复杂的网络,不一定具有相同的图结构。
奖励信息: 另一个例子,我想找到一组概率可能如下,这是第二个最简单的扩展 [[27,27,27,27],[0,27,27,0],[0,0, 27,0],[27,27,27,27]].
更新: 我被告知,我也许可以模拟它,但无法弄清楚如何在实践中做到这一点。然后我应该使用哪些概率?以及如何使用此模拟来获得最佳百分比?
【问题讨论】:
-
我正在寻找一种方法来获得类似于: [(80, 15, 5), (0, 80, 20), (0, 0, 100)] (不一定是完全相同的数字,但尽可能接近)仅基于 [[27,27,27],[0,27,27],[0,0,27]]。是的,上面的例子是最小和最简单的可能情况,它被迭代扩展到更大和更复杂的情况。它被用作更大的问题实现的一部分。
-
list1 的一个简单扩展示例可以是 [[27,27,27,27],[0,27,27,0],[0,0,27,0],[ 27,27,27,27]]。但最终结构不会遵循相同的模式。
-
嗨 JohanC,我完全改变了我的问题,希望它现在更有意义。如果您能再读一遍并给出反馈,我将非常感激,如果仍有不清楚或缺少细节的地方。
-
以相同的概率到达
n、n-1和n-2的唯一方法似乎是所有权重都为零,除了直行(将获得 100%)。如果您在短短几天内拥有诸如[(80, 15, 5), (0, 80, 20), (0, 0, 100)]之类的权重,那么几乎所有路径都会导致“夜晚”。 -
您有什么建议可以推导出更好的概率以确保遍历顶点
n、n-1和n-2?