忍者ブログ

Memeplexes

プログラミング、3DCGとその他いろいろについて

タイムトラベル・セルオートマトン?

私はタイムトラベルについて考えるとき、確率的なモデルを使うことが多いですが、ここでは決定論的なセルオートマトンでタイムトラベルを考えてみます。


決定論+タイムトラベル

決定論ルールとは「未来は一つに定まる」というルールです。しかしそこにタイムトラベルを持ち込むと未来は一つに定まらなくなります。

たとえば、数字が一つずつ増えていく世界があったとします。

1, 2, 3, 4, …

次は5であり、それ以外の数字はありえません。未来は一つしか無いのです。しかしタイムトラベルが可能なら話は別です。

1, 2, 3, 4, 15, 16, 17, 8,…

何が起きたかと言うと、未来(17)から10がやってきたのです。その10は過去(15)へ送られなくなり、本来の数列(8, 9, 10,..)へ戻ります。

タイムトラベルで未来がわからなくなる

この話の何が恐ろしいかと言うと、未来からやってくるのは100かもしれないということです。つまり、決定論的世界にタイムトラベルを組み合わせると、必然的に未来は予測不可能になります。タイムトラベルが可能なら未来はわかるようになるのではないかと思うかもしれませんが、逆によくわからなくなることもあるわけです。

このことはノーベル賞を受賞した物理学者キップ・ソーンがビリヤードボールが未来からやってくる思考実験(ポルチンスキーのパラドックス)の解を計算したときにも明らかになっています。彼は決定論的なニュートン力学に基づいてボールの動きを計算したのですが、決定論的であるにも関わらず複数の動きを取りうることがわかったのです。決定論+タイムトラベルは非決定論となりうるようです。

セルオートマトン+セルオートマトン

では逆に、非決定論的ルールを決定論+タイムトラベルとみなすことは出来ないでしょうか?私が言っているのは、間違って計算してしまった後、「いや、これは未来のためにあったのだ」と後知恵で正当化するような計算方法です。

簡単な決定論的ルールであるセルオートマトンで考えてみます。

セルオートマトン(タイムトラベルなし)

簡単にするため、2つしかセルがないセルオートマトンを考えます。セルAとセルBがあり、それぞれ自分と相手の今の状態から、未来の自分の状態を決めます。

セルオートマトン(タイムトラベルつき)

これにタイムトラベルを組み込むとしたらどうすればいいでしょう?たぶん次のように、過去や未来の相手のセルの状態を使うようにすればいいのではないかと思います。


(見やすくするため、過去のセルAと未来のセルBのタイムトラベルは矢印を省略しています)

この図は未来とつながった「どこでもドア」のようなものです。つまりこちら側からは未来の光景が見え、未来からはこちら側の光景が見えるのです。未来から現在に情報を贈りたいときは、未来の情報を書いたホワイトボードをドアの前で持てば、現在側からそれを見ることが出来ます(あるいは手紙を直接手渡すこともできるでしょう)。

逆に現在から未来に情報を贈ることも出来ますが、それはタイムマシンなしでもできるふつうのことなのでここでは考えないことにします。

実装方法

一見、未来のセルの情報を元に現在のセルを更新するのは不可能のように思えます。しかしそれは見方の問題です。セルをランダムに更新し、それを未来から情報を受け取ったということにします。そして未来に辻褄が合う状態になったら過去から情報を受け取っているかのようにセルを更新すれば、タイムトラベルが起きたかのように見えます。少なくとも見かけ上は全く区別できません。

これは数列の例でいうと、1, 2, 3, 4,...という数列にノイズを加えるのと同じです。1, 2, 3, 4, 151617, 8, …という数列は実際には1, 2, 3, 4, 5, 6, 7, 8, …に10というノイズが加わっただけかもしれません。決定論的に作られたデータにノイズを加えたものは、決定論的な世界でタイムトラベルが起きた結果だと解釈することもできるわけです。

拍手[0回]

PR