在有向图中找到具有最大权重的电路的算法是什么?

What is an algorithm to find the circuit with max weight in a directed graph?

第一个问题是我找不到一个算法,给定一个有向图作为输入,给出一个包含图中所有循环的列表作为输出。 (这道题应该是NP完全的)。

考虑了一会儿这个问题后,我意识到我真正需要的可能是找到具有最大权重(边的权重之和)的电路(它可以有重复的顶点但不能有重复的边)。

这应该也是一个 NP 完全问题,一种处理方法可能是列出图中存在的所有电路,然后按边权重之和对它们进行排序。

您是否知道某种算法可以输出 有向 图中所有电路的列表?或者找到最大权重的电路?

我找到了这个,但这不是我需要的。

http://epubs.siam.org/doi/abs/10.1137/0205007

但是您确认这些问题的计算复杂度吗?

你可以做某事。喜欢这里:Finding all cycles in a directed graph.

您对每个节点执行此搜索并将其并行化以减少运行时间。之后,您将有效的 sort-algorithm 应用于循环列表,其中每个循环都是一个节点列表。排序算法可能是我的 Mergesort 或 Quicksort,但选择你喜欢的..

我希望这能让你进步。