
10 月 26 日,OpenAI 和 Anthropic 在同一天宣布,自家的內部模型證明了「指數時間假說」(Exponential Time Hypothesis,ETH)是錯的。12 這個假說從 1999 年提出到現在,一直是理論電腦科學最常用的前提之一,光是 Anthropic 讓 Claude 做的文獻搜尋,就找到八百多篇論文,至少有一個結果只在 ETH 或更強的假設下才成立。2
這篇想回答兩個問題:ETH 到底說了什麼,為什麼那麼多研究靠它;AI 又是用什麼辦法推翻它的。先說結論:如果證明站得住,這是理論電腦科學很大的意外,但它不會讓任何實際的程式變快;而且到我寫這篇的時候,還沒有任何人類審查完這兩份證明。
文中有四個可以動手玩的小工具,抽象的地方建議點一點。「給數學好的讀者」是摺疊區塊,放公式和精確的敘述,跳過也不影響閱讀。
排聚會名單
假設你要決定 A、B、C、D 四個朋友誰來參加聚會,每個人只有「來」和「不來」兩種狀態。大家各有要求,每條要求只提到三個人:
- 條件 1:A 來,或 B 不來,或 C 來
- 條件 2:B 來,或 C 不來,或 D 來
- 條件 3:A 不來,或 C 不來,或 D 不來
每條要求列的三件事,只要有一件成立就算過關。問題是:有沒有一種安排,能讓所有要求同時過關?
試一組看看:A 來、B 來、C 不來、D 不來。條件 1 靠「A 來」過關,條件 2 靠「B 來」,條件 3 靠「C 不來」。三條都過了,所以有解。
把三條相乘:1 × 1 × 1 = 1。這一組是解。
● 來、○ 不來,順序是 A B C D。
16 格的乘積加起來 = 10,就是這題解的個數。加起來是 0 就代表無解。
這就是 3-SAT,電腦科學裡最有名的難題之一。名字裡的 3,指每條要求最多提到三個人。每條要求裡面用的是「或」,所以每條都留了幾條路可走;困難就在這些選擇互相牽制,這裡選了 A 來,可能讓別條要求少一條路。
四個人只有 種安排,一個一個試很快。換成 100 個人,安排方式就有 種,大約是 。一台電腦每秒檢查十億種,要跑四十兆年左右,大約是宇宙年齡的三千倍。
給數學好的讀者:3-SAT 的正式寫法
有 個布林變數 。一個 3-CNF 公式是 個子句(clause)的合取,每個子句是至多三個文字(literal,即 或 )的析取,例如
3-SAT 問:是否存在一組賦值讓公式為真。#3-SAT 問:這樣的賦值有幾組。任何命題邏輯公式都能在多項式時間內改寫成可滿足性相同的 3-CNF,所以研究這一種形式就夠了。
學界賭的是什麼
「一個一個試」需要 步。從 1980 年代起,研究者不斷找到更聰明的做法,可是每一次進步都只是把底數變小:、、,到 2018 年確定性演算法的紀錄是 ,隨機演算法則是 。2
3-SAT 的速度紀錄:四十年只動了底數
確定性演算法
- 1985Monien 與 Speckenmeyer:1.618ⁿ
- 2002Dantsin 等人:1.5ⁿ
- 2018Liu:1.328ⁿ
- 2026OpenAI、Anthropic 宣稱:2^o(n)
隨機演算法
- 1999Schöning:1.334ⁿ
- 2011Hertli:1.308ⁿ
假說
- 1999Impagliazzo 與 Paturi 提出 ETH
說明:1.334ⁿ 等隨機演算法只保證高機率答對;2026 年的結果尚未經同儕審查
資料來源:Anthropic〈A 2^o(n) Time Algorithm for 3-SAT〉第 1 節;John D. Cook
底數變小在實務上差很多。 大約是 ,每秒十億步的話半小時就跑完。可是這種演算法仍然是「指數」的:人數每多一個,時間就乘上 1.328,多 100 個人,時間就乘上 。
ETH 賭的是這件事改不了。它說:存在某個大於 1 的底數,任何演算法在最壞情況下都壓不到它下面。底數也許能從 1.308 再往下降一點,但永遠降不到 1。
這個賭注比更有名的 P ≠ NP 還強。P ≠ NP 只說 3-SAT 沒有「多項式時間」的演算法,也就是時間不可能像 、 這樣成長。在多項式和指數之間,還有一大片空間,例如 :它比任何多項式都慢,卻比任何 都快。ETH 說 3-SAT 不會落在這片中間地帶。
研究者會接受這麼強的賭注,是因為它很好用。要證明某個問題「沒有快速演算法」,現有的數學工具幾乎做不到;退一步證明「如果 ETH 成立,這個問題就不可能比某個速度快」,就容易得多。圖論、資料庫、計算生物裡很多「這已經是最好的做法」的結論,都是這種條件句。ETH 一倒,這些條件句的前提就沒了,結論也就不再告訴我們任何事。
給數學好的讀者:ETH 與它的否定
令 。ETH 是 。
它的否定是 :對每個 ,都存在一個在 時間內判定 3-SAT 的演算法。量詞從「存在 ,對所有演算法」翻成「對所有 ,存在演算法」,每個 可以配不同的演算法。兩篇論文給的是更強的結果:同一個演算法的時間是 。
強指數時間假說(SETH)說,當子句寬度 ,-SAT 的最佳指數趨近 。SETH 蘊含 ETH,所以 ETH 倒了,SETH 也一起倒。由弱到強排:P ≠ NP、ETH、SETH。P ≠ NP 不受影響。
先換個問題:不找解,改成數解
兩份證明都從同一個轉彎開始:不去問「有沒有解」,改問「有幾組解」。數到 0 就是沒有解,所以會數就會判斷。
數解聽起來比找解更難,好處是它可以寫成算術。把每條要求寫成一個算式:過關時等於 1,不過關時等於 0。把所有要求的算式乘起來,只有每條都過關的安排會得到 1,其他都是 0。把每一種安排的乘積加總,就是解的個數。
前面「自己排排看」最下面那 16 格,就是這個加總:每一格是一種安排的乘積,加起來就是解的個數。
這樣一來,問題變成「怎麼算一個很大的加總」。加總可以重新分組、可以交換順序,這是代數的強項。
拆開來數
接下來的想法很直觀。把每個人畫成一個點,兩個人出現在同一條要求裡,就在他們之間連一條線。
如果這張圖剛好分成兩群,兩群之間只有兩條線相連,事情就簡單了:把線一端的兩個人狀態固定下來,總共只有 4 種可能;每一種可能下,兩群各自數自己的解,乘起來,再把 4 種情況加總。原本要一起試的組合,被拆成兩個小得多的問題。下面的工具可以按「逐一固定紅點」看這個過程。
「拆開來數」算法:固定的人有 2k 種狀態,每一種讓左群數剩下的人、右群數自己的人,合計約 2n/2 + 2k+n/2 步。這是說明用的簡化估算。把 n 拉大看看:好切的圖,指數一路往 50% 掉;纏成一團的圖,指數一直停在接近 100%。
麻煩在「纏成一團」那種圖,切換過去、把人數拉大看看。隨機產生的難題通常長得像一團亂麻,數學上叫「擴展圖」(expander):不管怎麼切成兩半,跨過切口的線都跟人數成正比。這時候光是「固定跨過去的人」就有指數多種可能,拆開來數並沒有省到本質上的時間。過去用分而治之的辦法,只能改進指數前面的常數,原因就在這裡。2
允許負數
Anthropic 的模型找到的突破,是一個改寫線的辦法。
把要求分成很多小群,排成棋盤的格子。棋盤上任選兩列兩行,交叉出一個長方形的四個角,左上 、右上 、左下 、右下 。如果這四個角之間有兩條斜對角的線,就表示「 要跟 對齊」而且「 要跟 對齊」。如果把每一列合併成一群,上下兩群之間就得對齊兩份資訊。
模型用了一條 1818 年由 Degen 發現的「八平方恆等式」,它跟八元數(octonion)的乘法有關。2 這條恆等式能把「兩條斜線」改寫成兩項相加,而且每一項裡都有正負號。把上下兩列各合成一群時,其中一項只要求兩群對齊「 和 合起來的一份摘要」,資訊量少了一半;另一項還是要對齊兩份,要換成左右兩行合併才便宜。下面可以自己挑 、、、,確認兩項加起來永遠等於原式。
上下合併時,第一項只用到 x⊕y 這一份 3 位元的摘要(下面那群對 u⊕v 就好),第二項還是要對齊 6 位元。每一項各挑自己便宜的方向,就比原式省。實際的證明裡有很多這樣的長方形共用同一種合併方式,沒辦法每一處都挑到便宜的那邊,平均下來要對齊的資訊大約剩 11/12。
改寫後的單一項不再代表任何真的解,有些項甚至是負數。這有點像記帳時先記一筆借出、再記一筆還回:中間的帳目看起來對不上,最後的總數卻一分不差。整個證明只需要最後的加總正確,中間每一項是不是「有意義」並不重要。
細算下來,每次改寫加上重新分組,群與群之間要對齊的資訊大約剩下原本的 。2 省下的只有十二分之一,關鍵在於這一步可以重複:分組、改寫、再分組,每一層都乘上一次 。疊了 層,指數大約縮成 倍。不管你要求的 多小,只要疊夠多層,總能壓到它下面。這正是推翻 ETH 需要的。
不管 δ 多小,往右拉總會碰到目標線,所以對每個 δ 都有演算法,這就是 ETH 的否定。代價在最後一格:每多一層,群數就從 K 變成 9K16,第一層就有 9 × 296 群。常數暴漲是 n 得大到天文數字才看得出好處的原因之一。數字取自 Anthropic 論文的證明概述(eℓ ≤ 1.12 × (11/12)ℓ)。
給數學好的讀者:Anthropic 證明的骨架
以下依 Anthropic 論文第 2 節的概述整理。2
計數式。 每個子句 有局部變數 與權重 ,相鄰子句間的 檢查共用變數一致:
切割。 若 ,稱它「花 個位元」,就能把對 的加總提到最外層,兩邊各自加總:
八平方恆等式。 存在 ,使得對所有 ,
合併列時,第一項只需 (3 位元),第二項需 6 位元;合併行時相反。把長字串切成 個 3 位元區塊,並按「有幾個區塊選了行」把項歸成 ,使項數只有 。 在兩個方向的成本相加是 ,原本兩條對角線是 ,取較小的方向就得到 。
遞迴。 第 層的指數滿足 ,其中群數 、,所以 。附錄把恆等式換成 的版本並改進平衡,得到主定理:
OpenAI 的證明走的是另一條路。它把每個變數換成帶一個參數的「替身」,在參數取某些值的時候,各群之間只剩少數幾個共享的數值;算出這些值之後,再用內插法把參數為 0 的答案還原回來,那就是真正的解數。3 兩條路的共同點是:用代數把加總重新分組,讓各群之間需要對齊的資訊少到比 慢一點點地成長。已經有學者 Shiva Kintali 寫出 OpenAI 證明的簡化版。4
到底快了多少
新演算法的時間大約是 這個等級。分母的 長得極慢, 是一百萬時也才 4.5 左右,所以它只比 好一點點,而且前面還藏著天文數字的常數:光是第一層的群數就是 。
Anthropic 的論文自己算過:一般的 3-SAT 公式, 要超過 ,這個演算法的保證才會贏過一個一個試;不限要求條數的版本,要超過 。而 的時候,一個一個試就已經跑不完了。論文的原話是:「我們的結果對實際解公式沒有任何幫助。」2
所以有幾件事沒有改變:
- P 和 NP 是否相等,仍然未知。 新演算法還是比任何多項式都慢。
- 實際的 SAT 求解器不會變快。 晶片驗證、排程用的那些工具,靠的是針對真實資料的技巧,跟最壞情況的理論保證是兩回事。
- 不是所有 NP 問題都跟著變快。 把別的問題轉換成 3-SAT 時,變數可能變多,這點微小的優勢就被吃掉了。能直接受惠的是獨立集、團、點覆蓋、支配集這類能用差不多數量的變數轉換的圖論問題。2
AI 是怎麼做出來的
依 Anthropic 的說法,核心演算法是 10 月 16 日由一個內部研究用的 Claude 模型找到的,過程輸出了 1,400 萬個 token,沒有任何人類參與;之後研究人員和 Claude 一起改寫,才成為現在的論文。2 OpenAI 那邊說,它的模型同一天寫出自然語言證明,隔天完成形式化。5 兩家都說彼此是各自獨立做出來的。
論文附錄有一節,事後重建了「為什麼會想到八平方恆等式」:如果你想找一種比較便宜的方式改寫那兩條斜線,順著兩個自然的猜測走下去,就會走到 Hurwitz 在 1898 年處理過的平方和問題,而它最極端的解,正好是二、四、八平方恆等式。2 用到的零件都是數學家熟悉的舊東西,新的是把兩百年前的代數恆等式,接到計算複雜度的問題上。
兩家都把證明寫進了 Lean。Lean 是一種「證明助理」程式,會逐步檢查證明的每一個推論是否合法,人眼看漏的錯它不會放過。Anthropic 的 Lean 證明有 1,050 個模組,通過了 Lean 的核心、另一個重播檢查器,以及一個獨立實作的檢查器 nanoda。2
Lean 的保證有兩個缺口,Anthropic 的論文自己寫得很清楚:
- 敘述對不對,機器不能檢查。 Lean 保證證明符合「寫下來的那個敘述」,至於那個敘述是不是真的等於「ETH 是錯的」,得由人讀過才能判斷。這有點像會計師把每一筆帳都核對過,卻沒辦法替你確認查的是不是對的那家公司。
- 目前沒有人類檢查過。 這份 Lean 證明是 AI 寫的,由同一批模型的其他實例審閱;論文寫明,在撰稿時沒有已知的人類檢查過它。2
人類的審查才剛開始。當年提出 ETH 的 Russell Impagliazzo 和 Ramamohan Paturi,加上 MIT 的 Ryan Williams,組了一個公開的工作小組來檢驗 OpenAI 的證明,並且明說參與審查不代表背書。應他們的要求,OpenAI 公開了全部材料,也答應出資辦一場研討會。6
所以呢
現在能確定的是:兩家實驗室各自宣稱推翻了 ETH,用的辦法不同,都附上了機器檢查過的證明,細節也公開了。還不能確定的是:這些形式化的敘述是不是真的說了它們想說的話,以及人類專家讀完以後會不會找到問題。
如果證明站得住,受影響的是理論:八百多篇論文裡依賴 ETH 的結論要重新檢查,「3-SAT 一定要指數時間」這個幾十年的直覺也得改掉。Hacker News 上有人提到,早年像 Knuth 那一輩的研究者,常常遇到某個問題突然冒出意想不到的快速演算法;後來的世代比較習慣證明「這件事做不快」。這次的結果,可能讓鐘擺往回盪一點。
實務上的東西不會變。你手機裡的加密、工廠的排程軟體,明天都一樣。
接下來幾個月,要看的是 Impagliazzo、Paturi 和 Williams 的小組,以及其他讀過這些證明的人怎麼說。
Footnotes
-
OpenAI,〈Building scientific understanding with academic communities〉, 2026-10-26, https://openai.com/index/building-scientific-understanding-with-academic-communities/;論文 https://github.com/openai/math/blob/main/preprints/The-Exponential-Time-Hypothesis-is-False-October-25-2026/paper.pdf。 ↩
-
Claude(Anthropic),〈A 2^o(n) Time Algorithm for 3-SAT〉, 2026-10-27, https://hexagonmath.org/2610.00577v1;Lean 證明 https://github.com/anthropics/formal-math/tree/main/eth。 ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8 ↩9 ↩10 ↩11 ↩12 ↩13
-
alphaXiv,〈The Exponential Time Hypothesis Is False〉摘要, https://www.alphaxiv.org/abs/2610.exponential-time-hypothesis-refutation。 ↩
-
John D. Cook,〈The Exponential Time Hypothesis is False〉, 2026-10-27, https://www.johndcook.com/blog/2026/10/27/eth-false/。 ↩
-
AI/TLDR,〈OpenAI ETH false, Kakeya results〉, https://ai-tldr.dev/releases/openai-eth-false-kakeya-results/。 ↩
-
The Next Web, https://thenextweb.com/news/openai-exponential-time-hypothesis-false-kakeya-yang-mills。 ↩