前回ランダムウォークを取り上げたのは、円周率の日に合わせて円周率を計算するために使った時です。でも、ランダムウォークとは一体何なのでしょうか?数学者なら、確率過程、つまり一連のランダムなステップによって定義される経路だと説明するでしょう。かなり抽象的な概念ですが、それが生命そのもの、つまり私たちや私たちの周りのあらゆるものを構成するタンパク質について、根本的な何かを明らかにできるということをお見せしたいと思います。
それでは、1 次元の最も単純なランダム ウォークから始めましょう。
1次元ランダムウォーク
オブジェクトがあるとします。このオブジェクトは左に1マス、または右に1マス移動できます。100ステップ移動させるとどうなるでしょうか? こんな感じになります。(「再生」をクリックして実行してください)
少なくとも少しは面白いと思いませんか?でも面白いのは、何度か実行すると、ステップ数に応じて(平均すると)開始点から遠ざかっていくということです。もちろん、1,000ステップかけて開始点に戻る可能性はありますが、おそらくそうはならないでしょう。
でもちょっと待ってください。ランダムウォークには別の種類があります。自己回避歩行(SAW)です。これはランダムウォークと似ていますが、物体が自分の進路を横切ることができないという点が異なります。1次元では、物体は左か右に動き続けるだけです。最初の動きをした後は、進むべき方向は1つしかありません。これは退屈なシミュレーションなのでここでは説明しませんが、上記のコードの37行目を saw=True (大文字と小文字が区別されます)に変更すると、自己回避歩行になります。
さて、プロットを見てみましょう。ランダムウォーク(自己回避型ではなく通常のランダムウォーク)を10歩ずつ実行するとします。この10歩を500回繰り返すと、最終的な平均距離が得られます。これを20歩、30歩と繰り返していきます。その後(実行にはしばらく時間がかかりますが)、平均距離と歩数のプロットが次のように得られます。このプロットを生成するコードを確認したい場合は、こちらをクリックしてください(無保証です)。

このグラフの何が重要なのでしょうか? 実のところ、注目すべき点は、これが1次元のランダム自己回避歩行のグラフとは異なるという点だけです。そのグラフでは、距離が歩数と等しくなるため(元の状態に戻れないため)、退屈なグラフになってしまいます。
2次元ランダムウォーク
2次元にすると、もう少し面白くなります。ぜひ見てください。2次元のランダムな自己回避歩行です。100歩に設定していますが、通常はそこまで進む前に行き詰まります。そうです、物体が自分の進路を避けようとすると、動けなくなる状況に陥ることがあります。ぜひ見てください。もう一度、「再生」をクリックして実行してください(面白いですよ)。
もう一度、10ステップから500ステップまで何度か実行してみるとどうなるか見てみましょう。注:SAWでスタックしたらプログラムを終了するようにしています。

データに適合する曲線は重要ではありません。注目すべきは、SAWデータと非SAWデータの違いです。SAWは自身の経路を横切ることができないため、外側に広がることを余儀なくされ、(平均的には)開始点からの距離が大きくなります。しかし、SAWはある時点で止まり、実際には10単位以上離れることはありません(そのため、横ばいになります)。これは非常に興味深い点だと思います。
3次元ランダムウォーク
いつ終わるんだろう?どんどん次元が広がっていくだけなのだろうか(ネタバレ注意:いや、4次元で止まるつもりだ)。3次元のランダムSAWをどうぞ。
注: 誤ってズームアウトしてしまわないように、「ユーザーズーム」をオフにしています。ただし、シーンは3Dなので回転させることができます。3Dパスのカメラビューを移動するには、右クリックしてドラッグするか、Ctrlキーを押しながらクリックしてドラッグするだけです。とても便利ですよ。あ、あと、これが「固まる」ことはめったにありません。6つの移動オプションがあるので、おそらくそのうち少なくとも1つの方向は開いている(そしてまだ移動していない)はずです。
SAWと非SAWの平均移動距離はどうでしょうか?こちらです(注:これらのグラフはすべて同じプログラムを使用しています)。

