小编pyr*_*nus的帖子

Python 中“Laakso 图”的实现

我想利用 networkX Python 包实现“Laakso 图”,这是一个生成分形图案的递归图。

Laakso 图 $L_k$ 在正整数上递归定义。

$L_1$ 只是由一条边连接的两个节点。

然后,通过用标准 4 周期图的副本替换 $L_{i-1}$ 中每条边的一部分,从 $L_{i-1}$ 构建 $L_i$。(等效地,用 $L_2$ 的副本替换每个完整边缘)。这是 $L_2$ 和 $L_3$ 的图(尽管有有向边,我不关心)。

在此输入图像描述

我没有太多编码经验(我是一名经过训练的数学家),老实说,我一直在使用 ChatGPT 的帮助来创建 Python 代码来实现不同类型的图表。

然而,这个图并不为人所知,并且递归的元素给正确实现带来了一些困难。

本质上,我希望能够调用一些由 $k$ 参数化的函数,该函数创建 $k$ 级别的 Laakso 图。

实现 $L_1$ 很简单,$L_2$ 也不难。但我不确定编写代码的最佳方法,以便下一级图始终获得正确数量的节点以及正确位置的边。

编辑:特别是,当您在下一个级别创建新节点时,我对重新标记节点感到困惑。例如,如果我们尝试用 L_2 的副本替换边 (1,2),则需要添加 4 个新节点 3,4,5,6 和一些新边。但是带有这些标签的原始节点会发生什么情况呢?也许有一种方法可以通过新节点要替换的边来索引新节点,这样我们就可以以这样的方式插入新节点:如果边 (1,2) 是“边 1”,则替换边 1 的新节点是 1.1 、1.2、1.3、1.4。我已经觉得这变得太复杂了,但也许必须如此才能正确实现这一点。

编辑2:为清楚起见,另一个图。 在此输入图像描述

math graph networkx

2
推荐指数
1
解决办法
132
查看次数

标签 统计

graph ×1

math ×1

networkx ×1