当前位置: 首页 > 知识库问答 >
问题:

如何通过实验模拟和比较各种图周期检测算法?

常元章
2023-03-14

我研究了有向图中循环检测算法的各种算法,如增量方式搜索、强连通组件、BFS、双向搜索等。现在我想对其进行模拟并比较性能。每当插入边时,我都调用循环检测函数。

所以,我的问题是我应该考虑什么样的数据集。如果我考虑随机图,那么评估各种算法的标准应该是什么。一些随机图的大小可能很大;但它们可能会导致在几个迭代中循环。如果有人能建议如何进行这项工作,那将很有帮助。

此外,为了比较性能,删除循环然后再次继续插入是否有意义。一旦它终止,比较所有实现的执行时间?

共有1个答案

程招
2023-03-14

这真的取决于你这样做的目的。一般来说,有许多随机图生成方法,但可以说最著名的是鄂尔多斯仁义。但请注意,对于具有n个顶点的图,如果没有圈,则它最多必须有n-1条边,因此此类随机图生成器将具有高概率的圈。因此,根据具体情况,您可能会发现最好保持图形尽可能稀疏(即允许很少的边)。

 类似资料:
  • 假设我有一些账单,上面有开始日期和结束日期。 我要检查的商业规则是 例如,3月10日到4月9日大约相隔一个月,所以我用它来检查任何两个连续的账单开始日期(4月10日和3月10日)是否相隔一个月。 现在我的问题是求周期的长度。例如,假设我有以下数据集 我正在使用JodaTime库,所以我说类似这样的话 它返回0,这是正确的,但没有用处。 结果是1,尽管相隔一天。 有什么更好的方法来做到这一点?我可以

  • 问题内容: 如何通过两个地图的值比较?我有两个包含相等值的地图,并希望通过它们的值进行比较。这是一个例子: 我应该如何更改代码以获取真实信息? 问题答案: 您尝试使用串联构造不同的字符串将失败,因为它是在编译时执行的。这些地图都有一对。每对将使用相同的字符串引用将“ foo”和“ barbar”作为键/值。 假设您确实要比较值集而不需要任何键的引用,则只是以下一种情况: 这 可能 是比较有将工作-

  • 问题内容: 我试图以递归方式将本地主机中的目录与远程linux机器中的目录进行比较。但是,当我执行下一条命令时: 说这是行不通的: 差异:ssh admin@10.0.0.10:/ home / admin:没有这样的文件或目录 递归比较目录内容的正确方法是什么? 提前致谢 问题答案: 如果不需要区分文件中的详细信息,只需获取目录/文件名的差异,然后尝试以下操作: (注意:需要设置“没有密码的SS

  • 问题内容: 我有一个sql文件,其中包含以下数据,我将这些数据读入pandas中。 输出量 下一行代码是获取上周的日期 我所试图做的是,比较有并打印出所有行小于 显然,这会返回一个错误 我应该怎么做? 问题答案: 我会做一个面具,像: 如果为,则返回:

  • 有人能解释一下这个结果吗? 这是我的代码: 结果是: 首先: 这很奇怪,因为我只声明了一个模板类“T”。第一个比较结果为false,因为val1是long,val2是int(我已经通过debuger进行了检查)。但不应该是这样,因为我只声明了一个模板类,并且两个模板类都是相同的。 和 第二: 为什么每个大于127的“长”大数都不相等?? 谢啦!

  • 因此,我尝试将插入排序与必须传入的通用比较器一起使用。我无法更改方法名称。我如何实现一个比较器来传递到insertionSort方法中?我是java和面向对象编程的新手。 该测试只是一个junit测试。