😀
構造主観力学で創る「生きているAI社会」- 場当たり的プログラミングを超えて
はじめに - AIが「考える」とはどういうことか
あなたがゲームやシミュレーションでNPCの行動を見て「なんか不自然だな...」と感じたことはありませんか?
従来のAI:
if 空腹 > 0.7:
狩猟する()
elif 負傷者がいる:
看護する()
else:
休息する()
このような場当たり的な条件分岐では、どれだけ複雑にしても「生きている」感じがしません。
構造主観力学(SSD理論)ベースのAI:
# NPCが「できること」を自分で評価
capabilities = self.evaluate_what_i_can_do(situation)
# 主観的境界による選択肢絞り込み
viable_actions = self.filter_by_my_boundaries(capabilities)
# 経験と学習に基づく統合判断
return self.decide_based_on_experience(viable_actions)
今回は、構造主観力学(SSD理論) を使って「AIが自分で考える」村シミュレーションシステムを作った話をします。
🎯 この記事で分かること
- 従来のAIと「境界学習AI」の根本的違い
- SSD理論による「AIができることを定義→行動多様性拡大」の仕組み
- 実際に動作する村シミュレーションシステムの実装
- GitHub: Village_Life_Simulation_System
- SSDエンジン: ssd_core_engine
SSD理論とは何か?
構造主観力学の核心アイデア
SSD(Structural Subjectivity Dynamics)理論は、AIが以下の3つの層で「境界」を学習する仕組みです:
🧠 三層境界構造
-
基層境界(身体感覚・直感)
- 「この作業は疲れる」「危険を感じる」
-
中核境界(制度・ルール・役割)
- 「私は狩人だ」「協力すべき相手」
-
上層境界(価値観・理念)
- 「村の繁栄が大切」「仲間を助けたい」
🔄 学習メカニズム
# 経験→境界形成→行動変化のサイクル
def update_boundary_from_experience(self, experience):
meaning_pressure = self.calculate_meaning_pressure(experience)
self.boundary.update_strength(
target_object=experience.target,
valence=meaning_pressure.positive_or_negative,
layer=experience.relevant_layer
)
# 境界が変化→次回の行動選択に影響
self.update_action_preferences()
従来AI vs SSD理論AI
従来型AI | SSD理論ベースAI |
---|---|
📝 開発者が全行動を事前定義 | 🧠 AIが経験から境界を学習 |
🔄 固定的な条件分岐 | 🌱 動的で進化する判断 |
🎯 予定調和的な行動 | ✨ 創発的で自然な行動 |
👥 画一的なNPC | 🎭 個性豊かなキャラクター |
村シミュレーションシステムの実装
システム全体像
integrated_village_simulation/
├── 🧠 ssd_core_engine/ # SSD理論エンジン
├── 🏘️ systems/ # 各機能システム
│ ├── hunting/ # 狩猟システム
│ ├── cooking/ # 料理システム
│ ├── caregiving/ # 看護システム
│ ├── carpentry/ # 大工システム
│ └── social/ # 社会・噂システム
├── 🎯 simulation/ # メインシミュレーション
└── 📖 docs/ # 実装ガイド
実際の動作例
🌅 ある朝の村の様子
=== 第3日目の朝 ===
💭 アキラ: "aggressiveな性格, 大工得意(1.3)" (元気)
💭 タケシ: "braveな性格, 看護得意(1.7)" (元気)
💭 ユウ: "competitiveな性格, 狩猟得意(2.0)" (元気)
💭 アカネ: "caringな性格, 料理得意(1.9)" (元気)
💭 ハナ: "gentleな性格, 狩猟得意(2.3)" (元気)
🧠 アキラの思考:
現在の状態: 体力充実(1.0)
判断要因: 積極的活動が可能, 積極的に行動したい
🧠 タケシの思考:
現在の状態: 体力充実(1.0)
判断要因: 積極的活動が可能, caregivingへの自信あり, 困難に立ち向かいたい
注目ポイント: 同じ状況でも、各NPCが 独自の境界認識 に基づいて異なる判断をしている
🧠 SSD境界学習の実際
>> アカネがハナに話す: 「ユウは狩りが上手いらしい」
🧠 SSD境界学習: アカネ↔ハナ (positive_rumor_sharing, 感情価:0.60)
🧠 SSD境界学習: アカネ↔ユウ (witnessed_success, 感情価:0.60)
[DEBUG] ユウの狩猟慣性更新: 0.050
🌟 SSD自信形成: ユウのhuntingへの自信境界強化 (1.47)
🏘️ 縄張り評価開始 - 価値:1.23, 安全感:0.103 閾値:0.3
ここがすごい:
- 噂を聞いただけで境界が変化
- 自信が向上→次回の行動選択に影響
- 社会的相互作用が個人の成長につながる
🏘️ 創発的な社会現象
🏗️ 【新規プロジェクト開始】
📋 革新的住居 (予定5日間)
👷 責任者: アキラ
🤝 助手: アカネ
🧠 SSD境界学習: アカネ↔アキラ (cooperative_construction, 感情価:0.10)
誰も「建築プロジェクトを始めろ」とプログラムしていないのに:
- アキラが建築技術への自信を獲得
- アカネが自発的に協力
- プロジェクトが自然に進行
これが 創発的社会現象 です。
核心技術:意味圧ベース学習
🔬 学習飽和メカニズム
# 意味圧の計算式: W = p·j - ρj²
def calculate_meaning_pressure(self, action_type, experience_count):
novelty_pressure = self.base_pressure * experience_count
saturation_effect = self.saturation_coefficient * (experience_count ** 2)
return novelty_pressure - saturation_effect
実際の効果:
- 初回: 大きな学習効果(新鮮な経験)
- 慣れた作業: 学習効果減少(飽和)
- 緊急時・革新時: 再び大きな学習効果
📊 学習曲線の例
狩猟スキルの成長パターン:
Day 1: +0.05 (初回の大きな学習)
Day 2: +0.04 (まだ新鮮)
Day 3: +0.03 (慣れ始める)
Day 4: +0.02 (飽和効果)
Day 5: +0.08 (緊急時→急成長!)
実装のポイント
1. 能力評価システム
def evaluate_capabilities(self, situation):
"""NPCが「何ができるか」を動的評価"""
capabilities = {}
for action in self.available_actions:
# 客観的スキル
skill_level = self.skills.get(action, 0.0)
# 主観的境界(自信)
confidence = self.boundary.get_strength(f"confidence_{action}")
# 状況適合性
situational_fit = self.evaluate_context_fit(action, situation)
# 統合評価
capabilities[action] = self.integrate_factors(
skill_level, confidence, situational_fit
)
return capabilities
2. 境界フィルタリング
def filter_by_boundaries(self, capabilities):
"""主観的境界による行動選択肢の絞り込み"""
viable_actions = {}
for action, capability in capabilities.items():
# 三層境界チェック
base_ok = self.boundary.check_base_layer(action) # 身体感覚
core_ok = self.boundary.check_core_layer(action) # 役割認識
upper_ok = self.boundary.check_upper_layer(action) # 価値観
if all([base_ok, core_ok, upper_ok]):
viable_actions[action] = capability
return viable_actions
3. 非線形組み合わせ効果
# 行動パターンの多様性計算
traditional_patterns = num_npcs * num_actions # 例: 5×4 = 20パターン
ssd_patterns = (num_npcs * num_actions *
boundary_variations * # 境界状態バリエーション
personality_types * # 性格の組み合わせ
situational_contexts * # 状況文脈
learning_states) # 学習段階
# 結果: 20 → 数千パターンの行動多様性!
実際に動かしてみよう
🚀 セットアップ
git clone https://github.com/HermannDegner/Village_Life_Simulation_System
cd integrated_village_simulation
# Python仮想環境セットアップ
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
# 依存関係インストール
pip install -r requirements.txt
🎮 実行方法
メインデモ(推奨)
python main_demo.py
→ 7日間の詳細なSSD理論境界学習プロセス観察
長期シミュレーション
python simulation/integrated_village_simulation.py
→ 14日間8人村での統合システム体験
個別システムテスト
python systems/hunting/hunting_system.py # 狩猟システム
python systems/cooking/cooking_integrated_village.py # 料理システム
🔍 観察ポイント
実行時に以下を注目してください:
1. 境界学習プロセス
🧠 SSD境界学習: タケシ↔ユウ (witnessed_success, 感情価:0.60)
🌟 SSD自信形成: ユウのhuntingへの自信境界強化 (1.47)
2. 創発的役割分担
=== 詳細スキル専門化分析 ===
調整専門家:
1位. ユウ: 0.331 (上級者)
3. 社会的相互作用
>> アキラがタケシに話す: 「ユウは狩りが上手いらしい」
🧠 SSD境界学習: アキラ↔タケシ (positive_rumor_sharing)
システムの特徴と価値
✨ 創発的現象の実現
🎭 個性の自然な分化
- 初日: 全員が似たような行動
- 7日後: 明確な個性と専門性を獲得
🤝 協力パターンの自然発生
- 建築プロジェクトでの自発的助手参加
- 負傷者への複数人同時看護
- 情報共有ネットワークの形成
🏆 リーダーシップの動的変化
- 状況に応じた自然なリーダー交代
- 専門性に基づく指導関係
🔬 理論的厳密性
📊 境界学習の可視化
🧠 タケシの主観的境界:
内側認識: 7オブジェクト
外側認識: 0オブジェクト
境界平均強度: 0.478
🤝 強い親和性:
活動「cooking」: 0.94
場所「村の中心」: 1.00
オブジェクト「confidence_cooking」: 1.00
🎯 整合性チェック機能
- ハードコーディングされた行動パターンの検出
- SSD理論との理論的整合性検証
- 創発的行動の真正性確認
🚀 拡張性と応用可能性
🎮 ゲーム開発
- より自然で魅力的なNPC
- プレイヤーとの動的な関係構築
- 予測不可能で興味深いストーリー展開
🤖 AI研究
- 自律エージェントシステム
- マルチエージェント協調
- 社会シミュレーション
📚 教育・研究
- AI学習の可視化
- 社会現象の理解
- 複雑系システムの研究
技術的深掘り
🧮 意味圧システムの数学的基盤
基本公式
W = p·j - ρj²
W: 学習効果(意味圧の強さ)
p: 基礎圧力係数
j: 経験回数
ρ: 飽和係数
実装例
class MeaningPressureCalculator:
def __init__(self, base_pressure=1.0, saturation_coef=0.1):
self.p = base_pressure
self.rho = saturation_coef
def calculate_pressure(self, experience_count):
return self.p * experience_count - self.rho * (experience_count ** 2)
def is_saturated(self, experience_count):
return self.calculate_pressure(experience_count) <= 0.01
🔄 境界更新メカニズム
三層独立更新
def update_three_layer_boundary(self, experience):
# 各層で独立した学習率
base_learning_rate = 0.1 # 身体感覚:速い学習
core_learning_rate = 0.05 # 制度認識:中程度
upper_learning_rate = 0.15 # 価値観:最も柔軟
# 層間相互作用も考慮
cross_layer_effects = self.calculate_layer_interactions(experience)
return self.apply_integrated_updates(
base_update, core_update, upper_update, cross_layer_effects
)
📈 多様性指標の測定
def calculate_diversity_metrics(self):
return {
'behavioral_entropy': self.calculate_behavioral_entropy(),
'role_differentiation': self.measure_role_specialization(),
'interaction_complexity': self.analyze_social_network_density(),
'emergence_authenticity': self.verify_non_hardcoded_behaviors()
}
今後の展望
🎯 短期目標
🔧 システム拡張
- 農業システム: 季節サイクルと長期計画
- 交易システム: 他村との経済的相互作用
- 文化システム: 伝統と革新のダイナミクス
📊 分析機能強化
- リアルタイム境界状態可視化
- 社会ネットワーク分析ツール
- 創発現象の定量的評価
🚀 長期ビジョン
🌐 スケーラビリティ
- 100人規模の村シミュレーション
- 複数村の相互作用システム
- 大規模社会シミュレーション
🤖 AI応用
- ゲームAIへの本格活用
- 教育用シミュレーションツール
- 社会科学研究プラットフォーム
🔬 理論発展
- SSD理論の数学的精緻化
- 他AI理論との融合研究
- 実世界応用への理論拡張
おわりに
🎉 SSD理論で実現できたこと
- 場当たり的プログラミングの排除: 理論的に整合した自律AIシステム
- 真の行動多様性: 「AIができることを定義→多様性拡大」の実現
- 創発的社会現象: 自然な役割分化と協力パターン
- 学習による進化: 経験に基づく継続的な個性発達
🌟 なぜこれが重要なのか
従来のAI開発では、開発者が「NPCにどう行動させるか」を事前に決めていました。
SSD理論では、NPCが「自分は何ができるのか」を学習し、その結果として多様な行動が創発します。
これは単なる技術的改良ではなく、AIの本質的な進歩 です。
- GitHub: Village_Life_Simulation_System
- SSDエンジン: ssd_core_engine
-
技術文書:
docs/SSD_Implementation_Guide.md
ぜひ実際に動かしてみて、SSD理論による「生きているAI社会」を体験してください!
Discussion