瑞士奶酪的防水性如何?

时间:2012-07-01 09:13:53

标签: algorithm shortest-path computation-theory

想象一块立方形的瑞士奶酪。我们通过20x20x20网格对奶酪进行建模。为简单起见,我们假设每个网格立方体完全由奶酪或完全由空气组成。在我们的瑞士奶酪立方体的上方,我们然后倒入水,只穿过立方体中的气孔穿透奶酪。水可以从顶部流到底部通过连续通道,但是如果两个立方体通过面(不仅仅是边缘或角落)连接,它可以仅从一个空气立方体流到下一个空气立方体。水也可以在弯路中流动,例如在水槽排水管中,但它可能不会流出奶酪立方体的侧壁。

现在让我们以编程方式实施瑞士奶酪的模型,如上所述随机分配空气和奶酪块,奶酪 p 的概率和空气的概率 1 - p 并模拟流经奶酪的水,以便了解水是否流经瑞士奶酪块的底部。

通过反复模拟流经瑞士奶酪块的水,奶酪和空气的概率不同,我们可以确定p与水流入瑞士奶酪块底部的可能性之间的关系,我们可以将其命名为 q 。结果如下:

q
1   ************************
0.8                          *
0.6                           *
0.4                            *
0.2                             *
0                                 ***********
    0       0.2     0.4     0.6     0.8     1   p

我的气质:为什么这么奇怪的曲线?

此问题来自23rd federal competition of informatics in Germany (2004/2005)。网上没有提供“为什么这么奇怪的曲线”的回答(solutions provided)。

我希望我能在这个问题上找到合适的位置。

2 个答案:

答案 0 :(得分:20)

也许您会直观地找到以下解释:

在您的情况下,20 * 20 * 20个单元,除非您有至少20个孔,否则水流的概率恰好为0.如果您有20个孔,如果您在一个柱中订购它们,水会流动,但是这种顺序随机出现的概率非常低,20 * 20 / Comb(20 ^ 3,20)〜= 1e-57。当你增加洞的数量时,连续路径的出现变得越来越可能。

当除了20 * 20之外的所有细胞都是洞时,阻断流动的唯一方法是将所有干酪细胞分成单个“阻塞”层,例如,一个水平的20 * 20层。 (还有其他可能的配置,但也不太可能。每个(x,y)坐标只需要一个奶酪块,每个奶酪块必须与其所有(x,y)邻居联系。但它们可能是沿z轴传播。)

一旦你的奶酪块少于20 * 20,就不能形成一个完整的层,流量概率恰好为1。

答案 1 :(得分:3)

这是振亚评论的延伸。

如上所述,您的瑞士奶酪就是percolation theory的一个例子。当我们考虑Statistical Mechanics的主题时,这是phase transitions的基本概念。渗透理论的一个典型例子与你发布的问题非常相似。

Erdős-Rényi模特

Erdős–Rényi model中,您以空graph开头,并使用概率为p的边连接节点。在一些严重的p值处,图的结构从一堆断开的簇变为一个包含大部分节点的大型生成结构。事实上,如果您要绘制最大群集的平均大小,您将获得与瑞士奶酪模型非常相似的图片!示意性地看起来像这样:

enter image description here

你会在应用数学和物理学的许多例子中找到它。图片来自Frontiers中的这篇文章,它更详细地讨论了这一现象。