矩阵乘法指数


15

通俗地讲,矩阵乘法指数的定义是存在已知的矩阵乘法算法的最小值。作为正式的数学定义,这是不可接受的,因此我想技术定义就像是整个t的最小值,因此n t中存在矩阵乘法算法。ñ ωωñωŤñŤ

在这种情况下,不能说有一个算法矩阵乘法ñω甚至ñω+Ø(1个),仅仅是对于所有在存在一个算法。但是,使用矩阵乘法的论文和结果通常会简单地将其成本报告为。Ñ ω + ε Ö (Ñ ω)ϵ>0ñω+ϵØ(ñω)

有其他替代定义可以使用吗?是否有保证时间的算法任何结果ñ ω或ñ ω + Ö (1 )必须存在?或者是使用Ø (ñ ω)只是马虎?ωñωñω+Ø(1个)Ø(ñω)


2
如果你只是想使用矩阵乘法作为黑箱,最简单的方法就是“让是这样的,我们可以多ñ × ň与-matrices Ø (ñ ω)的算术运算”。当然,ω不是矩阵乘法的指数,但是可以任意接近。如果要用十进制表示法来表示最终运行的指数,则目前必须四舍五入,因为我知道的所有ω的非平凡估计都是无理数或无限序列。ωñ×ñØ(ñω)ωω
— MarkusBläser2011年

2
通常定义为所有实数 k的 n到 ∞的最小值,从而有一个 O (n k)时间算法将两个 n × n矩阵相乘(其中时间是相加,相乘和相除的次数)。基础字段)。在技术上我们应该总是写这也意味着 ň ω + Ö (1 ),但会混乱,所以当你看到 Ø (ñ ω),你应该考虑 Ø (中号(ñωķñ∞Ø(ñķ)ñ×ññω+Ø(1个)Ø(ñω),其中 M (n )是矩阵乘法算法的运行时间。Ø(中号(ñ))中号(ñ)
— virgi 2014年

Answers:


20

矩阵乘法指数为不保证有一个算法,在时间运行Ö (Ñ ω),但只为每个ε > 0,存在一种算法,在运行Ö (Ñ ω + ε)。确实,如果您找到一种在时间O (n 2 p o l y l o g(n ))上运行的算法,则表明ω = 2。ωO(nω)ϵ>0O(nω+ϵ)O(n2polylog(n))ω=2

您可以在PeterBürgisser,Michael Clausen,Amin Shokrollahi撰写的《代数复杂性理论》一书中找到正式定义。


7

次要评论,太长了,无法发表评论:

有时,当您遇到一个问题,对于每一个ϵ > 0,都有一个运行时间为的算法,那么就有一个运行时间为n k + o (1 )的算法。Ø(ñķ+ϵ)ϵ>0ñķ+Ø(1个)

例如,有时你能像算法对于一些快速成长的函数˚F(如2 2 1 / ε)。如果将f (1 / ϵ )设置为(n)log n,则ϵ将为o(1)。在f (1 / ϵ )为2 2 1 / ϵ的示例中,您可以选择1 / ϵF(1个/ϵ)ñķ+ϵF221个/ϵF(1个/ϵ)日志⁡ñϵF(1个/ϵ)221个/ϵ1个/ϵ成为,得到ϵ = 1 /(log log log n ),即o(1)。所以该算法的最终运行时间将是Ñ ķ + Ö (1 )中,由于日志Ñ也Ñ Ô (1 )。日志⁡日志⁡日志⁡ñϵ=1个/(日志⁡日志⁡日志⁡ñ)ñķ+Ø(1个)日志⁡ñno(1)


我认为Coppersmith-Winograd算法属于这一类吗?
— 戴维·哈里斯

2
@DavidHarris:对此一无所知。也许了解算法的人也许可以对此有所了解。我只是想说并不像看起来那样糟糕。Ø(ñķ+ϵ)
— 罗宾·科塔里

5

据公知的结果即铜匠和的Winograd的 -time不能由任何单一的算法来实现。但是我已经读到它们只限于基于类似于Strassen的双线性身份的算法,所以我不确定,因为本文是在付费墙后面。O(nω)


3

我没有在这个问题你的说法不被明确定义“对此有一个已知的最小值ñ ω矩阵乘法算法。” 当人们在使用这个常量,那是因为他们的算法依赖于矩阵乘法,并通过复杂ñ ω,他们的意思是“我们的算法的最佳复杂性是由矩阵乘法的最优算法给出。”ωnωnω

我并不是说不可能以其他方式定义(例如,说ω是最佳可实现的复杂度)。ωω

顺便说一句,如果我没有记错的话,矩阵乘法上限已经提高到2.3737。 2.3737


3
我看不出人类知识如何成为数学定义的一部分
— David Harris

2
最近的经验表明,与人类目前已知的所有算法相比,对所有算法进行量化要容易得多;-)
— MarkusBläser2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.