The quest for non-commutative matrix multiplication algorithms in small dimensions has seen a lot of recent improvements recently. In particular, the number of scalar multiplications required to multiply two $4\times4$ matrices was first reduced in \cite{Fawzi:2022aa} from 49 (two recursion levels of Strassen's algorithm) to 47 but only in characteristic 2 or more recently to 48 in \cite{alphaevolve} but over complex numbers. We propose an algorithm in 48 multiplications with only rational coefficients, hence removing the complex number requirement. It was derived from the latter one, under the action of an isotropy which happen to project the algorithm on the field of rational numbers. We also produce a straight line program of this algorithm, reducing the leading constant in the complexity, as well as an alternative basis variant of it, leading to an algorithm running in $7 n^{2+\frac{\log_2 3}{2}} +o\left(n^{2+\frac{log_2 3}{2}}\right)$ operations over any ring containing an inverse of 2.
論文ID : 2506.13242タイトル : A non-commutative algorithm for multiplying 4×4 matrices using 48 non-complex multiplications著者 : Jean-Guillaume Dumas、Clément Pernet、Alexandre Sedoglavic所属機関 : グルノーブル・アルプス大学(Dumas & Pernet)、リール大学(Sedoglavic)分類 : cs.SC(記号計算)発表日 : 2025年11月27日(arXiv プレプリント)論文リンク : https://arxiv.org/abs/2506.13242 本論文は、4×4行列乗算を48回のスカラー乗算で計算する非可換アルゴリズムを提案している。本アルゴリズムは有理数係数のみを使用し、複素数を必要としない。これはAlphaEvolve11 が提案した複素数域アルゴリズムの改善であり、等方性変換(isotropy)を通じて有理数域に投影されたものである。論文はまた直線プログラム(straight-line program)実装を提供し、2の逆元を含む任意の環上で7 n 2 + log 2 3 2 + o ( n 2 + log 2 3 2 ) 7n^{2+\frac{\log_2 3}{2}} + o(n^{2+\frac{\log_2 3}{2}}) 7 n 2 + 2 l o g 2 3 + o ( n 2 + 2 l o g 2 3 ) の演算複雑度を実現する代替基変体を示している。
中心的課題 : 小次元行列乗算の最適な非可換アルゴリズムを探索すること、特に必要なスカラー乗算の回数を削減すること。行列乗算はコンピュータ科学と数値計算の基本演算であり、その効率は多くのアプリケーションのパフォーマンスに直接影響する。重要性 :行列乗算の時間複雑度は線形代数計算、機械学習、科学計算などの分野の効率に直接影響する Strassen アルゴリズム(1969)は複雑度を初めてO ( n 3 ) O(n^3) O ( n 3 ) からO ( n 2.81 ) O(n^{2.81}) O ( n 2.81 ) に低下させ、高速行列乗算研究の時代を開いた 小次元行列乗算アルゴリズムは大規模行列への再帰的適用を通じて実用的価値を持つ 既存手法の限界 :Strassen アルゴリズムは4×4行列上で49回の乗算が必要(2層の再帰) Fawzi等5 は標数2の体上で47回の乗算を実現した AlphaEvolve11 は大規模言語モデルと進化的コーディングエージェントを使用して48回の乗算アルゴリズムを発見したが、複素数係数が必要 である 複素数係数は整数環や有限体などの特定の環上でのアルゴリズム適用を制限する 研究動機 :複素数要件を排除し、より広範な代数構造上でアルゴリズムを適用可能にする テンソル分解理論における対称性(等方性群作用)を利用して系統的にアルゴリズムを変換する 実用的な直線プログラム実装を提供し、定数項を最適化する 主要な理論的貢献 : AlphaEvolve アルゴリズムの等方性軌道(isotropy orbit)に有理数点が存在することを証明し、48回の乗算を持つ純粋な有理数係数アルゴリズムを提案した方法論的貢献 : テンソル分解の等方性群理論を系統的に適用し、等方性変換(式24)を通じて複素数域アルゴリズムを有理数域に投影する実用的貢献 :完全な直線プログラム実装(リスト1-4)を提供し、合計341個の演算を実現 理論的複雑度界は11.65625 n 2.792 − 10.65625 n 2 11.65625n^{2.792} - 10.65625n^2 11.65625 n 2.792 − 10.65625 n 2 代替基変体を提供し、わずか6個の演算(1+2+3)で7 n 2.792 7n^{2.792} 7 n 2.792 の複雑度を実現 汎用性 : アルゴリズムは2の逆元を含む任意の環に適用可能であり、適用範囲を拡張するオープンソース実装 : すべての行列とコードはPLinOptライブラリで公開されている入力 : 2つの4×4行列A = ( a i j ) A = (a_{ij}) A = ( a ij ) とB = ( b i j ) B = (b_{ij}) B = ( b ij ) 、要素は1 2 \frac{1}{2} 2 1 を含む環R R R から取得出力 : 積行列C = A ⋅ B = ( c i j ) C = A \cdot B = (c_{ij}) C = A ⋅ B = ( c ij ) 制約 : スカラー乗算の回数を最小化し、有理数係数のみを使用(複素数を回避)
行列乗算は双線形写像として表現できる:
β m m : R m × k × R k × n → R m × n , ( A , B ) ↦ A ⋅ B \beta_{mm}: R^{m \times k} \times R^{k \times n} \rightarrow R^{m \times n}, \quad (A, B) \mapsto A \cdot B β mm : R m × k × R k × n → R m × n , ( A , B ) ↦ A ⋅ B
この写像はテンソル空間( R m × k ) ∗ ⊗ ( R k × n ) ∗ ⊗ R m × n (R^{m \times k})^* \otimes (R^{k \times n})^* \otimes R^{m \times n} ( R m × k ) ∗ ⊗ ( R k × n ) ∗ ⊗ R m × n のテンソル分解として符号化される:
T = ∑ i = 1 r M i ⊗ N i ⊗ O i T = \sum_{i=1}^r M_i \otimes N_i \otimes O_i T = ∑ i = 1 r M i ⊗ N i ⊗ O i
ここで:
r r r はテンソルランク (tensor rank)であり、必要なスカラー乗算の回数に対応する各( M i , N i , O i ) (M_i, N_i, O_i) ( M i , N i , O i ) はランク1テンソルである 三線形表現はTrace ( O i T ⋅ M i ⋅ N i ) \text{Trace}(O_i^T \cdot M_i \cdot N_i) Trace ( O i T ⋅ M i ⋅ N i ) である Strassen の2×2行列乗算アルゴリズム(7回の乗算)はテンソルランク7の分解に対応し、型はX 2 Y 2 Z 2 + 6 X Y Z X^2Y^2Z^2 + 6XYZ X 2 Y 2 Z 2 + 6 X Y Z である。
定理2.1 : 行列乗算テンソルの等方性群は:
psl ± ( R m ) × psl ± ( R k ) × psl ± ( R n ) ⋊ S 3 \text{psl}_{\pm}(R^m) \times \text{psl}_{\pm}(R^k) \times \text{psl}_{\pm}(R^n) \rtimes S_3 psl ± ( R m ) × psl ± ( R k ) × psl ± ( R n ) ⋊ S 3
定義2.2 : 等方性g = ( U × V × W ) g = (U \times V \times W) g = ( U × V × W ) がランク1テンソルA ⊗ B ⊗ C A \otimes B \otimes C A ⊗ B ⊗ C に作用する方法は:
( U − T ⋅ A ⋅ V T ) ⊗ ( V − T ⋅ B ⋅ W T ) ⊗ ( W − T ⋅ C ⋅ U T ) (U^{-T} \cdot A \cdot V^T) \otimes (V^{-T} \cdot B \cdot W^T) \otimes (W^{-T} \cdot C \cdot U^T) ( U − T ⋅ A ⋅ V T ) ⊗ ( V − T ⋅ B ⋅ W T ) ⊗ ( W − T ⋅ C ⋅ U T )
これはテンソルランクを保持するが、係数を変更する。
本論文の核心的な革新は特定の等方性変換(式24)を発見することである:
[ I 0 0 I 0 1 I 0 0 − I − 1 0 − 1 0 0 1 ] ⊗ [ I 0 0 1 0 − I − I 0 0 − I I 0 − I 0 0 1 ] ⊗ [ 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 ] \begin{bmatrix} I & 0 & 0 & I \\ 0 & 1 & I & 0 \\ 0 & -I & -1 & 0 \\ -1 & 0 & 0 & 1 \end{bmatrix} \otimes \begin{bmatrix} I & 0 & 0 & 1 \\ 0 & -I & -I & 0 \\ 0 & -I & I & 0 \\ -I & 0 & 0 & 1 \end{bmatrix} \otimes \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} I 0 0 − 1 0 1 − I 0 0 I − 1 0 I 0 0 1 ⊗ I 0 0 − I 0 − I − I 0 0 − I I 0 1 0 0 1 ⊗ 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
ここでI I I は虚数単位である。
上記の等方性を適用した後、48個のランク1テンソルの分解(式25-72)が得られ、各形式は:
m i = ( ∑ j , k α j k ( i ) a j k ) ⊗ ( ∑ j , k β j k ( i ) b j k ) ⊗ ( ∑ j , k γ j k ( i ) c j k ) m_i = \left(\sum_{j,k} \alpha_{jk}^{(i)} a_{jk}\right) \otimes \left(\sum_{j,k} \beta_{jk}^{(i)} b_{jk}\right) \otimes \left(\sum_{j,k} \gamma_{jk}^{(i)} c_{jk}\right) m i = ( ∑ j , k α jk ( i ) a jk ) ⊗ ( ∑ j , k β jk ( i ) b jk ) ⊗ ( ∑ j , k γ jk ( i ) c jk )
主要な特性 :
すべての係数α , β , γ ∈ { − 1 , − 1 2 , 0 , 1 2 , 1 } \alpha, \beta, \gamma \in \{-1, -\frac{1}{2}, 0, \frac{1}{2}, 1\} α , β , γ ∈ { − 1 , − 2 1 , 0 , 2 1 , 1 } (有理数) テンソル型は16 X 2 Y 2 Z 2 + 32 X Y Z 16X^2Y^2Z^2 + 32XYZ 16 X 2 Y 2 Z 2 + 32 X Y Z (16個のランク2×2×2、32個のランク1×1×1) 分母は2、4、8の累乗のみを含む m 1 = 1 4 ( ∑ i , j ( − 1 ) i + j + 1 a i j ) ⊗ ( b 31 + b 41 ) ⊗ ( ∑ c t e r m s ) m_1 = \frac{1}{4}\left(\sum_{i,j} (-1)^{i+j+1} a_{ij}\right) \otimes (b_{31} + b_{41}) \otimes \left(\sum c_{terms}\right) m 1 = 4 1 ( ∑ i , j ( − 1 ) i + j + 1 a ij ) ⊗ ( b 31 + b 41 ) ⊗ ( ∑ c t er m s )
アルゴリズムは3つの行列( L , R , P ) (L, R, P) ( L , R , P ) でコンパクトに表現できる:
L ∈ R 48 × 16 L \in R^{48 \times 16} L ∈ R 48 × 16 : A A A の要素から48個の左オペランドへの線形変換R ∈ R 48 × 16 R \in R^{48 \times 16} R ∈ R 48 × 16 : B B B の要素から48個の右オペランドへの線形変換P ∈ R 16 × 48 P \in R^{16 \times 48} P ∈ R 16 × 48 : 48個の積からC C C の要素への線形変換計算フロー:vec ( C ) = P ⋅ ( L ⋅ vec ( A ) ⊙ R ⋅ vec ( B ) ) \text{vec}(C) = P \cdot (L \cdot \text{vec}(A) \odot R \cdot \text{vec}(B)) vec ( C ) = P ⋅ ( L ⋅ vec ( A ) ⊙ R ⋅ vec ( B ))
ここで⊙ \odot ⊙ は要素ごとの乗算(Hadamard積)を表す。
対称性の系統的利用 : 試行錯誤的な探索ではなく、安定化部分群( C 2 × D 4 ) ⋊ C 2 (C_2 \times D_4) \rtimes C_2 ( C 2 × D 4 ) ⋊ C 2 と理論的指導による推測を利用して等方性変換を発見する複素数から有理数への投影 : 高次元複素数空間で発見されたアルゴリズムを有理数部分空間に投影できることを証明し、これは非自明な結果である直線プログラムの最適化 :PLinOptツールを使用して最適化された直線プログラムを自動生成 核分解(kernel decomposition)を通じて演算回数を削減 R R R 行列の係数が単純であっても、最適なSLPは非自明な乗算が必要な場合がある代替基法 : 基変換(change of basis)を通じてさらに簡略化し、演算を336個に削減(元の341個と比較)PLinOptライブラリ : 線形および双線形プログラムの最適化を処理するC++ルーチン集合コード規模 : 約8.09 kSLOC(千行のソースコード)オープンソース : すべての行列とコードはGitHubで公開アルゴリズムの異なる表現は以下のように保存される:
4x4x4_48_rational_L.sms、_R.sms、_P.sms: 標準LRP表現4x4x4_48_rational-ALT_*.sms: 代替基表現4x4x4_48_rational-CoB_*.sms: 基変換行列テンソルランク : 必要なスカラー乗算の回数(48)演算総数 : 加算とシフト演算の総数漸近複雑度 : O ( n log 4 3 ) ≈ O ( n 2.792 ) O(n^{\log_4 3}) \approx O(n^{2.792}) O ( n l o g 4 3 ) ≈ O ( n 2.792 ) 定数項 : 主導定数と低次項の係数演算の分解 :
L L L 行列:104回の加算R R R 行列:84回の加算 + 1回の乗算(2進シフト)P P P 行列:119回の加算 + 33回の乗算(2進シフト)合計 :341個の演算複雑度界 :
( 1 + 341 48 − 16 ) n 2 + log 4 3 − 341 32 n 2 ≈ 11.65625 n 2.792 − 10.65625 n 2 \left(1 + \frac{341}{48-16}\right)n^{2+\log_4 3} - \frac{341}{32}n^2 \approx 11.65625n^{2.792} - 10.65625n^2 ( 1 + 48 − 16 341 ) n 2 + l o g 4 3 − 32 341 n 2 ≈ 11.65625 n 2.792 − 10.65625 n 2
演算の分解 :
L a l t L_{alt} L a lt :1回の加算R a l t R_{alt} R a lt :2回の加算P a l t P_{alt} P a lt :3回の加算合計 :6個の演算基変換のコスト :
CoB_L:103回の加算 CoB_R:79回の加算 + 5回の乗算 CoB_P:116回の加算 + 33回の乗算 合計 :336個の演算複雑度界 :
7 n 2.792 + 336 31 ( n log 4 47 − n 2 ) = 7 n 2.792 + o ( n 2.792 ) 7n^{2.792} + \frac{336}{31}(n^{\log_4 47} - n^2) = 7n^{2.792} + o(n^{2.792}) 7 n 2.792 + 31 336 ( n l o g 4 47 − n 2 ) = 7 n 2.792 + o ( n 2.792 )
手法 乗算回数 係数体 適用可能な環 複雑度定数 Strassen (2層) 49 有理数 任意 - Fawzi et al. 5 47 有理数 標数2 - AlphaEvolve 11 48 複素数 複素数体 - 本論文(標準) 48 有理数 1 2 \frac{1}{2} 2 1 を含む環11.66 本論文(代替基) 48 有理数 1 2 \frac{1}{2} 2 1 を含む環7.00
存在性の証明 : AlphaEvolve アルゴリズムの等方性軌道に有理数点が実際に存在することを証明し、これは自明ではない係数の簡潔性 : すべての係数が{ − 1 , − 1 2 , 0 , 1 2 , 1 } \{-1, -\frac{1}{2}, 0, \frac{1}{2}, 1\} { − 1 , − 2 1 , 0 , 2 1 , 1 } であり、実装が容易である最適化のパラドックス : R R R 行列の係数が{ − 1 , 0 , 1 } \{-1, 0, 1\} { − 1 , 0 , 1 } のみであっても、最適な直線プログラムは依然として非自明な乗算が必要である(核分解による)代替基の利点 : 基変換を通じて主導定数を11.66から7.00に削減でき、代償はo ( n 2.792 ) o(n^{2.792}) o ( n 2.792 ) の基変換コストであるStrassen (1969) : 初めてのO ( n 2.81 ) O(n^{2.81}) O ( n 2.81 ) アルゴリズム、2×2行列の7回乗算計算de Groote (1978) : 等方性群と最適アルゴリズムの代数幾何学的研究定理2.2 : すべての7回乗算の2×2アルゴリズムが単一の軌道を形成することを証明Fawzi et al. (2022) 5 : 強化学習を使用して標数2上の47回乗算アルゴリズムを発見Kaporin (2024) 8 : 非線形最小二乗法を使用してBrent方程式の複素数解を求解AlphaEvolve (2025) 11 : 大規模言語モデルと進化的エージェントを使用して48回乗算(複素数)と63回乗算(3×4×7)アルゴリズムを発見Dumas et al. (2024) 2 : Strassen アルゴリズムの数値精度を研究し、それが最適な精度ではないことを発見本論文のアルゴリズムの数値分析はまだ完了していない 理論的厳密性 : 等方性群理論に基づき、純粋な発見的探索ではない汎用性 : 有理数係数により、より広範な代数構造に適用可能再現可能性 : 完全な行列表現とオープンソース実装AlphaEvolve の複素数アルゴリズムを有理数アルゴリズムに成功裏に変換し、48回の乗算を保持した 等方性群作用はアルゴリズム空間を系統的に探索するための効果的なツールである 2つの実装を提供:標準版(341演算)と代替基版(6+336演算) アルゴリズムは1 2 \frac{1}{2} 2 1 を含む任意の環に適用可能であり、適用範囲を拡張する 環の制限 : 2が可逆である必要があり、標数2の体には適用不可定数項が大きい : 標準版の定数11.66は大きく、十分に大きな行列上でのみ利点がある数値安定性が未知 : 2 と同様の数値精度分析がまだ実施されていない非構成的 : 等方性変換の発見は依然として「教育的推測」に依存し、完全に自動化されていない3×4×7アルゴリズム : 姉妹論文3 がAlphaEvolveの別の複素数アルゴリズムを処理数値分析 : このアルゴリズムの誤差伝播と条件数を研究自動化発見 : 等方性変換を自動的に探索するための系統的方法を開発他の次元 : 同じ方法を5×5、3×3×3などの場合に適用実際のパフォーマンス : キャッシュ、並列化などを考慮して実際のハードウェア上でパフォーマンスをテスト重要な空白を埋める : AlphaEvolve アルゴリズムの複素数係数制限という実際的な問題を解決方法論的革新 : 等方性群理論を系統的に適用し、複素数から有理数への理論的経路を提供数学的厳密性 : Landsbergのテンソル幾何学理論に基づき、堅実な代数幾何学的基礎を持つ完全な実装 : 直線プログラムとLRP行列を提供し、直接使用可能オープンソースで再現可能 : すべてのデータとコードはPLinOptライブラリで公開適用性が広い : 有理数係数により、整数、有理数、有限体(奇標数)などで使用可能完全なアルゴリズム表示 : 式25-72で48個の乗算項すべてを詳細に列挙複数の表現 : 三線形形式、LRP行列、直線プログラムなど複数の表現を提供最適化戦略 : 核分解と代替基などの最適化技術を展示背景説明が充分 : Strassen アルゴリズムからテンソル分解理論まで段階的に導入例が豊富 : 例2.1は等方性がどのように複素数を導入するかを示す記号が系統化 : 定義が明確で、記号が一貫している等方性変換の発見 : 「教育的推測」の使用を認め、系統的な探索方法が欠ける安定化部分群への依存 : 安定化部分群( C 2 × D 4 ) ⋊ C 2 (C_2 \times D_4) \rtimes C_2 ( C 2 × D 4 ) ⋊ C 2 が既知である必要があり、新しい問題では取得が困難な可能性標数制限 : 標数2の体には適用不可(Fawziの47回アルゴリズムは反対に使用可能)実際のパフォーマンステストがない : 実際のハードウェア上での実行時間がテストされていない数値安定性分析がない : 実際のアプリケーションにとって重要であるが、これは今後の作業として認められている定数項の比較がない : 他のアルゴリズムの定数項との定量的な比較がない存在性証明が不完全 : 1つの有理数点のみが示され、その一意性や最適性は証明されていない軌道構造が未探索 : 有理数点が軌道内のどこに位置するか、数量などの問題が議論されていない下界に未対応 : 4×4行列乗算の理論的下界(48未満が可能か?)が議論されていない記号が複雑 : 多くの下付き文字とテンソル記号は非専門家にとって理解しにくい可能性コードの可読性 : 直線プログラム(リスト1-4)にコメントが不足行列表示 : 付録Bの大規模行列は構造を直接理解するのが困難理論と実践の橋渡し : AI が発見したアルゴリズムを数学理論を使用して使用可能な形式に変換方法論の示範 : 等方性群理論のアルゴリズム最適化への実際の応用を示す後続研究への刺激 : 他のAI発見複素数アルゴリズムを処理するためのテンプレートを提供中程度 : 定数項が大きい(11.66)ため、大規模行列(n > 100 n > 100 n > 100 )でのみ利点がある特定分野 : 精密有理数計算が必要な記号計算システムでより高い価値教育的意義 : テンソル分解と等方性群理論の応用の優れたケーススタディ優秀 : 完全な行列、コード、ツールチェーンが公開使いやすさ : PLinOptライブラリは直線プログラムを自動生成するツールを提供ドキュメント完全 : 付録にすべてのデータファイルの位置が詳細に列挙記号計算システム : Maple、Mathematicaなどの精密行列演算有限体計算 : 奇標数有限体上の線形代数大規模行列 : n ≥ 128 n \geq 128 n ≥ 128 の行列への再帰的適用理論研究 : 高速アルゴリズムとテンソルランク研究のツール小規模行列 : 単一の4×4行列では、朴素なアルゴリズム(64回乗算)が定数項が小さいため高速な可能性浮動小数点計算 : 数値安定性が未知であり、従来のアルゴリズムより劣る可能性標数2体 : Fawziの47回アルゴリズムがより優れているハードウェア加速 : 最新のGPU最適化行列乗算がより高速な可能性13 Strassen (1969) : 「ガウス消去法は最適ではない」- 高速行列乗算の基礎的研究6,7 de Groote (1978) : 等方性群理論の原始論文11 Novikov et al. (2025) : AlphaEvolve - 本論文が改善した元の複素数アルゴリズム10 Landsberg (2016) : 「幾何学と複雑性理論」- 理論的基礎2 Dumas et al. (2024) : Strassen アルゴリズムの数値精度分析5 Fawzi et al. (2022) : 強化学習で発見された47回アルゴリズム(標数2)9 Karstadt & Schwartz (2017) : 行列乗算の他の最適化4 Dumas et al. (2025) : 高速精密アルゴリズムの自動生成方法3 Dumas et al. (2025) : 3×4×7行列の63回乗算アルゴリズム(姉妹論文)これは高品質な理論計算機科学論文 であり、AI が発見した複素数域アルゴリズムを有理数域アルゴリズムに成功裏に変換し、重要な理論的意義と一定の実用的価値を持つ。論文の主な利点は:
実際的な問題を解決 : AlphaEvolve の複素数係数制限が適用範囲を制限していた方法が厳密 : 成熟したテンソル分解と等方性群理論に基づく実装が完全 : 再現可能なオープンソース実装を提供主な不足は:
等方性変換の発見が依然として人工的な推測を必要とする 実際のパフォーマンスと数値安定性分析が欠ける 定数項が大きく、実用性を制限する 推奨指数 : ⭐⭐⭐⭐ (4/5)
記号計算、テンソル分解、高速アルゴリズムに関心のある研究者に適している。実際のアプリケーションについては、特定のシナリオに基づいて従来の方法より優れているかどうかを評価する必要がある。