首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏WHYBIGDATA公众号同步文章

    Strassen矩阵乘法问题(Java)

    Strassen矩阵乘法问题(Java) 1、前置介绍 2、代码实现 3、复杂度分析 4、参考资料 ---- ---- 1、前置介绍 矩阵乘法是线性代数中最常见的问题之一 ,它在数值计算中有广泛的应用 为解决计算计算效率问题,Strassen算法由此出现,该算法基本思想是分治,将计算2个n阶矩阵乘积所需的计算时间改进到0(nlog7) = 0(n2.81) 我们知道,C11=A11*B11+A12*B21 两个2阶方阵的乘法 else{ 将矩阵A和B分块; STRASSEN(n/2,A11,B12-B22,M1); STRASSEN(n/2,A11+A12,B22,M2); STRASSEN(n/2,A21+A22,B11,M3); STRASSEN(n/2,A22,B21-B11,M4); STRASSEN(n/2,A11+A22,B11+B22,M5); STRASSEN(n/2,A12-A22,B21+B22,M6); STRASSEN(n/2,A11-A21,B11+B12,M7);} } 算法导论伪代码: 2

    97420编辑于 2023-01-31
  • 来自专栏福大大架构师每日一题

    文心一言 VS 讯飞星火 VS chatgpt (23)-- 算法导论4.2 5题

    Strassen 算法相比,这些方法的性能可能会较差。Strassen 算法可以在 7 x 7 的矩阵相乘中完成 28 次乘法操作,而在 8 x 8 的矩阵相乘中完成 56 次乘法操作。 因此,Strassen 算法的时间复杂度为 O(n^2),比分治算法要快。 但是,Strassen 算法的推广并不容易,因此它只适用于小型矩阵相乘问题。 然后,我们将这些时间与 Strassen 算法的时间进行比较。V. 与 Strassen 算法相比,它们的性能略低,但仍然非常高效。 在渐近运行时间方面,V.Pan 算法的性能与 Strassen 算法相当,甚至稍优于 Strassen 算法。

    44500编辑于 2023-05-27
  • 来自专栏深度学习计算机视觉

    矩阵乘法的Strassen算法+动态规划算法(矩阵链相乘和硬币问题)

    矩阵乘法的Strassen 这个算法就是在矩阵乘法中采用分治法,能够有效的提高算法的效率。

    4.5K60发布于 2018-04-24
  • 来自专栏福大大架构师每日一题

    文心一言 VS 讯飞星火 VS chatgpt (22)-- 算法导论4.2 2题

    的乘积 C43 = Strassen(C44, C33) C54 = Strassen(C11, C33) C66 = Strassen(C54, C54) C77 = Strassen(C66, C66) C88 = Strassen(C77, C77) C99 = Strassen(C88, C88) C1010 = Strassen (C99, C99) C1111 = Strassen(C1010, C99) C1212 = Strassen(C88, C88) C1313 = Strassen(C77 , C77) C1414 = Strassen(C66, C66) C1515 = Strassen(C54, C54) C1616 = Strassen(C43, C43 C2020 = Strassen(C54, C43) C2121 = Strassen(C66, C54) C2222 = Strassen(C77, C66) C2323

    38100编辑于 2023-05-25
  • 来自专栏云+分享

    学习笔记 | 《算法导论》之从入门到放弃(2)

    《算法导论》打卡2,主要内容:渐进记号,分治策略,最大子数组问题,矩阵乘法的strassen算法 第三章 函数的增长 当输入规模足够大,使得只有运行时间的增长量级有关时,我们要研究算法的渐进效率。 while(l<=r&&sum[a[r]]>=sum[i])r--; a[++r]=i; } printf("%d",ans); } 4.2 矩阵乘法的Strassen 算法 def matrix_strassen(a,b): n=len(a) c = [[0 for col in range(n)] for row in range(n) (a11,s1) p2=matrix_strassen(s2,b22) p3=matrix_strassen(s3,b11) p4=matrix_strassen (a22,s4) p5=matrix_strassen(s5,s6) p6=matrix_strassen(s7,s8) p7=matrix_strassen

    57150编辑于 2021-12-14
  • 来自专栏福大大架构师每日一题

    文心一言 VS 讯飞星火 VS chatgpt (24)-- 算法导论4.2 6题

    图片图片华为盘古:对于Strassen算法,在处理规模为kn*n的矩阵相乘时,可以将其转换为两个Strassen子串的乘积,然后使用Strassen算法进行相乘。 具体而言,我们可以将矩阵Ai = i, j,代入矩阵Bi = i, j,然后使用Strassen算法进行相乘。 图片chatglm:Strassen 算法是一种高效的矩阵乘法算法,其时间复杂度为 O(n^(3/2))。 调整后的 Strassen 算法的时间复杂度为 O(n^(3/2)),仍具有很高的效率。 因此,无论输入矩阵规模如何互换,使用 Strassen 算法进行矩阵相乘最快需要花费 O(n^(3/2)) 的时间。

    62600编辑于 2023-05-28
  • 《算法导论》第 4 章 - 分治策略

    分治策略在许多高效算法中都有应用,如快速排序、归并排序、Strassen 矩阵乘法等。          4.2 矩阵乘法的 Strassen 算法 问题背景         矩阵乘法是线性代数中的基本运算。 = strassenMultiply(A, B); cout << endl << "Strassen算法结果:" << endl; printMatrix(C_strassen); = strassenMultiply(D, E); cout << endl << "Strassen算法结果:" << endl; printMatrix(F_strassen); Strassen 算法通过减少递归乘法的次数(7 次 vs 普通分治的 8 次)来降低时间复杂度。

    13710编辑于 2026-01-21
  • 来自专栏大数据文摘

    人类反超 AI:DeepMind 用 AI 打破矩阵乘法计算速度 50 年记录一周后,数学家再次刷新

    1969 年,德国数学家 Volker Strassen 开发了一种算法,首次将 4×4 矩阵乘法的求解从 64 步减少到 49 步,震动了数学界。 而 Deepmind 这次发布的 AI 系统 AlphaTensor,发现了一种比 Strassen 算法更快的新算法。 在 5×5 的输入矩阵中,AlphaTensor 独立发现了 Strassen 算法和其他已知的算法。并且,它还开发了比旧算法更有效的新算法。 4×4 矩阵乘法由 Strassen 减少到 49 步,AlphaTensor 则将其优化到 47 步。这样的效率是由 AlphaTensor 生成的 70 多个矩阵乘法的算法实现的。 自主调整乘法算法以适应硬件的方法对人类来说很困难,所以 AlphaTensor 对 Strassen 算法的改进创造了 4×4 矩阵乘法的新上限,是 AI 进步为其他学科提供助力的一大证明。

    53810编辑于 2023-04-10
  • 来自专栏量子位

    AlphaTensor横空出世!打破矩阵乘法计算速度50年纪录,DeepMind新研究再刷Nature封面,详细算法已开源

    但自从德国数学家沃尔克·施特拉森(Volker Strassen)在1969年提出“施特拉森算法”后,矩阵乘法的计算速度一直进步甚微。 例如根据经典的Strassen算法,两个2×2的矩阵相乘只需做7次乘法,时间复杂度也会进一步下降。 当然,这只是最简单的矩阵乘法之一。 如今我们做矩阵乘法,很大程度上仍然离不开50年前的Strassen算法。 1969年,德国数学家沃尔克·施特拉森(Volker Strassen)证明,将两个2×2的矩阵相乘,不一定需要进行8次乘法。 他巧妙的通过构造7个中间变量,用增加14次加法为代价省去了一次乘法,这种方法被称为“施特拉森算法”(Strassen算法)。

    1.1K21编辑于 2022-10-08
  • 来自专栏AI科技评论

    人类反超 AI:DeepMind 用 AI 打破矩阵乘法计算速度 50 年记录一周后,数学家再次刷新

    1969 年,德国数学家 Volker Strassen 开发了一种算法,首次将 4×4 矩阵乘法的求解从 64 步减少到 49 步,震动了数学界。 而 Deepmind 这次发布的 AI 系统 AlphaTensor,发现了一种比 Strassen 算法更快的新算法。 在 5×5 的输入矩阵中,AlphaTensor 独立发现了 Strassen 算法和其他已知的算法。并且,它还开发了比旧算法更有效的新算法。 4×4 矩阵乘法由 Strassen 减少到 49 步,AlphaTensor 则将其优化到 47 步。这样的效率是由 AlphaTensor 生成的 70 多个矩阵乘法的算法实现的。 自主调整乘法算法以适应硬件的方法对人类来说很困难,所以 AlphaTensor 对 Strassen 算法的改进创造了 4×4 矩阵乘法的新上限,是 AI 进步为其他学科提供助力的一大证明。

    60521编辑于 2023-04-12
  • 来自专栏机器之心

    强化学习发现矩阵乘法算法,DeepMind再登Nature封面推出AlphaTensor

    但在 1969 年,德国数学家 Volken Strassen 通过证明确实存在更好的算法,这一研究震惊了整个数学界。 标准算法与 Strassen 算法对比,后者少进行了一次乘法运算,为 7 次,而前者需要 8 次,整体效率大幅提高。 通过研究非常小的矩阵(大小为 2x2),Strassen 发现了一种巧妙的方法来组合矩阵的项以产生更快的算法。 通过学习,AlphaTensor 随时间逐渐地改进,重新发现了历史上的快速矩阵算法(如 Strassen 算法),并且发现算法的速度比以往已知的要快。 除了上述例子之外,AlphaTensor 发现的算法还首次在一个有限域中改进了 Strassen 的二阶算法。这些用于小矩阵相乘的算法可以当做原语来乘以任意大小的更大矩阵。

    1K20编辑于 2022-10-08
  • 来自专栏数据派THU

    人工智能揭示矩阵乘法的新可能性

    如果你只想乘以一对 2×2 矩阵,则 Strassen 算法不必要地复杂化。但他意识到它也适用于更大的矩阵。那是因为矩阵的元素本身可以是矩阵。 Strassen 可以应用他的方法在此嵌套层次结构的每一层上乘以 2×2 矩阵。随着矩阵大小的增加,减少乘法所节省的成本也会增加。 Strassen 的发现促使人们开始寻找高效的矩阵乘法算法,此后启发了两个不同的子领域。 在 Strassen 的工作之后不久,以色列裔美国计算机科学家 Shmuel Winograd 表明 Strassen 已经达到了理论极限:不可能用少于七个乘法步骤来乘以 2×2 矩阵。 小矩阵的快速算法可能会产生巨大的影响,因为当乘以合理大小的矩阵时,这种算法的重复迭代可能会击败 Strassen 的算法。

    78220编辑于 2023-03-29
  • 来自专栏大数据文摘

    DeepMind科学家、AlphaTensor一作解读背后的故事与实现细节

    但在1969年,德国数学家Volken Strassen表明确实存在更好的算法,震惊了数学界。 矩阵乘法的标准算法与Strassen的算法相比,后者在计算两个2x2矩阵相乘时少用了一个标量乘法(共用7次而不是8次)。 Strassen算法首先把矩阵的一些切片组合在一起构成中间变量,然后这些中间结果被分配到目标的结果当中。 如上图,使用这种张量分解“语言”同样可以描述Strassen算法。这里张量的大小为4x4x4,Strassen算法实际上对应于7个秩为1的分解。算法和张量分解之间对应关系如上图所示。 除此之外,AlphaTensor首次在有限域中改进了Strassen的两级算法。

    1.2K10编辑于 2023-02-23
  • 来自专栏数据魔术师

    分治法(Divide-and-Conquer Algorithm)经典例子分析

    //3、这个程序只是表现了分治算法的思想,但是真正的大数还是不能计算(考虑到溢出) 03 Strassen矩阵算法 3.1 背景介绍 矩阵乘法是种极其耗时的运算。 下面介绍Strassen算法,该算法将时间复杂度降低到O(nlg7) ≈ O(n2.81)。 3.2 思路分析 Strassen算法是一种基于分治策略的改进算法,我们先来看下简单的分治算法。 ? Strassen算法就是基于此进行了改进。 如图所示: ? ? Strassen用了更多的步骤,成功的把计算量变成了7个矩阵乘法和18个矩阵加法。 (temp, b11, s2, halfLength); //计算s3 Sub(b12, b22, temp1, halfLength); Strassen 法求矩阵A*B Strassen( MatrixA, MatrixB, MatrixResult, length); //输出矩阵A*B cout <<

    3.7K31发布于 2019-10-18
  • 来自专栏新智元

    全网最详细!油管1小时视频详解AlphaTensor矩阵乘法算法

    这篇论文在德国数学家Volken Strassen「用加法换乘法」思路和算法的基础上,构建了一个基于AlphaZero的强化学习模型,更高效地探索进一步提高矩阵乘法速度的通用方法。 遵循这个「用加法换乘法」的基本思路,德国数学家Volken Strassen于1969年发现了更高效、占用计算资源更少的矩阵乘法算法。 实际上,这个思路在一些最基础的数学公式中就已经有充分体现。 Strassen的算法是,利用原矩阵构造一些加乘结合的中间量,每个中间量只包含一次乘法计算,将原矩阵乘法转换为这些中间量的加法运算,将一些符号相反的乘法消去,实现降低乘法运算次数的目的。 在2*2矩阵的乘法中,Strassen的算法将乘法运算次数由8次降为7次。 仍以Strassen的算法为例,低秩分解后的结果,即上式中的U、V、W对应为3个7秩矩阵。这里的分解矩阵的秩决定原矩阵乘法中乘法运算的次数。

    1.5K30编辑于 2022-10-11
  • 来自专栏《C++与 AI:个人经验分享合集》

    《解锁 C++矩阵运算优化秘籍,助力人工智能算法“光速”飞驰》

    在 C++中,我们可以采用更先进的算法,如 Strassen 算法。Strassen 算法基于分治思想,通过将大矩阵拆分成小矩阵,并巧妙地组合子矩阵的乘法和加法运算,减少了乘法的计算次数。 以两个 n×n 的矩阵相乘为例,传统算法的时间复杂度为 O(n³),而 Strassen 算法可将时间复杂度优化至约 O(n^2.807)。 通过将矩阵内存布局调整为连续存储,并采用 Strassen 算法优化矩阵乘法,同时引入多线程并行计算,利用了计算机的 4 核处理器,模型训练时间大幅缩短至原来的三分之一左右。

    65810编辑于 2024-12-10
  • 来自专栏机器之心

    哈佛、MIT学者联手,创下矩阵乘法运算最快纪录

    自 1969 年 Strassen 算法开始,人们意识到了快速算法的存在,开始了长达数十年的探索研究。 当你拥有两个大小一致的矩阵时,则可以将它们相乘得到第三个矩阵。 Strassen 提出了一组复杂的关系,从而利用 14 次加法替换了上述 8 个乘法之一。 1981 年,Arnold Schönhage 利用这种方法证明了矩阵乘法的计算复杂度可以降低至 O(n^2.522),Strassen 后来将此方法称为 laser 方法。

    1.2K10发布于 2021-03-30
  • 来自专栏程序猿声

    【算法学习】减治 · 分治 · 变治

    我们介绍一个和数学有关的算法: Strassen矩阵乘法。 (虽然在骁老板的文章里有提到,但我还是不辞辛苦地再写一遍八) 考虑到大家都是小白,先说明矩阵乘法的定义。(其实是我自己不懂才先去查的) ? 聪明的Strassen不甘心。他发明了一种新的方法,通过降低递归式中T(n/2)的系数来降低时间复杂度。 代码小长,实际上也没什么内容: //strassen算法(在此感谢互联网,减少工作量) #include <iostream>#include <iomanip>#include <cmath>using namespace std; void Strassen(int N, int** MatrixA, int ** MatrixB, int ** MatrixC); //进行矩阵乘法 void max1:max2; while (true) { if (max<=pow(2,k)) return pow(2,k); k++; } } //计算矩阵乘法 void Strassen

    1.9K20发布于 2019-11-04
  • 来自专栏机器之心

    矩阵乘法新突破!XX^T原来可以更快!RL助力搜索,世界纪录又被提升了5%

    自 1969 年 Strassen 算法横空出世以来,这个充满组合爆炸可能性的数学迷宫就持续考验着人类智慧的边界。 此前最先进的 Strassen 算法需要 38 次乘法(减少 10% 运算量)。 乘法运算量复杂度分析 研究团队对乘法运算量的复杂度进行了分析。

    31410编辑于 2025-05-25
  • 来自专栏新智元

    突破300年数学难题!陶哲轩出题,DeepMind通用科学AI智能体一夜屠龙

    它不仅推动了300年「接吻数难题」,一举颠覆了56年前Strassen算法神话。而且,还在AI训推、TPU设计、数据中心领域,展现出了极强的实力。 它用48次标量乘法,搞定4x4复数矩阵乘法,改进了1969年Strassen最优算法。 AlphaEvolve不仅仅是矩阵乘法屠龙刀,还是个跨界狂魔。 其中,最耀眼的成果,是用48次标量乘法来完成4x4复数矩阵乘法,彻底颠覆了Strassen算法的「最优解」神话。 Strassen算法 不仅如此,相较于前辈AlphaTensor,AlphaEvolve简直开了挂。 前者还在二进制算术下,对4x4矩阵做小修小补,后者直接杀入复数矩阵,效率飙升。

    28710编辑于 2025-05-17
领券