计算图中的生成树

问题描述

我有问题。 我正在尝试计算图中的所有生成树(它没有多边)。我知道有基尔霍夫定理,这让我可以很容易地计算它,但我更喜欢在此图中使用循环的解决方案

我试图弄清楚循环如何影响生成树的数量,我发现当有循环(没有附加边)时,我们可以简单地删除其中一条边,我们将得到一棵生成树。当有 n 个循环仅由一个节点连接时,我们可以将每个循环中的边数相乘,这就是我们的结果。问题是当两个循环与不止一个节点(例如 1 条或 3 条边)相连时。我试图写一个方程,它可以让我计算这个数字,我得到的唯一结果是 c1*c2-s^2,其中 c1 是循环 nr 的大小。 1,c2是循环nr.2的大小,s是它们的公共边数。但是在某些情况下它不起作用。我在下面附上一个例子:complete graph

我们知道一个完整图中的生成树的数量是n^(n-2),所以我们知道它有16棵可能的生成树。但是我的算法找到了其中的 20 个。原因如下:

我找到了 3 个循环:(3,4,2),(4,2,1) 和 (3,1)。 然后我只是使用循环 nr 1 和 2 (3* 3-1) 的方程,这给了我 8,最后我在最后一个循环中再使用它一次(8*3-4 [它有 2 edges]) 这给了我 20。我还必须补充一点,我的循环查找算法并不总是找到一个简单的循环。

谁能告诉我错误在哪里,以及如何修复它?提前致谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...