世界を動かす技術を、日本語で。

BusyBeaver(6)はかなり大きいです

概要

  • Busy Beaver問題 の最新進展に関する解説
  • BB(6) の下限値が劇的に引き上げられた経緯
  • 巨大数の直感的な説明と ZFC独立性 への考察
  • 著者の個人的な心情や STOC 2025 参加の話題
  • コメントポリシー変更とブログ運営方針の共有

Busy Beaver問題の驚異的進展

  • Busy Beaver(BB)問題 は、与えられた状態数の チューリングマシン が停止するまでに実行できる最大ステップ数を求める問題

  • BB(6) は6状態2記号のチューリングマシンについての最大ステップ数の下限値

  • 2022年時点では BB(6) > 10^{36,534} が知られていたが、 Pavel Kropitz により BB(6) > ^{15}10 (10を15回テトレーション)に更新

  • その後、 BBchallenge チームの mxdysBB(6) > 10,000,000^{10} (10を1,000万回テトレーション)に証明を更新し、 Coq による正当性証明も実施

  • さらに、 BB(6) > ^{^{^{9}2}2}2 (2を9回テトレーションしたものをさらに2でテトレーション)という驚異的な下限値へと到達

    • 具体的には、 BB(6) ≥ 2ペンテーション5 (ペンテーションはテトレーションの繰り返し演算)

巨大数の直感的イメージ

  • 10,000,000^{10} の大きさを説明するため、 10,000,000^{10}個の砂粒 があれば、 観測可能な宇宙10,000,000^{10}回 満たすことが可能
  • この規模の数は、日常的な直感を遥かに超える巨大さ

ZFC独立性と今後の展望

  • BB(6) の劇的な下限値向上により、 BB(n) の値が ZFC公理系 から独立になるnの値について再考
  • これまではn=20や30以降と考えられていたが、 n=7,8,9 あたりで既に独立となる可能性を示唆
  • 現在分かっているのは、 n=643 で独立となる事実

著者の個人的な近況とSTOC 2025

  • STOC 2025 (プラハ)に参加し、旧友との再会や新たな知見を得る体験
  • 自身の STOC基調講演「The Status of Quantum Speedups」 のスライドも公開
  • 世界情勢への不安を、研究や学術的な交流が和らげてくれる実感

コメントポリシーとブログ運営

  • 2024年7月 以降、コメントは原則として 著者(Scott Aaronson)への個人的なメッセージ として扱う方針に変更

  • 興味深い内容や議論を前進させるコメントのみ、 編集部の判断でブログに掲載

  • 掲載されない場合も、インターネット上で自由に発信可能であることを強調

    • コメントは HTMLやTeX記法 ($$ $$や( ))にも対応

Hackerたちの意見

だから、こう言ったんだ。「もし君が10,000,000sub10粒の砂を持っていたら、どうなるか想像してみて。そしたら…えっと…その砂で観測可能な宇宙の約10,000,000sub10コピーを埋められるんだ。」この部分がよくわからないんだけど、観測可能な宇宙の体積を砂の粒の平均体積で割ってるってこと?それって宇宙の質量よりもずっと桁が多い比較だよね。

そうだね、それは普通の数の桁数の範囲内だよ。10,000,000^10,000,000ですら、もうすごく大きくて、気にする必要ないし、ましてやその指数を9回も上げたら、もっと大きくなるし。

テトレーションを使うと、もう桁数の話じゃなくて、桁数の桁数の話になるんだ。

その通り。この数は10^100000とか、どれだけの砂の粒が入るかよりも、はるかに大きいから、その量で割っても本当に変わらないんだ。9,999,999sub10に近づくほどには、全然足りないよ。

