Coppersmith–Winograd算法的空间复杂度


24

Coppersmith–Winograd算法是渐近最快的已知算法,用于将两个平方矩阵相乘。他们的算法的运行时间为 ,这是迄今为止最著名的。该算法的空间复杂度是多少?它在吗?n×nO(n2.376)Θ(n2)

Answers:


30

是的,所有源自Strassen原始算法的算法(包括最著名的用于矩阵乘法的算法,但不是全部-参见注释)都具有空间复杂度。如果您可以找到具有poly(\ log n)空间复杂度的时间算法,那将是一个很大的进步。一种应用是子集和问题的2 ^ {(1- \ varepsilon)n}时间poly(n)空间算法。 Θ Ñ 2ñ 3 - ε p Ö ý 日志Ñ 2 1 - ε ñ p Ô ý Ñ n3εΘ(n2)n3εpoly(logn)2(1ε)npoly(n)

但是,这种结果存在一些障碍。对于某些计算模型,矩阵乘法的时空乘积具有相当强的下界。像YeshaAbrahamson这样的参考文献将为您提供更多信息。


嗨,瑞安,太棒了。关于Cohn-Umans [FOCS2003]和Cohn-Kleinberg-Szegedy-Umans [FOCS2005]的群论算法呢?
席瓦·金塔利

1
是的,那些。我的理解是,他们正在执行一种特殊的卷积操作(在特定组上进行FFT),但是卷积操作的对象是大小的对象。没有关于矢量在整数上进行卷积的小空间算法(时间复杂度比显而易见的算法要好),我想在这些组上进行小空间卷积只会更困难。Θ(n2)
瑞安·威廉姆斯

当需要空间来存储矩阵的项时,如何拥有空间?2 n 2poly(logn)2n2
T ....

因为按照测量空间复杂度的常规方法,输入不计入空间边界。输入被视为“只读”,并且我们计算出计算该函数需要多少额外的“读写”内存。在这种情况下,当输入条目有界(例如0或1)并且您使用操作时,仅多余的空间就足够了。O n 3O(logn)O(n3)
瑞安·威廉姆斯

1
我不知道您在想什么,但是绝对有布尔矩阵乘法的“组合”(表查找)算法,它通过对数因子击败n ^ 3次,并且使用的空间小于n ^ 2。
瑞安·威廉姆斯
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.