ランダムウォークで学ぶ複雑系の基礎：偶然性と探索行動をシミュレーション

# **はじめに**

ランダムウォークは、複雑系や確率過程を理解するための基本的なモデルです。  
例えば、動物が資源を探す行動や分子のブラウン運動、株価の変動など、多くの現象にランダムウォークの考え方が適用されています。

## **📌 GitHub & Booth**
本記事のコードは、以下のリポジトリおよびBoothで無料配布しています。  

- **📂 BoothでZIP版をダウンロード（無料）** 👉 [https://complex-dynamics.booth.pm/items/6457102](https://complex-dynamics.booth.pm/items/6457102)  
  ※ GitHubのデータをBooth向けに整理し、パッケージ化しました。  

- **📌 GitHubでソースコードを確認:** [Complex-System（ランダムウォーク）](https://github.com/Ry02024/Complex-System/tree/main/random_walk)  
- **🚀 Google Colabで直接実行:** [Google Colabで開く](https://colab.research.google.com/github/Ry02024/Complex-System/blob/main/random_walk/random_walk.ipynb)
---

# **ランダムウォークとは？**

## **基本的な考え方**
ランダムウォークは、以下のようなルールに基づいて進みます：
1. ある地点からスタートします。
2. 各ステップでランダムな方向に移動します。
3. この動きを繰り返して軌跡を生成します。

## **ランダムウォークの重要性**
ランダムウォークは以下の現象のモデルとして知られています：
- **自然界の探索行動**：アリや動物が資源を探す際の動き。
- **物理学**：分子のランダムな運動（ブラウン運動）。
- **金融市場**：株価の変動をモデル化。

---

# **Pythonでランダムウォークを実装する**

では、Pythonを使ってランダムウォークをシミュレートしてみましょう。  
本記事では、**GitHub上の `random_walk.py` を活用し、Google Colabで実行できる Notebook 版を紹介** します。

## **🔗 GitHubのソースコード**
- [`random_walk.py`（スクリプト版）](https://github.com/Ry02024/Complex-System/blob/main/random_walk/random_walk.py)
- [`random_walk_notebook.ipynb`（Google Colab版）](https://github.com/Ry02024/Complex-System/blob/main/random_walk/random_walk.ipynb)

---

## **実装コード**

```python
import matplotlib.pyplot as plt
import matplotlib.animation as animation
import random
from IPython.display import HTML

# ランダムウォークのアニメーション
def animate_random_walk(num_steps=100):
    x, y = [0], [0]
    fig, ax = plt.subplots(figsize=(6, 6))
    line, = ax.plot([], [], lw=2)

    def update(frame):
        dx, dy = random.choice([(1, 0), (-1, 0), (0, 1), (0, -1)])
        x.append(x[-1] + dx)
        y.append(y[-1] + dy)
        line.set_data(x, y)
        return line,

    ani = animation.FuncAnimation(fig, update, frames=num_steps, interval=100, blit=True)
    return ani

# アニメーションを表示
HTML(animate_random_walk().to_jshtml())
```

---

# **実行結果**
（ここは作業中です）
このコードを実行すると、以下のようなアニメーションが表示されます。

![ランダムウォークGIF](https://github.com/your_username/Complex-System/raw/main/random_walk/images/random_walk_example.gif)

ランダムに方向を選択して進む様子が視覚的に確認できます。

---

# **応用例：ランダムウォークが現実で使われる場面**

ランダムウォークは単なる数学的モデルではなく、以下のような現実の現象を説明するために使用されています。

## **1. 動物の行動学**
- 動物が食料を探す際、ランダムウォークに近い動きをすることが知られています。
- 特にアリや鳥などの探索行動がランダムウォークでモデル化されています。

## **2. 金融市場**
- 株価の変動はランダムウォークとしてモデル化されることがあります。
- これは未来の価格が過去の動きに依存しない「マルチンゲール性」という仮定に基づいています。

## **3. 物理学**
- 分子のブラウン運動はランダムウォークの一例です。
- 温度が高いほど、ランダム性が増すことが観察されています。

---

# **次のステップ**

ランダムウォークを理解したら、さらに以下の応用例に挑戦してみるのも面白いです。
- **3次元ランダムウォーク**: x, yに加えてz軸も考慮。
- **障害物付きランダムウォーク**: 壁や障害物を避ける動き。
- **ランダムウォークと最適化**: アルゴリズムへの応用（例: メタヒューリスティクス）。

---

# **GitHubで最新情報をチェック！**

このプロジェクトは今後もアップデート予定です。  
- **GitHubでコードを確認:** [Complex-System（ランダムウォーク）](https://github.com/Ry02024/Complex-System/tree/main/random_walk)  
- **Google Colabで直接実行:** [Google Colabで開く](https://colab.research.google.com/github/Ry02024/Complex-System/blob/main/random_walk/random_walk.ipynb)

フォローやスター ⭐ で応援よろしくお願いします！

---

# **注意事項**

- **読者の皆様へ**  
  私はまだ学びの途中にある身ですので、内容に不足や誤りがあるかもしれません。  
  もしお気づきの点があれば、ぜひコメント欄でご指摘いただけると幸いです。  
  この試みが、少しでも読者の皆様の学びや発見につながれば嬉しく思います。

- **記事作成の背景**  
  この記事は、ChatGPTを活用して作成しました。AIの力を借りることで、効率的かつ迅速にコンテンツを生成する実験を行っています。  
  記事内容は、私自身が複雑系の学びを深めるためにまとめたものであり、これを通じて知識を共有しつつ、さらなる学びを促進することを目指しています。

- **コードについて**  
  本記事に掲載されているコードは、Google Colab上で動作確認済みです。  
  もしコードを実行する際にエラーが発生した場合は、Python環境やライブラリのバージョンに注意してみてください。  
  また、コメントやフィードバックをいただければ幸いです。

---
## 🔗 関連リンク

📌 **GitHub（ソースコード）**  
➡ [Complex-System（ランダムウォーク）](https://github.com/Ry02024/Complex-System/tree/main/random_walk)

📌 **Google Colab で実行**  
➡ [Google Colab で開く](https://colab.research.google.com/github/Ry02024/Complex-System/blob/main/random_walk/random_walk.ipynb)

📌 **Booth で無料ダウンロード（GitHub ZIP）**  
➡ [Booth（無料版）](https://complex-dynamics.booth.pm/items/6457102)

📌 **Note でDOI / CIDの解説記事を公開**（有料）  
➡ [Note記事（準備中）](https://note.com/ry0w3/n/n438dccdeb2ec)