呈现一个贪心算法以在未加权图中找到最长的循环

问题描述 投票:0回答:1

我只能想到一个简单的解决方案,即找到图中的所有循环,然后找到每个循环中的边数,然后返回具有最大边数的边数。

如何使用贪婪算法找到最长的周期?

algorithm graph path-finding graph-traversal
1个回答
0
投票

“最长的简单循环问题是在图中找到最大长度的循环。作为一个汉密尔顿循环问题的一般化,在一般图上,实际上,在每一类图上,它都是NPcomplete哈密​​顿循环问题是NP-完全的。最长的简单循环问题可以在多项式时间内求解可比性图的补码。也可以解决在任何有界树图的多项式时间内宽度或有界集团宽度,例如距离遗传图。但是,即使限于拆分,它也是NP难的图,圆形图或平面图。本文采用启发式提出了一种可以解决多项式问题的算法时间。使用邻接解决最长的简单循环问题通过制作给定问题的树来矩阵和邻接表找到最长的简单循环作为树中最深的路径将最深路径的叶节点与根节点重新连接。结果解决问题的复杂性的开放式问题简单的未加权图。该算法在没有平行边且没有自环的简单标记图。所提算法的最坏情况下的时间复杂度是O(V + E)。

最长的简单循环算法在提议的算法中,输入图被认为是简单图(即无自环且无并行边),简单中最长简单循环的算法图形总结如下:

  1. 枚举所有节点以计算每个节点的度找到度数最高的节点。

  2. 将具有最高度的节点分配为树的根。

  3. 考虑给定图G构造给定图G的树T相邻节点分别作为后继节点和前任节点使用邻接矩阵的每个顶点。

  4. 请应用建议的LSC算法来找到最长的路径。

  5. 用根连接最长路径的叶节点并检索将其视为图中最长的循环的路径。“

A Heuristic Algorithm for Longest Simple Cycle Problem

© www.soinside.com 2019 - 2024. All rights reserved.