昨日のTOWNSCAPERの記事「Wave Function Collapse Algorithm(波動関数の崩壊アルゴリズム)」の事に触れました。なにやら小難しい物理の計算をする手法かと思っていましたが、どうやらそうでは無いようです。

とある条件を満たすと浮遊城の出来上がり

波動関数とは

量子(素粒子とか)の状態を表す式です。量子とは原子核を構成している中性子や陽子をさらに分解してこれ以上は壊せませんって感じの最小単位のツブツブです。電子や光子もこれに含まれます。これらツブツブが今どこにどんな状態で存在するかを表す式が波動関数です。

原子核に束縛されていない電子を例に、乱暴に説明すると、今だいたいこの辺にこんな確率で存在するんじゃない?って答えを波動関数で表すことが出来ます。放物運動の方程式のようにある時点の位置と速度が分かっていて、何秒後にはこの位置をこの速度で飛んでるといった事を確定できないのが量子力学の世界です。

崩壊

でも、電子も通さない壁を置くことが出来、そこに電子が衝突して痕(あと)が残れば電子は確かにそこにあったと知る事が出来ます。「シュレーディンガーの猫」で有名ですね。箱を開けるまで猫の生死は五分五分の確立の状態のままってやつです。確率でしか分からなかった状態が観測によって確定される。このことを『波動方程式の崩壊』と呼びます。

で、

ここからが昨日のSKYSCAPERのアルゴリズムのお話。分かりやすいのは下のYouTubeの動画です。冒頭2分「数独」のところが分かりやすいです。

なんの数字も入っていない空白の9×9の数独のマスには、最初どのマスへも1から9の数を入れることが出来ます。波動関数的に言い換えると完全に空白の数独には1から9の数はどのマスへも存在し得ます、「重ね合わせ(superposition)」と呼ばれる状態です。

この状態の数独へ「5」をひとつどこかに書き込む、ひとつの「5」の波動関数を崩壊(collapse)させると、数独のルール(constraints)によって「5」を書いたマスと同じ行と列、そして3×3のマスには他の「5」を入れる事が出来なくなります。9つの「5」は最初あらゆるマスに等しい確率で存在し得ましたが、一つを確定する事で残り8つの「5」の位置は制限されます。崩壊が伝播(propagate)していく事になります。

任意の位置の状態を決定するとルールに従って近傍の状態が決まります。これが「Wave Function Collapse Algorithm」です。セル・オートマンは時間変化を決定しますが、これと似ていますね。

2Dゲームのマップを作成するツールでも使われます。例えば「草原」のタイルと「海」のタイルでマップを塗り分けるとその境目を「砂浜」のタイルで置き換えてくれるアレがそうです。ルールはあらかじめ決めておく必要がありますけどね。

Minecraftはノイズ関数から地形をランダムに生成しますが、これを使えばバイオームのつなぎ目を違和感なく見せることが出来ますね。

また、集合住宅にお住まいの方はご存じかと思いますが、キッチンシンクは両隣さんと部屋を仕切る壁(戸境壁)にくっついています(アイランド型は知らん)。って事はお隣さんのキッチンシンクはその壁の向こうにレイアウトされているはずです。なぜかって建築するときに水回りの配管をする時に都合がいいからです。トイレの下水管はもう一方のお隣さんとの壁にあります。そんなルールに従えばお隣さんちを覗かずともだいたいどんなレイアウトか分かります。壁を境に鏡像の間取りってこともあります。上下で部屋の間取り大きくが違うって事もないでしょう。波動関数は崩壊済みです。

簡単に説明できる事に、物理学になぞらえて命名せんでもええやろ~。「秘すれば花」ってことですか?これに昨晩時間を費やした僕は暇な奴です。

波動関数の崩壊アルゴリズム” への4件のフィードバック

  1. マインスイーパーを連想しました。
    ちなみに「電子は確かにそこにあったと知る事」は、
    電子レンジ開発の研究室で、実験用のシールドが不完全なレンジの横に立ってたとき、身体がホワッと温かくなったことで、わかるよん(^^)v
    作動中のイージス艦の甲板でもOKかも…

    文系のわたしからは以上だな!

    1. Hiroshi Takashima

      2021-02-13 — 02:36

      > マインスイーパーを連想しました。
      パズルは何でもそうですね。
      ジクソーパズルは違うか。

  2. >>パズルは何でもそうですね

    おぉぉう、そうなのか…
    文系は勉強になった!が、ここまでだな( ゚д゚)ウム

    1. Hiroshi Takashima

      2021-02-14 — 10:14

      少し似てるから「波動関数の崩壊アルゴリズム」って命名されているだけで、実際には全く違うものですよ。
      モノホンの学者さんの前で披露したら怒られます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です