そうだね、その比率で割ることは、実際にはその数にほとんど影響を与えない。むしろ、その表記法で「隣接」する数の方がずっと大きな変化をもたらす。10↑↑10,000,000 / (宇宙あたりの砂の粒数)は、例えば10↑↑9,999,999よりもずっと大きい。だから、これらの数を書くために使っているシステムでは、(非常に大きい)/(ただ単に大きい)を正確に書く以外に、もっと良い方法はないんだ。そして、非常に大きいの表記では、ほぼ(非常に大きい)に丸められるんだ。

こういう比較のもっと一般的な例を挙げると、重要な桁数では、10億から100万を引くと10億になるよ。

可視宇宙って、BB(6)の正確な値を書き下すのに十分な大きさなんだろうか。

そうじゃないよ。

確実にそうじゃないね。宇宙に保存できる情報量は約10^120ビットくらいだよ。たとえ桁数がトリリオンもずれてても、関係ないし。

観測可能な宇宙を閉じたシステムとして扱うなら、ベケンシュタインの限界を適用しようとすることができるかも。- R ≈ 465億光年(観測可能な宇宙の半径) - E ≈ 観測可能な宇宙の総質量エネルギー含む質量エネルギーは通常の物質、暗黒物質、暗黒エネルギーを含む。現在の推定では、観測可能な宇宙には約10^53 kgの質量エネルギー相当が含まれているとされている。これをS ≤ 2πER/ℏcに代入すると、最大情報量は約10^120ビットになる。 S ≤ 2πER/ℏc S ≤ (2 × 3.141593 × 3.036e+71 × 4.399e+26)/(1.055e-34 × 299792458) S ≤ 2.654135e+124 S ≤ 10^120 だから、ノー。

記事の最初の数は¹⁵10だよ。それは10^(¹⁴10)ってこと。つまり、¹⁴10桁あるってことだ。だから、無理だね。

あなたが言ってるのは、完全な表現のすべての部分が同時に存在する状態のことだと思う。もし同時に存在する必要がないなら、宇宙が無限の時間を持っているなら「書き下ろす」ことができるかもしれない(「かもしれない」と言うのは、熱的死がどう関わるか分からないから)。でも、「同時に」というのは相対論的な時空ではあまり明確じゃないよね。兄弟コメントは、CMBによって示される参照フレームに関しては確かに正しいと思う。でも、実際にある参照フレームで「同時に」表現できるように時空を切り取ることができるんじゃないかって考えてるんだ。

BB(748)みたいな数(計算不可能な数だけど)が「ZFCから独立」っていうのが信じられない。なんかカテゴリエラーみたいに感じる。

数自体はZFCから独立してないよ。(すべての整数はZFCで表現できる。)ZFCから独立しているのは、BB(748)を計算するプロセスなんだ。

カテゴリーエラーは、BB(748)を実際の数だと思ってることだね。単なる数学的な概念に過ぎないんだ。

ナプキンに comfortably 収まる少しのテキスト(ZFCの公理)で、算術的真実や人類の努力に主に関連する物理的現実の側面を捉えることが「十分だ」と思っていたなんて、信じられないよ。6状態のチューリングマシンの挙動が数行のテキストで予測できないかもしれないってのも、全然驚かない。ゲーデルが最初の不完全性定理を発表したとき、数学の全分野がもっと公理を見つけるために全力を尽くすと思ってたんだけど、実際にはそれ以来ほぼ1世紀、ゲーデルの研究は主にニッチな基礎研究に限られた奇妙な事実として扱われてきたよ。(フェファーマンやフリードマンのことは知ってるけど、要するにこの分野の研究は他の数学のトピックに比べてかなり少ないんだ。)

BB(748)がZFCから独立している理由は、その値ではなく、748状態機械の一つ(TM_ZFC_INCと呼ぼう)がZFCの中で矛盾(FALSEの証明)を探し、見つけた時だけ停止するという事実だ。だから、BB(748) = Nを証明するには、TM_ZF_INCがNステップ以内に停止するか、全く停止しないことを示さなければならない。ゲーデルの有名な結果によれば、ZFCが一貫していると仮定すると、どちらのケースも不可能なんだ。

Xを「ZFが一貫していれば1、そうでなければ0」と定義しよう。そうすると、「X = 0」と「X = 1」という命題はZFから独立している。Xの定義が特定の数の満足のいく定義かどうかは、数学的哲学の問題だ。BB(748)も似たようなもので、ZFから独立した「数」ではなく「定義」と呼ぶべきだと思う。

それは「計算不可能な数」じゃないよ。

個々の数は計算不可能じゃないよ。BB(748)の値がZFCで証明されるような数と証明の組み合わせは存在しない。だから、BB(748)の値を出力するプログラムはZFCでは証明されないんだ。でも、他の数と同様にBB(748)を出力するプログラムは存在するよ。

多くの返信はゲーデルや独立性を理解していないみたい(理解しているものはかなり低評価されてる)。要点をまとめると:* ZFCは公理の集合。モデルはその公理を尊重する構造。* ゲーデルによれば、ZFCが命題を証明するのは、その命題がZFCのすべてのモデルで真である場合に限る。* だから、「BB(748)はZFCから独立している」という命題は、「BB(748)が異なる2つの数であるZFCの異なるモデルが存在する」という命題と同じ。* そのうちの一つは、私たちがチューリングマシンを思い描くときに考える「標準モデル」だ。ただし、もう一つは、{0,1,2,3,...}の集合に含まれない有限の「自然数」を含む奇妙な「非標準」モデルであり、標準モデルでは全く停止しない「有限」時間で停止するチューリングマシンも含まれている。* だから、BB(748)は標準モデルに関しては確かに数だけど、問題は非標準モデルから来るんだ。要するに、ZFCの公理が私たちが通常考えるチューリングマシンの動作と一致しない奇妙なモデルを許すってことだ。

BB(748)のような数(計算不可能な数だとしても)が「ZFCから独立している」ってのは本当に驚きだ。BB(n)が計算不可能なもので、任意のnに対してBB(n)の値を出力するアルゴリズムは存在しないんだ。BB(748)は計算可能なんだよ。748状態のチューリングマシンによって書かれた1の数だからね。このマシンがBB(748)を計算してるんだ。 > なんかカテゴリエラーみたいに感じる。数自体は文字通り想像を絶するほど大きい数なんだ。ZFCからの独立性は、この数が我々が求めている数であることを証明しようとするときに現れる。それをするためには、748状態のチューリングマシンの特性を捉えるためにZFCよりも強力な理論が必要なんだ。

BB(748)は自然数で、_すべて_の自然数は計算可能だよ。

それと、左上の指数はテトレーション、つまり繰り返しの指数法を意味するよ。例えば、1510は10の10の10を15回繰り返すってこと。タイプミスだと思った。テトレーションに出会うのは初めてだ。

繰り返しのテーマを続けると、ペンテーションに出会ったのも初めてだった。

前に見たことあるけど、クヌースのアップアローノーテーションを使ってたね[1]。あれは簡単に一般化できるから好きなんだ。 [1] https://en.wikipedia.org/wiki/Knuth's_up-arrow_notation

BB(14)がグラハム数より大きいことは知られているけど、この新しい発見からBB(7)もグラハム数より大きいんじゃないかと思う。直感的に、ペンテーションからグラハム数に行くための技術は、47,176,870から2 5に行くための技術よりも簡単な気がする。

シェアしてくれてありがとう;君の投稿は、グレアムの数についての俺の質問に対する答えとしてもよく合うね。

じゃあ、5状態のTMで証明を列挙できる最もリッチな論理は何?

それは有限のバイナリ文字列を論理的証明の列挙としてどう解釈するかによるよね?!

