6
什么时候说两种算法“相似”?
我不从事理论工作,但是我的工作需要不时阅读(和理解)理论论文。一旦理解了(一组)结果,我就会与与之共事的人讨论这些结果,其中大多数人也不是理论上的人。在其中一种讨论中,出现了以下问题: 什么时候说两个给定的算法“相似”? “相似”是什么意思?我们可以说,如果您可以在论文中提出以下任一主张而不会混淆/烦扰任何审阅者(欢迎使用更好的定义),则可以说两种算法是相似的: 声明1.“算法与算法相似,也解决了问题 ”AAABBBXXX 声明2。“我们的算法类似于算法 ”CCC 让我稍微具体一点。假设我们正在使用图算法。首先,两种算法必须相似的一些必要条件: 他们必须解决相同的问题。 他们必须具有相同的高级直观想法。 例如,谈到图遍历,广度优先和深度优先遍历满足以上两个条件;对于最短路径计算,广度优先和Dijkstra的算法满足上述两个条件(当然,在未加权图上);等等 这些条件是否也足够?更具体地,假设两种算法满足必要条件以变得相似。如果真的,您是否会称它们相似? 他们有不同的渐近表现? 对于一类特殊的图,一种算法需要时间,而另一种算法则需要时间?Ω(n)Ω(n)\Omega(n)O(n1/3)O(n1/3)O(n^{1/3}) 他们有不同的终止条件?(回想一下,他们正在解决相同的问题) 两种算法的预处理步骤是否不同? 两种算法的内存复杂度是否不同? 编辑:问题显然是非常依赖于上下文的,并且是主观的。我希望以上五种条件能够提出一些建议。如果需要获得答案,我很乐意进一步修改问题并提供更多详细信息。谢谢!