algorithm - 是否有任何有效的算法可以找到无向图中最长循环的长度?
问题描述
我想知道是否有任何有效的算法可以找到图中最长循环的长度?
该图是一个无向图。
该算法不必告诉循环中的顶点是什么,只需知道长度。
解决方案
在图中找到最长循环的问题是NP-hard,因为解决这个问题可以回答“这个图是 hamiltonian 吗? ”(它是否具有 hamiltonian 循环)这个问题,这本身就是一个 NP 完全问题。
所以,事实上,没有有效的算法可以做到这一点。
有一些基于矩阵乘法的方法可以在k
图中找到长度的循环。您可以在此问题中找到有关使用矩阵乘法查找循环的解释。但请注意,矩阵乘法方法允许检测walks
2 个顶点之间的给定长度,并且在步行中允许顶点的重复。
推荐阅读
- spartacus-storefront - 如何下载 sap commerce cloud 供本地使用?
- c# - 具有 30mb 输入字符串的 WCF 服务 - 远程服务器返回错误:(413)请求实体太大
- android - 无法解析定义的 Disposable
- javascript - 在使用 Javascript 确定两个日期之间的差异时,如何考虑闰年?
- shopify - Shopify / Liquid - 在没有分页的情况下计算博客中的文章
- javascript - RadioButton 选中的字段默认情况下不适用于 [No]。我已将其实现为将默认设置为 No 并禁用它
- python - 使用 Scrapy 抓取用户评论不会转到“下一页”页面
- r - 从R中的重复序列中选择具有最大数量的所有行
- java - 我的逻辑运算符 if 语句中的无尽错误
- google-apps-script - 表格卡住了正在加载...一个单元格,我必须重新加载