2024-08-10

平均場ゲーム理論シミュレーションするって要するにこういうこと?

import numpy as np
import matplotlib.pyplot as plt

# パラメータ設定
num_agents = 100  # エージェントtime_steps = 100  # シミュレーション時間ステップ
alpha = 0.1  # 情報共有の効果
beta = 0.05  # 情報拡散の効果

# エージェントの初期状態ランダムに設定
states = np.random.rand(num_agents)

# 平均場の初期化
mean_field = np.mean(states)

# 状態履歴を保存
state_history = np.zeros((time_steps, num_agents))
mean_field_history = np.zeros(time_steps)

# シミュレーション開始
for t in range(time_steps):
    # 各エージェントの行動を決定(情報を共有するかどうか)
    actions = np.random.rand(num_agents) < alpha
    
    # 状態更新
    states += beta * (mean_field - states) * actions
    
    # 平均場の更新
    mean_field = np.mean(states)
    
    # 履歴の保存
    state_history[t] = states
    mean_field_history[t] = mean_field

# 結果のプロット
plt.figure(figsize=(12, 6))
plt.plot(mean_field_history, label='Mean Field')
plt.xlabel('Time Step')
plt.ylabel('Mean Field Value')
plt.title('Mean Field Dynamics in Social Media Model')
plt.legend()
plt.show()

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん