Top 8
Outer WildsストーリーMODを色々やってみた
June 18, 2023, 10:04 a.m.表面符号と戯れる【量子コンピューター Advent Calendar 2023 23 日目】
Dec. 23, 2023, 3:28 a.m.位数発見アルゴリズム ~Quantum Zooやっていく【特別編】~
Jan. 27, 2023, 2:50 p.m.ストーリー追加 Mod: The Outsider やっていく日記【Outer Wilds】
Feb. 19, 2023, 6:33 a.m.意識が量子効果で生じることを示す実験結果についてちょっと調べただけのメモ
April 21, 2022, 3:09 p.m.ストーリー追加 MOD: Astral Codec やっていく日記【Outer Wilds】
Feb. 25, 2024, 8:47 a.m.Outer Wilds の量子は計算能力が(ある程度)すごいのではという話
Jan. 15, 2022, 8:35 a.m.MacでAge of Empires 2 DE (AoE2DE)をCrossOverで動かす
May 31, 2021, 11:52 a.m.Outer Wilds の量子は計算能力が(ある程度)すごいのではという話
Jan. 15, 2022, 8:35 a.m. edited Oct. 4, 2022, 2:33 p.m. $$ \def\bra#1{\mathinner{\left\langle{#1}\right|}} \def\ket#1{\mathinner{\left|{#1}\right\rangle}} \def\braket#1#2{\mathinner{\left\langle{#1}\middle|#2\right\rangle}} $$Outer Wilds の量子についての話なのでネタバレはもちろんあるけれど、ネタバレが始まる手前にはいつものクイズを置いているので多分大丈夫。
量子論を簡単に少しだけ
量子状態はベクトルで表される1。例えば、銀原子はスピンというある種の向きを表す値を持っており、銀原子を上向きの一方向の磁場を通したあと、上へ行くものは上向きのスピン、下へ行くものは下向きのスピンを持つ2。このとき、銀原子のスピンが上向きの状態は
$$\left[\begin{array}{c}1\\0\end{array}\right]$$
下向きの状態は
$$\left[\begin{array}{c}0\\1\end{array}\right]$$
のように表される。これを量子論ではよく
$$\ket{0}:=\left[\begin{array}{c}1\\0\end{array}\right], \ket{1}:=\left[\begin{array}{c}0\\1\end{array}\right]$$
のように \(\ket{\cdot}\) を用いて表される。これをディラックによるブラケット記法(\(\ket{\cdot}\) をケット、\(\bra{\cdot}\) をブラ)と呼ぶ。このベクトルに係数をつけて足し合わせることもできる。
$$\ket{\psi}=\alpha\ket{0}+\beta\ket{1}\ (\alpha^2+\beta^2=1)$$
このとき、状態 \(\ket{\psi}\) は重ね合わせ状態にあるという。しかしながら、スピンの例でいうと、上向きスピンと下向きスピンが同時に存在している様子を実際に見ることはできない。この状態にある銀原子を磁場に通すと、やはり上へ行くか下へ行くかのどちらかである。上へ行った場合は \(\ket{\psi}=\ket{0}\) 、下へ行った場合は \(\ket{\psi}=\ket{1}\) に収束し、もう片方の状態は失われる。これを観測という。このあと何度観測をおこなっても、最初に上へ行ったものは常に上へ行き、最初に下へ行ったものは常に下へ行くことになる。そして、最初に上へ行く確率が \(\alpha^2\)、最初に下へ行く確率が \(\beta^2\) であるため、 \(\alpha^2+\beta^2=1\) という制約が存在する。
このスピンの例では上向きと下向きの 2 種類のみなので 2 成分ベクトル(これを 2 準位系という)であったが、一般には \(n\) 成分ベクトル(\(n\) 準位系)を考えることができる。
$$\ket{\psi}=\left[\begin{array}{c}x_1\\x_2\\ \vdots\\x_n\end{array}\right]=x_1\ket{1}+x_2\ket{2}+\cdots+x_n\ket{n} (\sum_{i=1}^n x_i^2=1)$$
次に量子状態の時間発展を考える。量子状態はシュレディンガー方程式に従う。
$$i\hbar\frac{d}{dt}\ket{\psi(t)}=H\ket{\psi(t)}$$
従う、のだが、これを解くと
$$\ket{\psi(t)}=U\ket{\psi(0)} (U=e^{-iHt/\hbar})$$
となるので、要はユニタリ演算子 \(U\) (\(UU^\dagger=U^\dagger U=I\) を満たす行列) を初期状態に掛けた形に量子状態は変化する、ととにかく覚えておけば良い。(ハミルトニアン \(H\) やディラック定数 \(\hbar\) なんて今は気にしないで良い)
具体的に 2 準位系で有名なユニタリ演算子は実際に量子コンピュータ上で量子ゲートとして実現されており、例えば
$$X=\begin{bmatrix}0 & 1\\1 & 0\end{bmatrix}$$
と表される \(X\) ゲート(別名 NOT ゲート)は上向き下向きを反転させ、
$$X\ket{0}=\ket{1}, X\ket{1}=\ket{0}$$
また、
$$H=\frac{1}{\sqrt{2}}\begin{bmatrix}1 & 1\\1 & -1\end{bmatrix}$$
と表されるアダマールゲートは重ね合わせを作り出す。
$$H\ket{0}=\frac{1}{\sqrt{2}}(\ket{0}+\ket{1}), H\ket{1}=\frac{1}{\sqrt{2}}(\ket{0}-\ket{1})$$
さて、複数の量子状態を合わせた複合系を考えることができる。 2 準位系では 2 つの上向き電子を用いて
$$\ket{0}\ket{0}\tag{1}$$
と表される。ここで、 1 つ目の量子状態に \(H\) ゲートを適用する。
$$\frac{1}{\sqrt{2}}(\ket{0}+\ket{1})\ket{0}$$
そして、 2 つの量子系に作用できるゲートとして \(CX\) ゲート(制御 NOT ゲート)を適用する。これは制御側の片方の量子系が 1 のときにもう片方を反転させる演算子であり、これにより
$$\frac{1}{\sqrt{2}}(\ket{0}\ket{0}+\ket{1}\ket{1})$$
が得られる。この状態ははじめの状態 (1) と違って 2 つの量子状態の積の形で表すことができない。このような状態を量子もつれ(量子エンタングルメント)状態という。
問題: 量子でエキサイトしてた Nomai は誰?(すべて小文字で)
ここから先は Outer Wilds ネタバレ要素が入ってくるので
hogehoge
この面白い例としては、量子もつれ状態の 2 つの量子系のうち片方を木の炉辺に、もう片方をアトルロックに持ってきたとする(量子もつれが壊れないように厳重に)。そして Hornfels が片方を観測して 0 (上向き)が得られたとする。すると、全体の量子状態は \(\ket{0}\ket{0}\) に収束するので Esker の持っている量子系は必ず \(0\) に確定する。これを量子テレポーテーションという。(220208追記:言いません!量子テレポーテーションはもうちょっと複雑な話でここにもうひとつ別の系 \(\ket{\psi}\) を Hornfels に持たせて、これを Esker の方に転送する話でした!ごめんなさいっ!!221004追記:ここに量子テレポーテーションの話も書こうと思っていたけれど、 Qiskit の解説ページがとても良かったのでリンクを貼るにとどめます)まるで光の速さを超えて情報をやり取りしているように見えるので因果律が破れているのではと思われがちだが、 Esker が観測する前に \(0\) であることを知るには結局無線か何かで Hornfels とやり取りしなければならないので問題ないのである。ゆえに時空構造は破壊されない3。
量子計算の限界
qstart
近年量子コンピュータがすごい、ともてはやされている。しかしながら、大抵の場合はそのすごさが正しく認識されていない。よく言われる説明は重ね合わせにより指数関数的な数の並列計算ができるのですごいというものである。確かに 2 準位系の量子状態(量子ビット)を \(n\) 個集め、それから計算結果を保存するいくつかの量子ビットも用意し、
$$\ket{0^n}\ket{0\cdots 0}$$
最初の \(n\) ビットに \(H\) を作用させて \(2^n\) 個の状態の重ね合わせを作り、
$$\frac{1}{\sqrt{2^n}}\sum_{x\in\{0,1\}^n}\ket{x}\ket{0\cdots 0}$$
そして上で説明した制御 NOT ゲートの応用として、最初の \(n\) ビットを制御ビットとして計算したい関数(\(f\) とする)を後ろのビットに実行すると、
$$\frac{1}{\sqrt{2^n}}\sum_{x\in\{0,1\}^n}\ket{x}\ket{f(x)}$$
を得ることができる。
qend
qstart
しかしながら、観測をするとそのうちのどれか 1 つに収束してしまうので、結局答えは 1 つしか得ることはできない。ゆえに、いくら指数関数的な数の答えを重ね合わせで保持できるといっても、それらすべてを得るには指数関数的な計算回数が必要となってしまう。組合せ最適化も同様であり、指数関数的な数の組合せの中に最適解があるとして、それを見つけるのがそう簡単になるわけではない4。
qend
qstart
では量子コンピュータは何がすごいのかというと、それは難しい話である。わかりやすいすごい話というと、古典コンピュータで解くのに指数関数的な計算時間が必要なアルゴリズムしか見つかっていない素因数分解の問題を多項式時間で解ける量子アルゴリズムが見つかったというものである(Shor の素因数分解アルゴリズム)。これ以外にも量子計算により高速化されたアルゴリズムは色々あり、 Quantum Algorithm Zoo というサイトにたくさん載っている。だが、一般にどういうときに高速化できるのかはやはり難しく、おそらく不要な計算パスが削除できるからとかなのかなぁという感じ・・・(この辺はもっと研究が進んでるかも)
qend
量子のかけらのヤバさ
Outer Wilds にて、量子のかけらは観測しているときは移動しないが、観測をやめるとまた動いてしまう。ここまで読んでくれた皆さんならわかるかもしれないが、これ実はヤバいことである。これを式で書くと、例えば燃え盛る双子星にある量子のかけらは湖底の洞窟を含めて 4 ヶ所を動くので 4 準位系といえる。それぞれの位置を 0, 1, 2, 3 とすると
$$\ket{\psi}=\frac{1}{2}(\ket{0}+\ket{1}+\ket{2}+\ket{3})$$
と重ね合わせ状態で表される。このうち 2 を湖底の洞窟を表すとして、湖底の洞窟で量子のかけらを観測したとする。すると、状態は
$$\ket{\psi}=\ket{2}$$
へと収束する。これが「普通の」量子状態であれば 2 に収束しているのでこのあと何度観測をしても量子のかけらは湖底の洞窟に居続けるはずである。しかし、 Coleus が消えたように、観測をやめると収束前の状態に量子のかけらは戻るのである。
$$\ket{2}\to\frac{1}{2}(\ket{0}+\ket{1}+\ket{2}+\ket{3})$$
これはとんでもないことである。なぜなら、これを応用するとある種の計算の高速化が実現できる。例えばある関数 \(f\) がとても長い計算時間のかかる処理だとする。これをなんとかこなして次の状態を作る。
$$\frac{1}{\sqrt{2^n}}\sum_{x\in\{0,1\}^n}\ket{x}\ket{f(x)}\tag{2}$$
そして観測をし、 1 つの結果を得たとする。これが通常の量子計算であれば状態は 1 つに収束してしまうので、また別の結果を得るためには再度時間のかかる \(f\) を計算しまた観測する、ということを繰り返さねばならない。そのため量子計算を並列計算器として用いるのは筋違いだという話に帰ってくる。ところが、 Outer Wilds 世界の量子のかけらを使うと観測をやめれば再び重ね合わせ状態 (2) に戻ってくれるので、あとはひたすら観測だけを繰り返せば結果をバンバン返す素晴らしい超並列計算機となってくれる。ヤバい。 Nomai が信仰をはじめるのも納得できる。
ただし、これにより計算量クラスがどのように変わるのかはわからなかった。 Outer Wilds 界隈のさらなる研究が待たれる5。
ところで、ここに置いておいた文章はどこに行ってしまったのだろう。一番下にたまに現れる石に乗せておいて目を離したら消えてしまったのだけれど、はたして。
Solanum と量子の月
量子の月の状態は第六の場所まで含めて HT (The Hourglass Twins の略), TH (Timber Hearth), BH (Brittle Hollow), GD (Giant's Deep), DB (Dark Bramble), Eye と表される。一方で Solanum の状態としては 死: 0, 生: 1 と表される。ゆえに、全体としては
$$\ket{moon}=\frac{1}{\sqrt{6}}(\sum_{x\in\{HT,TH,BH,GD,DB\}}\ket{x}\ket{0}+\ket{Eye}\ket{1})$$
と表される。この状態になるために幽霊物質が量子の月の状態を制御ビットとして Eye 以外のときに作用したといえるだろう。
ここで、 Solanum は「私は自分が必ずしも生きているわけではない」と言っていた。第六の場所に着いた時点ではそうは考えていなかったであろうことから、まず基本的なこととして時間発展が起きていることになる(つまり上の式では単純に生: 1 と記述したが、細かく見れば「自分はまだ生きていると思っている」、「自分は必ずしも生きているわけではないと思っている」というように状態が移り変わっている)。そして、もしもこの思考に至った理由が外部に連絡をしようとして通信が届かないからだとすると、普通は外界との相互作用をした時点で量子状態は壊れるのだが、やはりこれは普通ではないので大丈夫なのだろう。
さて、ところで、なぜ \(\ket{1}\) は 28 万年も経っているのに保たれているのだろうか。さすがに Nomai の寿命はそんなに長くないはずである。仮説:時間の流れが非常に緩やかになっている。というのを立てたが、それだと灰の双子星プロジェクトによる 22 分制限もここでは延長されても良いはずである。となると、仮説:外部から干渉されないと時間の流れが遅くなる。つまり、主人公は灰の双子星プロジェクトによるいわば外部からの干渉を常に受けているので、時間の流れが正常になっている。一方で Solanum は侵入者コアが弾けて以来 28 万年間通信が途絶しているので、時間の流れが変化しているのだろう。では、そもそもなぜ時間の流れが遅くなるのかというと、おそらく量子の眼による量子ゼノン効果かもしれない。量子の眼が連続で測定してくるので時間発展が遮られるのだろう。通常の間接測定では実は停止しない(本「現代の量子力学」を読むと良さげ)のだが、宇宙の眼は普通ではないのできっとできる。
とここまで書いて気づいたが、宇宙の眼を周回する量子の月含めて DLC で見たようにアレなので通信なんか通らなそうだった。やっぱり全然わかりません。
宇宙の眼探索への応用
計算結果を測定後も保存できる量子のかけらの性質をなんとか宇宙の眼探しに応用できないだろうか。例えば、軌道探査砲を量子のかけらの影響下に置くことで全方向の重ね合わせにし、そのまま探査機を発射する。すると、重ね合わせ状態にある探査機がそれぞれ時間発展をする。これらを非常に短い間隔で(ただしちゃんと間を空けて)信号により探知し続ける。おそらく南部観測所を改造すれば全方向分の探知機の観測を 1 秒以内におこなうのもできそう(ちょっと無理ならシステムに Poke のワープコア突っ込んで無理やり時間を延長するのも手かと)。これを続けるとどこかで通信が途絶する状態が現れるので、そのあたりに宇宙の眼が存在するとわかるはず。
多分、あと少し時間があれば、宇宙の眼や量子に新しい見方を持ちつつあった第 3 世代の Nomai 達がこんな感じのことをやってくれたんじゃないかなぁという妄想です。
巨視的量子力学について
Outer Wilds 宇宙ではなく我々の住む宇宙にも巨視的量子力学は存在し、ボース・アインシュタイン凝縮により実現される。これは温度を極限まで下げることで物質を構成するすべての粒子が同一の波動関数を持つようになる。これにより、実際に 1997 年に MIT で 2 つの凝縮体を用いて干渉縞実験に成功した(資料 p.12 下部参照)。さらに 2020 年になって、国際宇宙ステーションにてボース・アインシュタイン凝縮が地上よりも長期間持続できることが示された(論文、日本語記事)。
したがって、様々な物理法則が我々の宇宙と異なる Outer Wilds 宇宙において、量子のかけらが巨視的量子力学を実現しているのは実はそこまで不思議ではないのではと思った。
piyopiyo
Top 8
Outer WildsストーリーMODを色々やってみた
June 18, 2023, 10:04 a.m.表面符号と戯れる【量子コンピューター Advent Calendar 2023 23 日目】
Dec. 23, 2023, 3:28 a.m.位数発見アルゴリズム ~Quantum Zooやっていく【特別編】~
Jan. 27, 2023, 2:50 p.m.ストーリー追加 Mod: The Outsider やっていく日記【Outer Wilds】
Feb. 19, 2023, 6:33 a.m.意識が量子効果で生じることを示す実験結果についてちょっと調べただけのメモ
April 21, 2022, 3:09 p.m.ストーリー追加 MOD: Astral Codec やっていく日記【Outer Wilds】
Feb. 25, 2024, 8:47 a.m.Outer Wilds の量子は計算能力が(ある程度)すごいのではという話
Jan. 15, 2022, 8:35 a.m.MacでAge of Empires 2 DE (AoE2DE)をCrossOverで動かす
May 31, 2021, 11:52 a.m.Tags
- #Python (26)
- #量子力学 (25)
- #量子情報 (23)
- #Unity (11)
- #Outer Wilds (11)
- #数学 (9)
- #Mac (9)
- #AoE2 (8)
- #Linux (7)
- #Quantum Zoo (6)
- #意識 (5)
- #シミュレーション (5)
- #NumPy (5)
- #Bash (5)
- #相対論 (4)
- #Docker (4)
- #Android (4)
- #Qiskit (4)
- #Rust (3)
- #PyO3 (3)
- #GitHub (3)
- #Django (2)
- #情報理論 (2)
- #LaTeX (2)
- #AR (2)
- #Git (2)
- #iOS (2)
- #C++ (2)
- #正規表現 (2)
- #論文 (2)
- #電磁気学 (1)
- #Google Drive (1)
- #Overleaf (1)
- #Let's Encrypt (1)
- #ポケモン (1)
- #AdMob (1)
- #Autoya (1)
- #docopt (1)
- #SymPy (1)
- #AWS (1)
- #Twitter (1)
- #URP (1)
- #iMovie (1)
- #PyTorch (1)
- #C# (1)
- #Vim (1)