矩阵乘法不在


39

通常认为,对于所有ϵ>0,可以在O (n 2 + ϵ)时间内将两个n×n矩阵相乘。一些讨论在这里。O(n2+ϵ)

我问过一些对研究更熟悉的人,他们是否认为存在独立于n的k>0,以至于存在用于矩阵乘法的O (n 2 log k n )算法,并且他们绝大多数都具有直觉答案是“否”,但无法解释原因。也就是说,他们认为我们可以在O (n 2.001)时间内完成此操作,但不能在O (n 2 log 100 n )时间内完成。nO(n2logk⁡n)O(n2.001)O(n2log100⁡n)

有什么理由相信在固定k > 0时没有O(n2logk⁡n)算法?k>0

Answers:


29

有用于相乘的算法N×N0.172矩阵与N0.172×N矩阵中N2polylog⁡(N)的算术运算。用于它的主标识来自铜匠的论文“矩形矩阵的快速乘法”,但对于为什么它导致解释N2polylog⁡(N)代替N2+ϵ是威廉姆斯的附录中纸,“新算法和具有线性阈值门的电路的下界”。

N×N×N


11

好吧,一件事是,我认为我们所知道的所有构造-甚至人们已经提出的潜在构造的族(例如,科恩-乌曼斯方法,科珀史密斯-温诺格拉德的概括)-都会“简单地”产生一系列算法Aϵ在运行时间O(n2+ϵ)O(n2poly(log⁡n))

O(n2poly(log⁡n))


3
我不确定拥有一个家庭怎么可能不会导致O(n ^ 2poly(log n)),因为如果一个人可以足够好地描述这个家庭,那么对于更大的n,可以选择越来越多的有效家庭成员。唯一不合理的理由是O(n ^ 2poly(log N))涉及的常数可能非常大,但事实并非必然如此。
— 约书亚

1
@JoshuaZ:原则上不是这样;实际上,由这些方法产生的族的每个成员都会生成一个运行时间为的算法,并且大多数方法的思想是简单地假设您拥有一个族,对于任何ε > 0O(n2+x)ε>0O(n2+ε)

1
@JoshuaZ我想可能会失败的另一种甚至更怪异的方法是,如果以某种方式选择/构建家庭成员花费的时间超过O(n ^ 2 poly(log n))-例如,可能需要O(1 / e)代码才能实现O(n ^(2 + e))算法或其他方法。那不是很疯狂吗?
— 丹尼尔·瓦格纳

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.