その質問は「列挙」として何を数えるかによるけど、「すべての5状態のTMの停止状態を証明できない最も豊かな論理は何か?」という関連する質問もあるよね。つまり、ある5状態のTMの停止状態が独立している最も豊かな論理は何か?この質問のバージョンについて少し考えたけど、第一階論理の専門知識が足りなくてあまり進まなかった。私が知っているのは、Skelet #17 [0] が数学的なレベルで非停止を証明するのが最も難しいマシンの一つだってこと。だから、Skelet #17が停止しないことを証明するのに十分な理論は、他の5状態のマシンを決定するのにも十分だと思うよ。 [0] https://bbchallenge.org/1RB---_0LC1RE_0LD1LC_1RA1LB_0RB0RA [1] https://arxiv.org/abs/2407.02426

bbchallengeのDiscordサーバーでは、最新のBB(6)チャンピオンが達成した2^^2^^2^^9を超えるために必要なチューリングマシンの状態数について、みんなが盛んに推測してるね。機能的なビジービーバーからわかるように、グレアムの行動は意外と早く現れることがあるんだ。49ビットのラムダ項で十分なんだよね。そのサイズ以下の閉じたラムダ項は77519927606個しかないけど、6状態のチューリングマシンは399910780272640個もあるんだ。6状態でペンテーションを達成したことで、今では7状態でグレアムを超えられるんじゃないかって思ってる人もいる。俺はそれでもちょっと驚きだな。数日前、10年以内にBB(7)>グレアムの証明が見られるかどうかで、彼らの一人と大きな賭けをしたんだ。みんなはどう思う?

専門家のふりはできないけど、BB(7)はグレアムの数よりも大きいと思うよ。BBは計算可能な列よりも早く成長しなきゃいけないからね。具体的にBB(7)がどういうことを意味するかっていうと…手を振るだけの話だけど…「演算子の強さ」の階段をすごく早く登らなきゃいけないってことだ。最終的には、我々が定義するどんな計算可能な演算子よりも早く成長する必要があるんだ(例えば、up-arrow^nや、任意の計算可能なfに対するup-arrow^f(n)を含む)。俺の直感では、4700万から2^^2^^2^^9の成長は、2^^2^^2^^9からグレアムの数の成長よりも質的に大きいと思う。必要な演算子の強さの観点からね(グレアムの数はg_64で、ここでのgはup_arrow^nの「一歩上」くらいの感じ)。だから、多分BB(7)>グレアムの数になるはずだ。

計算複雑性理論からのこういう結果を見るたびに、「超知能AIは神だ」っていう今の風潮が完全にクソだって気づくよ。観測可能な宇宙のすべての原子をスパコンの基盤に変えられるし、超巨大ブラックホールのエネルギーを利用して動かすこともできるけど、謙虚なBB(6)を停止状態にするのは永遠に無理だね。

そのストローマンは最初から勝ち目がなかった。

家から見ている人のために、ここでBB(6)は6番目のビジービーバー数、つまり{0,1}アルファネットを持つ6状態のチューリングマシンが、初期状態がすべて0の入力テープで停止するまでに取れる最大のステップ数だよ。ああ!なるほど!これは非専門家にとってはすごく分かりやすいね。これは明らかに、何十年もこの研究をしている人たちのためのハードコアなブログだ。こんなに謝罪なしで濃密で専門用語だらけのものに出会うのはちょっとすごいね!

そこにある定義は、標準的な学部レベルのコンピュータサイエンス理論だよ。でも、ソフトウェアエンジニアリングには標準的じゃないかもね。

ビジービーバー問題に出会ったことがない人でも、学部のCS教育を受けた人には、何が起こっているのかを少なくとも感じ取るには十分だと思う。ニッチな専門用語ではあるけど、何十年もかけてきた人だけが理解できるって言うのはちょっと過小評価だよ。

Scott Aaronson | どれだけの数学が知識として得られるのか? [Harward CMSA]: https://www.youtube.com/watch?v=VplMHWSZf5c 最近HNで(数ヶ月前): https://news.ycombinator.com/item?id=43776477