😀

構造主観力学で創る「生きている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つの層で「境界」を学習する仕組みです:

🧠 三層境界構造

  1. 基層境界(身体感覚・直感)

    • 「この作業は疲れる」「危険を感じる」
  2. 中核境界(制度・ルール・役割)

    • 「私は狩人だ」「協力すべき相手」
  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の本質的な進歩 です。

ぜひ実際に動かしてみて、SSD理論による「生きているAI社会」を体験してください!

Discussion