如何解决计算图中的生成树
我有问题。 我正在尝试计算图中的所有生成树(它没有多边)。我知道有基尔霍夫定理,这让我可以很容易地计算它,但我更喜欢在此图中使用循环的解决方案。
我试图弄清楚循环如何影响生成树的数量,我发现当有循环(没有附加边)时,我们可以简单地删除其中一条边,我们将得到一棵生成树。当有 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 举报,一经查实,本站将立刻删除。