到目前为止,我找到了this篇论文。它已经过时了吗?有没有更快更好的实施?
顺便说一句,维基百科说在无向图中可以有n ^ n-2个生成树。有向图中可以有多少个生成树?
答案 0 :(得分:0)
如果您使用您提到的纸张中的术语,并将有向图的生成树定义为以顶点r为根的树,则具有从r到任何其他顶点的唯一路径:
很明显,当有向图具有最大数量的生成树时的最坏情况是完整图(对于任何对,存在a-> b和b->边缘)。 如果我们“忘记”关于方向,我们将得到n ^ {n-2}生成树,就像无向图一样。对于任何这种生成树,我们有n个选项来选择根,这个选项定义了唯一定义我们需要使用的边的方向。不难看出,我们得到的所有树木都是跨越的,独特的,没有其他选择。所以我们得到n ^ {n-1}个生成树。严格的证明需要时间,我希望简单的解释就足够了。
因此,在最坏的情况下,此任务将采用指数时间取决于顶点计数。考虑到输出的大小(所有生成树),我得出结论,对于任意图,算法不能显着更快更好。我认为您需要以某种方式重新表述您的原始问题,以便不处理所有生成树,并且可能仅按某些标准进行搜索。
答案 1 :(得分:0)
仅适用于无向图....
n ^ n-2跨越发辫可能只有完整的图形....找到任何图形的生成树的总数你可以应用这种方法.....