如何解决越差越好有例子吗?
用于正方形矩阵乘法的Coppersmith- Winograd算法。其时间复杂度是O(n 2.376) 相对于 为O(n 3幼稚乘法算法或) 相对于 为O(n 2.807对)的Strassen算法。
从维基百科文章:
但是,与Strassen算法不同,它没有在实践中使用,因为它仅对大型矩阵提供了一个优势,以至于现代硬件无法对其进行处理(Robinson 2005)。
解决方法
有没有有时间复杂广泛使用的算法 更糟 比其它已知的算法,但它是一个 更好 的选择, 所有的 实际情况( 更糟糕的 复杂性,但
更好的 其他方式)?
可接受的答案可能是以下形式:
有算法
A
和B
具有O(N**2)
和O(N)
时间复杂性相应,但B
具有这样的大恒定,它具有超过没有优势A
,用于输入小于一个数量在宇宙的原子。
示例从答案中突出显示:
-
单纯形算法-最坏的情况是指数时间- 与 已知的多项式时间算法进行凸优化问题比较。
-
天真的中位数算法-最坏情况下的O(N ** 2) 与 已知的O(N)算法。
-
回溯正则表达式引擎-最坏情况的指数 与 基于O(N)Thompson NFA的引擎相比。
所有这些示例均利用最坏情况与平均情况。
是否有一些示例不依赖于最坏情况与平均情况之间的差异?
有关:
-
``越糟越好’‘的兴起。(出于这个问题的目的,“更糟”的用语比本文中的含义 更窄 (即,算法时间复杂度))
ABC集团追求完美。例如,他们使用了基于树的数据结构算法,该算法被证明对于渐近大集合是最佳的(但对于小集合来说并不是那么好)。
如果没有能够存储这些大集合的计算机(换句话说,在这种情况下,大不够大),将是这个示例的答案。
- 正方形矩阵乘法的Coppersmith–Winograd算法是一个很好的例子(最快(2008年),但不及更差的算法)。 还有其他吗? 摘自维基百科文章:“在实践中不使用它,因为它仅对大型矩阵提供了优势,以至于现代硬件无法对其进行处理(Robinson 2005)。”
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。