矩阵乘法指数


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 gn 上运行的算法,则表明ω = 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 / ϵ )设置为(nlog n,则ϵ将为o(1)。在f 1 / ϵ 2 2 1 / ϵ的示例中,您可以选择1 / ϵF1个/ϵñķ+ϵF221个/ϵF1个/ϵ日志ñϵF1个/ϵ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.37372.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.