繰り返しになりますが、SAWバージョンは物体が経路を横切ることができず、より押し出されるため、最終的により長い距離に到達します。しかし、どちらの歩行方法も、ステップサイズの0.4975乗で距離が増加するのに対し、SAWバージョンは0.4688乗で増加するという良好な曲線フィッティングを示しています。つまり、これらはほぼ同じですが、それでも違いがあります。
4次元ランダムウォーク
4次元でランダムウォークを作るにはどうすればいいでしょうか?数学的には非常に簡単です。4次元を表す変数を追加するだけです(ただし、時間を4次元として使うことはできません)。私のPythonコードでは、位置を表すベクトルと追加の変数(ここでは「w」と呼んでいます)を使用します。視覚的なアニメーションを作成したい場合でも、このコードはそのまま使えます。4次元での動きを色の変化として表示するだけです。つまり、SAWでは、物体が自身の進路を横切っているように見える可能性がありますが、実際にはそうではありません。実際には、物体は4次元(実際には見えません)を移動し、進路を回避しているだけです。これが4次元ウォークです(「再生」をクリックするように指示していないことに注意してください)。
さて、肝心な部分です。こちらは、通常法とSAW法の両方における、最終距離とステップ数のグラフです。

SAW歩行と通常の歩行の間にはまだ違いがあることに注目してください。ただし、その差は非常に小さいです。基本的に4次元では、物体は自身の進路に突っ込むことはほとんどないので、回避する必要はありません。ちなみに、物体が動けなくなるのを見たことはありません(ただし、技術的には可能です)。
現実世界のランダムウォーク
ランダムウォークに取り憑かれた、ただのイカれた老人だと思っているかもしれませんね。ええ、確かにその通りです。しかし、ランダムウォークは現実世界にも応用できます。特に、タンパク質はランダムウォークとしてモデル化できます。タンパク質の詳細についてはここでは触れませんが、2つの点だけ述べておきます。1つ目は、タンパク質は長い分子鎖であるということです。2つ目は、タンパク質はあなたや私のような生物にとって重要であるということです。タンパク質がランダムウォークのようなものだとしたら、このモデルは生命が1次元、2次元、4次元ではなく3次元である理由を説明しているのかもしれません。聞いてください。(ええ、私がイカれているのは分かっています。)
生命は一次元ではあり得ません。確かに一次元タンパク質を作ることはできますが、それでは何も役に立ちません。他のものと相互作用しません(末端を除いて)。さらに重要なのは、タンパク質鎖が自分自身と相互作用しないということです。タンパク質鎖が折り畳まれて再び繋がることができなければ、(生命などにとって有用な)分子を作ることはできません。
二次元生命はどうでしょうか?ここでの大きな問題は、長いタンパク質を作れないことです。酵母タンパク質は400ユニット以上の長さです。50ユニットを超えるランダムなSAWを、詰まることなく作るのは難しいでしょう。二次元では長いタンパク質を作ることは不可能ですし、酵母も二次元では存在しません。酵母がなければ二次元ビールを作ることはできません。つまり、二次元に生命は存在できないということです。
次元が増えることでタンパク質がより長く存在できるのであれば、なぜ生命は4次元ではないのでしょうか? ああ、空間が3次元かどうかは気にしないでください。それは全く別の議論なので、また別の機会に回しましょう。もっと重要なのは、4次元のランダムウォークには問題があるということです。各ステップに非常に多くの選択肢があるため、ランダムウォークが自身の経路を横切る可能性は低く、これはタンパク質にとって良くありません。タンパク質は長く伸びるだけでなく、自身と繋がる機会も持つようにしたいものです。4次元ではランダムウォークがそのようなことをすることは稀で、生命にとっておそらく重要な、より複雑な分子を得るのは困難(あるいは可能性が低い)でしょう。
それとも、私はまだランダムウォークが好きなただの変な男なのかもしれません。
宿題
宿題の問題をいくつか出してもらってもいいですか? はい、いいアイデアですね。
- 私のすべての例では、ランダムウォーク(およびSAW)を格子ウォークとして扱っています。これは、物体のベクトル位置が常に整数の要素で構成されることを意味します。これによりプログラミングははるかに簡単になりますが、現実的ではないかもしれません。異なる次元におけるランダムウォークに関する同じ結論が、ステップサイズが1単位であるものの角度がランダムなランダムウォークにも当てはまるかどうかを確認してください。2次元ではランダム角度が1つだけ必要なので、これはかなり簡単です。3次元では2つの角度(球面座標からの角度)が必要です。これを4次元でどのように行うかはわかりません。ああ、物体が自身の経路と交差するかどうかを見るのも難しいですね。頑張ってください。
- ステップサイズが1ではなく、各ステップに独自の距離がある場合はどうなるでしょうか?ステップサイズに正規分布のようなものを選んで、同じことが機能するかどうかを確認してください。
- 5 次元 SAW と 5 次元ランダム ウォークの平均距離と歩数の関係はどのようになりますか?
- ランダムウォークが経路衝突(経路を回避するか、何らかの分子を作るために接続しなければならない状況)に陥るまでの平均ステップ数はどれくらいですか? はい、2次元、3次元、4次元で計算してください。