コンテンツにスキップ

EvoSpikeNetへのコネクトーム統合:生物学的接続トポロジーによる分散脳シミュレーションの高度化

[!NOTE] 最新の実装状況は 機能実装ステータス (Remaining Functionality) を参照してください。

  • 著者: Masahiro Aoki
  • ドキュメントID: MT2026-AI-02-001
  • ORCID ID: 0009-0007-9222-4181
  • 所属: Moonlight Technologies 株式会社
  • 作成日: 2026-03-18(最終更新: 2026-03-19 Phase E-0/E-1/E-2/E-3 完了に伴いモジュール図・実装状況・付録A を更新)
  • 分類: 研究・設計論文(内部)

要約

本稿は、生物学的神経接続地図(コネクトーム)から得られる接続トポロジー情報をEvoSpikeNet分散脳シミュレーションシステムへ統合することの意義・目的・設計方針を論じる。EvoSpikeNetは既にスパイキングニューラルネットワーク(SNN)を用いた皮質領域別機能特化ノード群を実装しているが、ノード内部のニューロン接続は生物学的根拠を持たないランダム初期化に依存している。コネクトーム統合(Phase E)によって、C. elegans全神経回路・Drosophila FlyWire全脳・マウス視覚皮質MICrONS・ヒト長距離接続HCPの4階層データを構造的制約として導入し、(1)生物学的忠実度の向上、(2)自発的回路形成の再現、(3)STDP可塑性の構造制約付き安定化、(4)Zenohルーティングの接続密度依存最適化という4つの効果を実現する。本文書では実装の意義・目的を詳述したうえで、モジュール構成図・データフロー・制御シーケンス・情報フローを論文形式で記述する。

キーワード: コネクトーム、スパイキングニューラルネットワーク、EvoSpikeNet、構造的可塑性、STDP、FlyWire、MICrONS、接続トポロジー、分散脳シミュレーション


目次

  1. はじめに:統合の意義と目的
  2. 背景:EvoSpikeNetとコネクトーム研究の現状
  3. 統合アーキテクチャ概要
  4. モジュール構成と相関図
  5. コネクトームデータ統合パイプライン
  6. データフロー設計
  7. 制御シーケンス
  8. 情報シーケンス:学習・適応サイクル
  9. 数理モデル
  10. 実装詳細:既存コンポーネントへの統合
  11. 検証戦略
  12. 考察:期待効果と課題
  13. 参照文献・関連ドキュメント

1. はじめに:統合の意義と目的

1.1 問題提起

EvoSpikeNetは2026年時点で、29ノードの分散脳アーキテクチャ、ChronoSpikeAttentionによる時系列スパイクアテンション機構、STDP/Meta-STDPに基づく可塑性、進化ゲノム(EvoGenome)による自己適応という先進的機能を実装している。しかし、各ノード内部のニューロン接続構造は生物学的根拠を持たないランダム初期化に依存しており、以下の根本的問題が残存する。

  1. 接続の非生物学性: 実際の脳では、ニューロン間の接続は特定のトポロジー(層状構造・モジュール性・スモールワールド性)を持つが、ランダム重み行列にはそれが存在しない。
  2. 興奮/抑制バランスの未制約: 生物学的脳では E/I 比が約 4:1 に制御されているが、現実装では制約がない。
  3. 電気生理学的整合性の欠如: シナプス遅延・伝導速度・シナプス強度の分布が実測値から乖離している。
  4. 可塑性の収束不安定: 構造的制約のない STDP は発散や過剰配線を引き起こすリスクがある。

1.2 統合の意義

コネクトーム研究は、生物の神経回路をニューロン解像度で完全に記述することを目指す神経科学の最前線分野である。1986年のC. elegans全神経回路解読(White ら)から始まり、2024年のDrosophila全脳コネクトーム(140,000ニューロン、FlyWire)、マウス皮質mmスケール解析(MICrONS, 65,000ニューロン)へと発展した。

これらのデータをEvoSpikeNetに統合することは次の意義を持つ。

意義の次元 内容
科学的妥当性 実際の神経回路構造に基づくシミュレーションは、神経科学的仮説の検証ツールとなる
工学的安定性 生物学的トポロジーは長い進化の歴史により最適化されており、収束安定性・効率性を提供する
創発的機能 接続構造それ自体が情報処理能力を規定する(ネットワーク理論の知見)
実証可能性 実測データとシミュレーション出力を比較・検証可能になる
特許・競争優位 生物学的コネクトームデータを活用した AI は差別化要因となる

1.3 統合の目的(5項目)

本Phase E統合の具体的目的を以下に定める。

  1. 目的1 — 構造的忠実度の確立 各EvoSpikeNetノードの内部ニューロン接続を、対応する生物種・皮質領域のコネクトームデータで初期化し、生物学的接続トポロジーを再現する。

  2. 目的2 — 構造的可塑性の実現 コネクトームデータを「変更不可の構造層」として、STDP/Meta-STDPを「変更可能な機能層」として分離し、構造制約付き安定学習を実現する。

  3. 目的3 — E/Iバランスの生物学的制御 FlyWireのニューロン種別分類(興奮性/抑制性)をEvoSpikeNetの重み初期化に反映し、生理的に正確なE/I比(約4:1)を維持する。

  4. 目的4 — Zenohルーティングの接続密度依存最適化 HCPマクロスケール接続データをノード間Zenoh通信の優先度設定に活用し、皮質間長距離結合の実測的トポグラフィを反映したルーティングを実現する。

  5. 目的5 — コネクトームデータ更新の自動反映 FlyWire・MICrONSなどは継続的にプルーフリーディングされ更新される。この更新をEvoSpikeNetパラメータに自動的に反映するパイプラインを構築する。


2. 背景:EvoSpikeNetとコネクトーム研究の現状

2.1 EvoSpikeNet現状

graph TB
    subgraph "EvoSpikeNet Phase D/E(実装済み)"
        direction TB
        PFC["PFC / Q-PFC<br/>前頭前野"]
        VIS["Visual<br/>V1-V5"]
        AUD["Auditory<br/>A1"]
        SPAT["Spatial<br/>頭頂葉"]
        MTR["Motor<br/>M1"]
        EPI["Episodic<br/>海馬"]
        SEM["Semantic<br/>側頭葉"]
        MINT["Integrator<br/>島皮質"]
        ZEN["Zenoh Pub/Sub<br/>(コネクトーム密度依存)"]

        WEIGHT["重み初期化<br/>✅ ConnectomeLIFLayer<br/>structural_mask 注入済み"]
        TOPO["接続トポロジー<br/>✅ C.elegans / FlyWire /<br/>MICrONS / HCP"]
        EI["E/Iバランス<br/>✅ validate_ei_ratio()"]
    end

2.2 コネクトーム研究の4階層

EvoSpikeNetへの統合に利用可能なコネクトームデータを、スケール別に4階層で整理する。

graph LR
    subgraph "ミクロスケール(シナプス解像度)"
        CE["C. elegans<br/>302ニューロン<br/>7,000シナプス<br/>(全数完全解読)"]
        FLY["Drosophila FlyWire<br/>140,000ニューロン<br/>5,000万シナプス<br/>(2024年全脳)"]
    end
    subgraph "メゾスケール(皮質柱)"
        MIC["MICrONS<br/>65,000ニューロン<br/>5億シナプス<br/>(マウスV1 1mm³)"]
    end
    subgraph "マクロスケール(長距離結合)"
        HCP["HCP<br/>全脳白質線維束<br/>拡散テンソル<br/>(ヒト)"]
    end

    CE -->|プロトタイプ検証| EVO["EvoSpikeNet<br/>Phase E"]
    FLY -->|感覚処理ノード| EVO
    MIC -->|皮質層構造| EVO
    HCP -->|Zenohルーティング| EVO

2.3 EvoSpikeNet × コネクトーム対応表

EvoSpikeNetノード 皮質対応 主利用データ スケール
Visual (V1-V5) 後頭皮質 MICrONS Layer 4→2/3, FlyWire視覚葉 メゾ+ミクロ
Auditory (A1) 側頭皮質 FlyWire Johnston器官回路 ミクロ
Spatial (頭頂葉) 後頭頭頂皮質 MICrONS 全皮質接続行列 メゾ
Motor (M1) 運動皮質 MICrONS M1部分コネクト メゾ
PFC / Q-PFC dlPFC/OFC MICrONS 皮質柱+HCP メゾ+マクロ
Episodic (海馬) CA1/CA3/DG C. elegans自己連合回路(proxy)+HCP ミクロ+マクロ
Semantic 側頭葉内側 FlyWire キノコ体 ミクロ
Integrator 帯状回/島皮質 MICrONS 長距離軸索投射 メゾ
ノード間接続 皮質間白質 HCP S1200 拡散テンソル マクロ

3. 統合アーキテクチャ概要

3.1 全体アーキテクチャ図

コネクトーム統合後のEvoSpikeNetシステム全体像を示す。

flowchart TB
    subgraph "コネクトームデータ層"
        CE_DB["C. elegans DB<br/>WormAtlas JSON"]
        FLY_DB["FlyWire DB<br/>CAVE API"]
        MIC_DB["MICrONS DB<br/>CAVEclient"]
        HCP_DB["HCP S1200<br/>FSL/MRtrix3"]
    end

    subgraph "コネクトームローダー層"
        LOADER["connectome_loader.py<br/>スパースCOO変換"]
        SYNC["sync_connectome.py<br/>自動更新パイプライン"]
        CONFIG["connectome_config.yaml<br/>ソース管理"]
    end

    subgraph "構造層(変更不可)"
        MASK_V["Visual 構造マスク<br/>structural_mask[V1]"]
        MASK_A["Auditory 構造マスク<br/>structural_mask[A1]"]
        MASK_M["Motor 構造マスク<br/>structural_mask[M1]"]
        MASK_E["Episodic 構造マスク<br/>structural_mask[HPC]"]
        ZENOH_TOPO["Zenoh接続優先度<br/>HCP由来重み"]
    end

    subgraph "機能層(STDP可変)"
        LIF_V["LIFNeuronLayer<br/>Visual Node<br/>W = mask × scalar"]
        LIF_A["LIFNeuronLayer<br/>Auditory Node"]
        LIF_M["LIFNeuronLayer<br/>Motor Node"]
        LIF_E["LIFNeuronLayer<br/>Episodic Node"]
    end

    subgraph "制御層"
        PFC_C["PFC / Q-PFC<br/>ExecutiveControlEngine"]
        STDP_C["Meta-STDP<br/>構造制約付き可塑性"]
        EVO_C["EvoGenome<br/>構造マスク進化(Phase E+)"]
    end

    subgraph "通信層"
        ZENOH_M["Zenoh Mesh<br/>コネクトーム優先ルーティング"]
        PTP_M["PTP 時刻同期"]
    end

    CE_DB --> LOADER
    FLY_DB --> LOADER
    MIC_DB --> LOADER
    HCP_DB --> LOADER
    LOADER --> MASK_V & MASK_A & MASK_M & MASK_E & ZENOH_TOPO
    SYNC -->|週次差分| LOADER

    MASK_V --> LIF_V
    MASK_A --> LIF_A
    MASK_M --> LIF_M
    MASK_E --> LIF_E

    LIF_V & LIF_A & LIF_M & LIF_E --> ZENOH_M
    ZENOH_TOPO --> ZENOH_M
    ZENOH_M --> PFC_C
    PFC_C --> STDP_C --> LIF_V & LIF_A & LIF_M & LIF_E
    EVO_C -.->|Phase E+: 構造マスク更新| MASK_V & MASK_A & MASK_M & MASK_E
    PTP_M --- ZENOH_M

3.2 三層モデルの概念図

コネクトーム統合の核心概念である「三層分離モデル」を示す。

graph TD
    subgraph "Layer 1: 構造層 Structural Layer"
        S1["コネクトーム由来の隣接行列 A∈{0,1}^{N×N}"]
        S2["E/Iニューロン種別マスク"]
        S3["シナプス遅延テーブル delay[i,j]"]
        S1 --- S2 --- S3
    end

    subgraph "Layer 2: 機能層 Functional Layer"
        F1["STDP重みスカラー w_scalar"]
        F2["Meta-STDPによる可塑性更新"]
        F3["ChronoSpikeAttentionとの統合"]
        F1 --- F2 --- F3
    end

    subgraph "Layer 3: 進化層 Evolutionary Layer"
        E1["EvoGenomeによる構造マスク共進化"]
        E2["プルーニング率の進化的最適化"]
        E3["スケール間適応"]
        E1 --- E2 --- E3
    end

    S1 -->|"W_ij = A_ij × w_scalar"| F1
    F2 -->|"ΔSTDP × A_ij のみ更新"| F1
    E1 -.->|"Phase E+ のみ"| S1

4. モジュール構成と相関図

4.1 ソフトウェアモジュール構成図

実装状況(2026-03-19 更新): Phase E-0/E-1/E-2/E-3 完了。✅ マーク付きモジュールは実装済み。⬜ は Phase E-3-5(HCP DUC 取得)のみ未着手。

graph LR
    subgraph "新規モジュール(Phase E-1/E-2/E-3 ✅ 実装済み)"
        CL["✅ evospikenet/<br/>connectome_loader.py<br/>━━━━━━━━━━<br/>load_json()<br/>load_npz() / save_npz()<br/>stratified_sample() (F-1)<br/>spectral_coarsen() (F-2)<br/>load() / read_etag()<br/>write_etag()"]
        NM["✅ evospikenet/connectome/<br/>node_mapping.py<br/>━━━━━━━━━━<br/>get_source_for_node()<br/>build_manifest()<br/>apply_to_layer()"]
        DB["✅ evospikenet/connectome/<br/>delay_buffer.py<br/>━━━━━━━━━━<br/>SparseDelayBuffer<br/>step() / step_int16()<br/>from_connectome_data()"]
        ZP["✅ evospikenet/<br/>zenoh_connectome_publisher.py<br/>━━━━━━━━━━<br/>ConnectomeMetadataPublisher<br/>build_payload() / publish()"]
        SC["✅ scripts/<br/>sync_connectome.py<br/>━━━━━━━━━━<br/>apply_delta()<br/>apply_delta_with_validation()<br/>sync_connectome()<br/>fetch_cave_synapses_with_retry()"]
        BR["✅ evospikenet/<br/>brain_routing.py<br/>━━━━━━━━━━<br/>HCPDelayRouter<br/>compute_delay_matrix()<br/>optimize_routing_delays()<br/>build_hcp_routing_table()"]
        ANM["✅ scripts/<br/>auto_node_mapper.py<br/>━━━━━━━━━━<br/>map_connectome()<br/>generate_manifest()<br/>MappingResult / NodeMappingEntry"]
        CC["✅ config/<br/>connectome_config.yaml<br/>━━━━━━━━━━<br/>sources:<br/>node_mapping:<br/>update_schedule:"]
    end

    subgraph "既存モジュール(拡張済み ✅)"
        CORE["✅ evospikenet/core.py<br/>━━━━━━━━━━<br/>ConnectomeLIFLayer<br/>structural_mask ✅<br/>attach_sparse_delay_buffer ✅<br/>validate_ei_ratio ✅<br/>SNNModel delay routing ✅"]
        NT["evospikenet/<br/>node_types.py<br/>━━━━━━━━━━<br/>NodeDescriptor<br/>+ connectome_meta ←NEW"]
        FC["✅ evospikenet/<br/>forgetting_controller.py<br/>━━━━━━━━━━<br/>prune_threshold<br/>compute_connectome_density ✅"]
        LTM["evospikenet/<br/>long_term_memory.py<br/>━━━━━━━━━━<br/>weight_normalize<br/>← connectome_stats ←NEW"]
        SP["evospikenet/<br/>spatial_processing.py<br/>━━━━━━━━━━<br/>SpatialProcessor<br/>+ where/what masks ←NEW"]
    end

    subgraph "インフラモジュール(設定拡張)"
        ZR["Zenoh Router<br/>━━━━━━━━━━<br/>routing_table<br/>← connectome_priority ←NEW"]
        PTP_M["PTP Sync<br/>(変更なし)"]
    end

    CL -->|sparse tensor| CORE
    CL -->|ei_labels| CORE
    CL -->|delay_matrix| CORE
    CL -->|hcp_weights| ZR
    CC --> CL & SC & ANM
    SC -->|weight_delta JSON| CORE
    BR -->|delay routing| ZR
    BR -->|delay_matrix| CORE
    ANM -->|node manifest| NM
    NT -->|connectome_meta| ZR
    FC -.->|prune使用| CORE
    LTM -.->|stats参照| CORE
    SP -.->|mask適用| CORE

4.2 ノード間相関図(コネクトーム統合後)

HCPデータに基づくノード間接続強度(矢印の太さ=接続密度)を示す。

graph TD
    subgraph "センシング・エンコーディング"
        CAM["カメラ"]
        MIC_S["マイク"]
        VIS["Visual Node<br/>[MICrONS V1]"]
        AUD["Auditory Node<br/>[FlyWire A1]"]
    end

    subgraph "認知・言語"
        SLM["Language SLM<br/>[HCP: Broca-Wernicke]"]
        SPAT["Spatial Node<br/>[MICrONS 頭頂葉]"]
        RAG["RAG Index"]
    end

    subgraph "実行制御"
        PFC_N["PFC / Q-PFC<br/>[MICrONS dlPFC]"]
    end

    subgraph "記憶"
        EPI_N["Episodic Memory<br/>[C.elegans CA3 proxy]"]
        SEM_N["Semantic Memory<br/>[FlyWire キノコ体]"]
        MINT_N["Memory Integrator<br/>[MICrONS ACC]"]
    end

    subgraph "運動出力"
        MTR_N["Motor Node<br/>[MICrONS M1]"]
    end

    CAM -->|"HCP強度: 0.82"| VIS
    MIC_S -->|"HCP強度: 0.79"| AUD
    VIS ==>|"HCP: 0.91 (強)"| SPAT
    VIS -->|"HCP: 0.74"| SLM
    AUD -->|"HCP: 0.68"| SLM
    SPAT ==>|"HCP: 0.88 (強)"| PFC_N
    SLM ==>|"HCP: 0.85 (強)"| PFC_N
    RAG --> PFC_N
    PFC_N ==>|"HCP: 0.93 (最強)"| EPI_N
    PFC_N -->|"HCP: 0.71"| SEM_N
    EPI_N --> MINT_N
    SEM_N --> MINT_N
    MINT_N -->|"フィードバック"| PFC_N
    PFC_N ==>|"HCP: 0.86 (強)"| MTR_N

5. コネクトームデータ統合パイプライン

5.1 データ取得・変換パイプライン

flowchart LR
    subgraph "データソース"
        DS1["WormAtlas JSON<br/>C. elegans"]
        DS2["CAVE API<br/>FlyWire"]
        DS3["CAVEclient API<br/>MICrONS"]
        DS4["HCP S1200<br/>FSL tractography"]
    end

    subgraph "取得・前処理"
        A1["URL認証<br/>(環境変数)"]
        A2["ニューロンIDリスト<br/>フィルタリング"]
        A3["エッジリスト取得<br/>(pre_id, post_id, strength)"]
        A4["E/I種別タグ付け<br/>(exc/inh分類)"]
    end

    subgraph "変換処理"
        B1["座標正規化<br/>(ノード内ニューロンIDへ再マッピング)"]
        B2["強度スケーリング<br/>(α=0.1)"]
        B3["COOスパーステンソル生成<br/>torch.sparse_coo_tensor()"]
        B4["遅延行列計算<br/>距離÷伝導速度"]
    end

    subgraph "出力"
        C1["structural_mask<br/>bool sparse tensor"]
        C2["weight_init<br/>float sparse tensor"]
        C3["delay_buffer<br/>float dense tensor"]
        C4["ei_label_mask<br/>int8 tensor (+1/-1)"]
    end

    DS1 & DS2 & DS3 & DS4 --> A1 --> A2 --> A3 --> A4
    A4 --> B1 --> B2 --> B3 --> B4
    B3 --> C1 & C2
    B4 --> C3
    A4 --> C4

5.2 自動更新パイプライン(sync_connectome.py)

flowchart TD
    TRIGGER["週次cronジョブ<br/>毎週月曜 02:00 JST"]

    subgraph "差分検知"
        V_CHECK["CAVEclient.materialize<br/>バージョン確認"]
        DIFF["バージョン差分計算<br/>added / removed synapse"]
    end

    subgraph "デルタ処理"
        DELTA_COO["差分COO行列生成"]
        VALIDATE["E/Iバランス検証<br/>|R_new - 4.2| < 0.5?"]
        ROLLBACK["前バージョンへ<br/>ロールバック"]
    end

    subgraph "適用"
        APPLY["apply_weight_delta()<br/>(Phase D インフラ流用)"]
        BROADCAST["Zenoh経由で対象ノードへ<br/>配信"]
    end

    subgraph "検証"
        TEST["pytest:<br/>test_ei_balance()<br/>test_spike_rate()<br/>test_connectome_topology()"]
        REPORT["検証レポート生成<br/>(Slack通知)"]
    end

    TRIGGER --> V_CHECK --> DIFF
    DIFF -->|差分あり| DELTA_COO --> VALIDATE
    DIFF -->|差分なし| SKIP["スキップ(ログのみ)"]
    VALIDATE -->|OK| APPLY --> BROADCAST --> TEST --> REPORT
    VALIDATE -->|NG| ROLLBACK --> REPORT

6. データフロー設計

6.1 推論時データフロー(コネクトーム統合後)

flowchart LR
    subgraph "入力層"
        CAM_IN["カメラ入力"]
        MIC_IN["マイク入力"]
    end

    subgraph "スパイクエンコーディング"
        TAS_ENC["TAS符号化<br/>(レート符号化)"]
        DOG["網膜DoGフィルタ<br/>V1ガボール"]
        GAMMA["蝸牛ガンマトーン<br/>フィルタ"]
    end

    subgraph "構造制約付きSNN処理"
        LIF_V2["LIF Layer(Visual)<br/>W = A_V × w_scalar<br/>delay = delay_V"]
        LIF_A2["LIF Layer(Auditory)<br/>W = A_A × w_scalar"]
        CHRONO["ChronoSpikeAttention<br/>時系列スパイク注意"]
    end

    subgraph "統合・制御"
        PFC_PROC["PFC処理<br/>route_probs計算<br/>認知エントロピーH_t"]
        QPFC["Q-PFC<br/>量子変調係数"]
    end

    subgraph "記憶アクセス"
        EPI_PROC["Episodic Memory<br/>(C. elegans構造)"]
        SEM_PROC["Semantic Memory<br/>(FlyWireキノコ体)"]
    end

    subgraph "出力"
        MTR_OUT["Motor Node<br/>運動指令出力"]
        SPEECH_OUT["Speech Node<br/>音声出力"]
    end

    CAM_IN --> DOG --> TAS_ENC --> LIF_V2
    MIC_IN --> GAMMA --> TAS_ENC --> LIF_A2
    LIF_V2 -->|"スパイク列 + タイムスタンプ(PTP)"| CHRONO
    LIF_A2 -->|スパイク列| CHRONO
    CHRONO -->|注意重み付きスパイク| PFC_PROC
    PFC_PROC <--> EPI_PROC
    PFC_PROC <--> SEM_PROC
    QPFC <-->|フィードバック| PFC_PROC
    PFC_PROC -->|運動命令| MTR_OUT
    PFC_PROC -->|言語命令| SPEECH_OUT

6.2 学習時データフロー(STDP + コネクトーム制約)

flowchart TB
    subgraph "スパイク発生"
        PRE["前シナプスニューロン発火<br/>時刻 t_pre"]
        POST["後シナプスニューロン発火<br/>時刻 t_post"]
    end

    subgraph "STDP計算"
        DT["Δt = t_post - t_pre"]
        STDP_CALC["STDP則:<br/>Δw = A+ exp(-Δt/τ+) if Δt>0<br/>Δw = -A- exp(Δt/τ-) if Δt≤0"]
    end

    subgraph "構造制約適用"
        MASK_CHECK["structural_mask[i,j] ∈ {0,1}"]
        MASKED_DW["ΔW_ij = A_ij × ΔSTDP<br/>(マスク外は更新禁止)"]
    end

    subgraph "E/Iバランス監視"
        EI_MON["E/Iバランス監視<br/>R = N_E/N_I"]
        EI_CLIP["重みクリップ:<br/>W_I ≤ 0, W_E ≥ 0"]
    end

    subgraph "Meta-STDP最適化"
        META["L_meta = L_task + λ_E×E + λ_S×Var(r)"]
        APPLY_W["apply_weight_delta() via Zenoh"]
    end

    PRE & POST --> DT --> STDP_CALC
    STDP_CALC --> MASK_CHECK --> MASKED_DW
    MASKED_DW --> EI_MON --> EI_CLIP
    EI_CLIP --> META --> APPLY_W --> PRE

7. 制御シーケンス

7.1 システム初期化シーケンス(コネクトーム統合後)

sequenceDiagram
    participant MAIN as main.py<br/>エントリポイント
    participant CONFIG as connectome_config.yaml
    participant LOADER as connectome_loader.py
    participant CAVE as CAVE API<br/>(外部)
    participant HCP as HCP Data<br/>(外部)
    participant CORE as LIFNeuronLayer<br/>core.py
    participant NODE as DistributedBrainNode
    participant ZENOH as Zenoh Router

    Note over MAIN,ZENOH: Phase E システム起動シーケンス

    MAIN->>CONFIG: load_config()
    CONFIG-->>MAIN: sources, node_mapping, version

    MAIN->>LOADER: initialize(config)

    par ミクロスケール取得(並列)
        LOADER->>CAVE: synapse_query(flywire_public)
        CAVE-->>LOADER: syn_df (pre_id, post_id, strength, type)
        LOADER->>LOADER: to_sparse_coo(syn_df, ei_labels)
    and マクロスケール取得(並列)
        LOADER->>HCP: load_tractography(S1200)
        HCP-->>LOADER: connectivity_matrix[29×29]
        LOADER->>LOADER: normalize_hcp_weights()
    end

    LOADER-->>MAIN: ConnectomeBundle{mask, weight, delay, ei_mask, hcp}

    loop 各ノードタイプ
        MAIN->>CORE: LIFNeuronLayer(connectome_topology=bundle[node_type])
        CORE->>CORE: structural_mask = bundle.mask.bool()
        CORE->>CORE: weight = nn.Parameter(bundle.weight * α)
        CORE->>CORE: delay_buffer = bundle.delay
        CORE->>CORE: ei_mask = bundle.ei_mask
        CORE-->>MAIN: 初期化完了
    end

    MAIN->>NODE: DistributedBrainNode.deploy(lif_layers)
    NODE->>ZENOH: advertise(connectome_meta=bundle.hcp_meta)
    ZENOH->>ZENOH: update_routing_table(hcp_weights)
    ZENOH-->>NODE: 優先ルート設定完了

    Note over MAIN,ZENOH: 起動完了 — コネクトーム制約付きSNN稼働開始

7.2 PFCによるコネクトームメタデータ活用制御シーケンス

sequenceDiagram
    participant EXEC as ExecutiveControlEngine<br/>PFC
    participant ZENOH as Zenoh Mesh
    participant VIS_N as Visual Node<br/>[MICrONS]
    participant EPI_N as Episodic Node<br/>[C.elegans]
    participant STDP_ENG as Meta-STDP Engine
    participant FC as ForgettingController

    Note over EXEC,FC: 通常推論サイクル(50msループ)

    EXEC->>ZENOH: subscribe("brain/*/spikes")
    ZENOH-->>EXEC: spike_burst[visual, t_ptp=T]
    ZENOH-->>EXEC: spike_burst[auditory, t_ptp=T]

    EXEC->>EXEC: compute_route_probs(spikes)
    EXEC->>EXEC: compute_H_t (認知エントロピー)

    alt H_t > H_threshold(高エントロピー = 新規事態)
        EXEC->>STDP_ENG: increase_plasticity(A+, A-)
        Note right of STDP_ENG: 構造マスク制約内で<br/>STDP強化
    else H_t ≤ H_threshold(低エントロピー = 習熟)
        EXEC->>STDP_ENG: decay_plasticity()
        EXEC->>FC: prune_weak_connections(threshold=connectome_density×0.1)
        Note right of FC: コネクトーム密度統計に<br/>基づく閾値でプルーニング
    end

    EXEC->>VIS_N: publish("brain/visual/attention", roi_mask)
    VIS_N->>VIS_N: apply_attention(roi_mask, structural_mask)
    VIS_N->>ZENOH: publish("brain/visual/spikes", filtered_spikes)

    EXEC->>EPI_N: publish("brain/episodic/encode", experience)
    EPI_N->>EPI_N: CA3_autoassociation(experience, elegans_mask)
    EPI_N-->>EXEC: memory_index

    EXEC->>STDP_ENG: apply_weight_delta(delta_int16)
    STDP_ENG->>ZENOH: broadcast_weight_update()

8. 情報シーケンス:学習・適応サイクル

8.1 コネクトームデータ更新シーケンス(週次)

sequenceDiagram
    participant CRON as cronジョブ
    participant SYNC as sync_connectome.py
    participant CAVE as CAVE API
    participant LOADER as connectome_loader.py
    participant TEST as pytest suite
    participant NODES as DistributedBrainNodes
    participant ZENOH as Zenoh Mesh
    participant ALERT as 通知システム

    Note over CRON,ALERT: 毎週月曜 02:00 JST — 自動更新サイクル

    CRON->>SYNC: trigger()

    SYNC->>CAVE: get_version()
    CAVE-->>SYNC: version=v789

    SYNC->>SYNC: compare(current_version=v788, new=v789)

    alt 差分あり
        SYNC->>CAVE: get_diff(v788→v789)
        CAVE-->>SYNC: added_synapses[], removed_synapses[]

        SYNC->>LOADER: compute_delta_coo(added, removed)
        LOADER-->>SYNC: delta_tensor (COO形式)

        SYNC->>SYNC: validate_ei_balance(delta)

        alt E/Iバランス OK(|R - 4.2| < 0.5)
            SYNC->>NODES: apply_weight_delta(delta_int16)
            NODES->>ZENOH: broadcast weights
            ZENOH-->>NODES: 確認応答

            SYNC->>TEST: run_regression()
            TEST-->>SYNC: results{spike_rate, ei_ratio, topology_match}

            alt テスト合格
                SYNC->>SYNC: commit_version(v789)
                SYNC->>ALERT: notify("✅ Connectome v789 適用完了")
            else テスト失敗
                SYNC->>NODES: rollback(v788)
                SYNC->>ALERT: notify("❌ テスト失敗: ロールバック v788")
            end

        else E/Iバランス NG
            SYNC->>ALERT: notify("⚠️ E/Iバランス異常: 更新スキップ")
        end

    else 差分なし
        SYNC->>ALERT: notify("ℹ️ コネクトームデータ変更なし (v788)")
    end

8.2 EvoGenome × コネクトーム共進化シーケンス(Phase E+)

sequenceDiagram
    participant EVO as 進化エンジン<br/>EvoGenome
    participant EVAL as 評価関数
    participant MASK as structural_mask<br/>(変異対象)
    participant CONN as connectome_loader.py<br/>(参照)
    participant LIF as LIFNeuronLayer
    participant PHYS as 生理的制約チェッカー

    Note over EVO,PHYS: Phase E+ — 構造マスクの進化的探索

    EVO->>EVO: generate_genome_population(n=100)

    loop 世代 g = 1..N
        EVO->>MASK: apply_genome(genome_g)
        Note right of MASK: ゲノムが接続のON/OFFを制御<br/>ただしコネクトーム範囲内に制限

        MASK->>CONN: validate_within_connectome_bounds()
        CONN-->>MASK: 境界外接続は強制OFF

        MASK->>PHYS: check_ei_balance()
        PHYS-->>MASK: R = N_E / N_I

        alt R ∈ [3.5, 5.0](生理的範囲)
            MASK->>LIF: update_structural_mask()
            LIF->>EVAL: run_simulation(T=1000ms)
            EVAL-->>EVO: fitness{task_score, spike_efficiency, bio_fidelity}
        else 生理的範囲外
            EVAL-->>EVO: fitness=0(ペナルティ)
        end

        EVO->>EVO: select_top_k(fitness)
        EVO->>EVO: crossover_and_mutate()
    end

    EVO->>EVO: deploy_best_genome()
    EVO->>LIF: apply final structural_mask
    Note over EVO,PHYS: 生物学的制約を満たす最適接続構造が収束

9. 数理モデル

9.1 構造制約付き重み初期化

ノード \(u\) 内のニューロン集団 \(\mathcal{N}_u = \{1, \ldots, N\}\) について、コネクトームデータから得られる隣接行列 \(\mathbf{A}^{(u)} \in \{0,1\}^{N \times N}\) と接続強度 \(\mathbf{S}^{(u)} \in \mathbb{R}_{\geq 0}^{N \times N}\) を定義する。

初期重み行列 \(\mathbf{W}^{(u,0)}\) は以下で計算される:

\[W_{ij}^{(u,0)} = \begin{cases} s_{ij}^{(u)} \cdot \alpha \cdot e_{ij} & \text{if } A_{ij}^{(u)} = 1 \\ 0 & \text{if } A_{ij}^{(u)} = 0 \end{cases}\]

ここで: - \(s_{ij}^{(u)}\):コネクトームデータの接続強度(正規化済み) - \(\alpha = 0.1\):スケーリング係数 - \(e_{ij} \in \{+1, -1\}\):E/Iラベル(+1: 興奮性, -1: 抑制性)

9.2 構造制約付きSTDP更新則

\[\Delta W_{ij}^{(u)} = A_{ij}^{(u)} \cdot \Delta_{\text{STDP}}(t_i, t_j)\]
\[\Delta_{\text{STDP}}(t_i, t_j) = \begin{cases} A_+ \exp\!\left(-\dfrac{t_j - t_i}{\tau_+}\right) & t_j > t_i \\ -A_- \exp\!\left(\dfrac{t_j - t_i}{\tau_-}\right) & t_j \leq t_i \end{cases}\]

構造マスク \(A_{ij}^{(u)} = 0\) の場合は接続なし(更新禁止)。

9.3 E/Iバランス制約

ニューロン集団の興奮性/抑制性比率を制約する:

\[\frac{N_E^{(u)}}{N_I^{(u)}} = R_{\text{connectome}}^{(u)}, \quad R_{\text{MICrONS}} \approx 4.2\]

重みの符号制約:

\[W_{ij}^{(u)} \geq 0 \text{ if } e_{ij} = +1 \quad (\text{興奮性})$$ $$W_{ij}^{(u)} \leq 0 \text{ if } e_{ij} = -1 \quad (\text{抑制性})\]

9.4 シナプス遅延モデル

シナプス遅延 \(d_{ij}\) を軸索長 \(\ell_{ij}\) と伝導速度 \(v\) から計算する:

\[d_{ij} = \frac{\ell_{ij}}{v} + \delta_{\text{syn}}\]

ここで \(v \approx 1\text{–}10\ \text{m/s}\)(無髄/有髄に依存)、\(\delta_{\text{syn}} \approx 0.5\text{–}2\ \text{ms}\)(シナプス遅延)。

9.5 Zenohルーティング優先度(HCP由来)

ノード \(u, v\) 間のZenohルーティング優先度 \(p_{uv}\) をHCP接続強度 \(c_{uv}^{\text{HCP}}\) から定義する:

\[p_{uv} = \frac{c_{uv}^{\text{HCP}}}{\displaystyle\sum_{w \neq u} c_{uw}^{\text{HCP}}}\]

\(p_{uv}\) が大きいノードペア間には低遅延・高帯域幅のZenohパスが割り当てられる。

9.6 Meta-STDP目的関数(コネクトーム制約付き)

\[\mathcal{L}_{\text{meta}} = \mathcal{L}_{\text{task}} + \lambda_E \cdot E + \lambda_S \cdot \text{Var}(r) + \lambda_C \cdot \mathcal{D}_{\text{KL}}\!\left(\mathbf{W}_{\text{sparse}} \| \mathbf{W}_{\text{connectome}}\right)\]

追加項 \(\lambda_C \cdot \mathcal{D}_{\text{KL}}(\cdot)\) はKL正則化項であり、学習後の重み分布がコネクトームデータの分布から逸脱することを抑制する(\(\lambda_C\) は典型的に \(0.01\))。


10. 実装詳細:既存コンポーネントへの統合

10.1 evospikenet/core.py への変更

LIFNeuronLayer に以下の引数・属性を追加する(後方互換性維持):

class LIFNeuronLayer(nn.Module):
    def __init__(
        self,
        n_in: int,
        n_out: int,
        leak: int = 230,
        threshold: int = 1024,
        reset_potential: int = 0,
        # --- Phase E: 新規引数 ---
        connectome_topology: Optional[torch.sparse.FloatTensor] = None,
        ei_mask: Optional[torch.Tensor] = None,
        delay_buffer: Optional[torch.Tensor] = None,
    ):
        super().__init__()
        self.leak = leak
        self.threshold = threshold
        self.reset_potential = reset_potential

        if connectome_topology is not None:
            # 構造マスク(勾配不要)
            self.register_buffer("structural_mask", connectome_topology.bool())
            # コネクトーム強度で重み初期化
            dense = connectome_topology.to_dense()
            if ei_mask is not None:
                dense = dense * ei_mask.float()  # E/Iラベル適用
            self.weight = nn.Parameter(dense * 0.1)
        else:
            self.structural_mask = None
            self.weight = nn.Parameter(torch.randn(n_out, n_in) * 0.01)

        # E/Iマスク(重みの符号制約に使用)
        self.register_buffer("ei_mask", ei_mask)
        # シナプス遅延バッファ(ms単位)
        self.register_buffer("delay_buffer", delay_buffer)

    def forward(self, x: torch.Tensor) -> torch.Tensor:
        # 構造マスク適用(接続なし箇所はゼロ)
        if self.structural_mask is not None:
            effective_weight = self.weight * self.structural_mask.float()
        else:
            effective_weight = self.weight

        # E/I符号制約
        if self.ei_mask is not None:
            effective_weight = torch.where(
                self.ei_mask > 0,
                effective_weight.clamp(min=0),   # 興奮性: ≥0
                effective_weight.clamp(max=0),   # 抑制性: ≤0
            )

        return F.linear(x.float(), effective_weight)

10.2 evospikenet/node_types.py への変更

NodeDescriptor にコネクトームメタデータフィールドを追加:

@dataclass
class ConnectomeMeta:
    source: str               # "MICrONS-2023", "FlyWire-2024", etc.
    avg_indegree: float
    avg_outdegree: float
    ei_ratio: float           # 典型値: 4.2
    preferred_upstream: List[str]    # HCP由来の上流ノード優先順
    preferred_downstream: List[str]  # HCP由来の下流ノード優先順
    version: str              # "v789"

@dataclass 
class NodeDescriptor:
    node_type: str
    rank: int
    cortical_region: str
    # --- Phase E: 新規フィールド ---
    connectome_meta: Optional[ConnectomeMeta] = None

10.3 config/connectome_config.yaml(新規)

# config/connectome_config.yaml
# コネクトームデータソース設定
# 認証情報は環境変数で管理(絶対にコミットしないこと)

version: "2026-03-18"
update_schedule: "0 2 * * 1"  # 毎週月曜 02:00 JST

sources:
  c_elegans:
    type: wormatlas_json
    url: "https://wormwiring.org/si/neural_connectome.json"
    cache_path: "data/connectome/c_elegans.json"
    node_mapping:
      memory_spike: "CA3_proxy"   # C.elegans自己連合回路をCA3のプロキシに利用

  flywire:
    type: cave_api
    dataset: "flywire_public"
    auth_token_env: "CAVE_AUTH_TOKEN"  # 環境変数
    node_mapping:
      visual: ["LC4", "T4", "T5", "medulla_columns"]
      auditory: ["JO-A", "JO-B", "JO-C"]
      semantic: ["mushroom_body_KC"]

  microns:
    type: cave_api
    dataset: "minnie65_public"
    auth_token_env: "MICRONS_AUTH_TOKEN"
    node_mapping:
      visual: ["L4", "L23", "L5"]
      spatial: ["posterior_parietal"]
      motor: ["M1_excitatory"]
      pfc: ["dlPFC_column"]

  hcp:
    type: tractography
    data_path: "data/connectome/hcp_s1200_connectivity.npz"
    atlas: "HCP_MMP1.0"
    # ノード間接続行列(29×29)をZenohルーティングに使用

validation:
  ei_ratio_tolerance: 0.5    # |R - 4.2| の許容範囲
  min_synapse_count: 100     # ノードあたり最低シナプス数
  spike_rate_range: [0.01, 0.3]  # 正常スパイク率範囲

11. 検証戦略

11.1 検証の4階層

graph TD
    subgraph "L1: 単体テスト"
        U1["test_structural_mask_init()<br/>マスク形状・スパース性"]
        U2["test_ei_constraint()<br/>重み符号制約"]
        U3["test_delay_buffer_shape()<br/>遅延バッファ次元"]
    end
    subgraph "L2: 統合テスト"
        I1["test_connectome_stdp()<br/>マスク外更新ゼロ確認"]
        I2["test_ei_balance_maintained()<br/>学習後もR≈4.2"]
        I3["test_zenoh_priority_routing()<br/>HCP優先ルート確認"]
    end
    subgraph "L3: 生理学的検証"
        P1["test_spontaneous_activity()<br/>自発発火率 1-5Hz"]
        P2["test_gamma_oscillation()<br/>30-80Hz γ振動"]
        P3["test_place_cell_formation()<br/>海馬場所細胞形成"]
    end
    subgraph "L4: システム検証"
        S1["test_full_brain_latency()<br/>E2E ≤ 200ms"]
        S2["test_connectome_rollback()<br/>異常時ロールバック"]
        S3["benchmark_spike_efficiency()<br/>コネクトーム前後比較"]
    end

    U1 & U2 & U3 --> I1 & I2 & I3
    I1 & I2 & I3 --> P1 & P2 & P3
    P1 & P2 & P3 --> S1 & S2 & S3

11.2 期待される定量的改善

指標 Phase D(現状) Phase E(目標) 計測方法
スパイク効率 ベースライン +15〜25% 同一タスクのスパイク数比較
E/Iバランス収束速度 不定 < 100エポック 重み分布の時系列
海馬再現性 θリズム(4-8Hz)の自発出現 Episodic Node FFT
接続刈り込み精度 ランダム コネクトーム統計誤差 < 5% 接続密度分布のKL距離
Zenoh遅延(PFC-海馬) 均質 HCP接続密度比例 RTT測定

12. 考察:期待効果と課題

12.1 期待効果

1. 自発的なニューラルダイナミクスの出現

コネクトームデータで初期化されたネットワークは、スモールワールド構造・モジュール性・ハブノードといったトポロジー的特性を持つ。これらは自発的なγ振動・θリズム・スパース活動といった生理的ニューラルダイナミクスを誘導することが理論的に示されている(Watts & Strogatz 1998, Bullmore & Sporns 2009)。Phase Eによってこれらの自発組織化がEvoSpikeNetで初めて観測される可能性がある。

2. 転移学習効率の向上

FlyWireの感覚回路構造で初期化されたVisualノードは、ランダム初期化より少ない訓練ステップで視覚認識タスクに収束することが期待される(Zador ら 2019の「学習を通じてエンコードされた脳構造」の逆命題)。

3. カタストロフィック忘却の構造的抑制

コネクトームトポロジーが学習上書き可能な接続を構造的に制限するため、Meta-STDPによる忘却制御と相乗的に働き、長期記憶安定性が向上する。

12.2 主要な課題

課題 リスク水準 対策
スケールミスマッチ(実ニューロン数 >> EvoSpikeNet表現) サブグラフサンプリング・スペクトル縮約
CAVE API レート制限(大量取得時) ローカルキャッシュ・差分更新
コネクトームの種間差(Drosophila→ヒト) 相同回路の構造的対応付け(BMI分野の知見活用)
遅延バッファのメモリオーバーヘッド 低〜中 スパース遅延表現(非ゼロ遅延のみ保持)
EvoGenome共進化の収束保証 生理的制約による探索空間制限

13. 参照文献・関連ドキュメント

EvoSpikeNet内部文書

ドキュメント 内容
docs/NEUROSCIENCE_BRAIN_SIMULATION_PAPER.md EvoSpikeNet全脳シミュレーション論文
docs/DISTRIBUTED_BRAIN_SYSTEM.md 29ノード分散アーキテクチャ仕様
docs/DISTRIBUTED_BRAIN_NODE_TYPES.md ノードタイプと皮質対応表
docs/DISTRIBUTED_BRAIN_NODE_CONFIGURATION.md ノード構成・シミュレーションタイプ
docs/EVOSPIKENET_CONCEPTS.md LIF/Izhikevich/ChronoSpikeAttention詳細
docs/BIOMIMETIC_IMPLIMENTATION_PLAN.md 生物模倣実装計画
docs-dev/connectome_evospikenet_implementation_policy.ja.md 本文書の基礎となる方針文書
docs-dev/connectome_literature_review.ja.md コネクトーム文献レビュー
docs-dev/connectome_updates_2021-2026.ja.md 2021–2026最新研究動向
docs-dev/detailed_paper_summaries.ja.md 代表論文10本の詳細要約

主要コネクトームデータベース

データセット 生物種 ニューロン数 公開API
C. elegans (Cook ら 2019) 線虫 302 WormAtlas JSON
FlyWire (Dorkenwald ら 2024) ショウジョウバエ ~140,000 fafbseg-py, CAVEclient
MICrONS (Consortium 2021) マウス V1 ~65,000 microns-explorer.org, CAVEclient
HCP S1200 ヒト 全脳マクロ humanconnectome.org

参考論文(DOI)

論文 DOI
White ら 1986 — C. elegans 全神経回路 https://doi.org/10.1098/rstb.1986.0056
Watts & Strogatz 1998 — スモールワールドネットワーク https://doi.org/10.1038/30918
Bullmore & Sporns 2009 — 脳ネットワーク https://doi.org/10.1038/nrn2575
Ronneberger ら 2015 — U-Net https://doi.org/10.1007/978-3-319-24574-4_28
Januszewski ら 2018 — FFN https://doi.org/10.1038/s41592-018-0049-4
MICrONS Consortium 2021 https://doi.org/10.1101/2021.07.28.454025
Dorkenwald ら 2024 — FlyWire https://doi.org/10.1038/s41586-024-07558-y
Schlegel ら 2024 — Drosophila発達 https://doi.org/10.1038/s41586-024-07763-9
Tavakoli ら 2025 — LICONN (Nature) https://doi.org/10.1038/s41586-025-08985-1
Zador ら 2019 — 先天性知識と学習 https://doi.org/10.1038/s41467-019-11786-6

付録A:コネクトーム統合チェックリスト(Phase E 実装完了記録)

Phase E-0/E-1/E-2/E-3 実装完了チェックリスト(2026-03-19)
---------------------------------------------------------
✅ connectome_loader.py の実装(evospikenet/connectome_loader.py)
  ✅ load_json(): WormAtlas JSON のロードと COO 変換
  ✅ load_npz(): NPZ キャッシュからのロード
  ✅ save_npz(): NPZ キャッシュへの保存
  ✅ stratified_sample(): F-1 層別サンプリング(E/I 比保持)
  ✅ spectral_coarsen(): F-2 グラフラプラシアンスペクトル縮約
  ✅ load(): ETag + TTL キャッシュ制御
  ✅ read_etag() / write_etag(): ETag 差分管理
  ✅ _is_cache_expired(): TTL チェック

✅ ConnectomeLIFLayer の実装 (core.py)
  ✅ structural_mask バッファ登録(bool sparse COO テンソル)
  ✅ connectome_weight パラメータ
  ✅ attach_sparse_delay_buffer(): SparseDelayBuffer の装着
  ✅ validate_ei_ratio(): E/I 比バリデーション
  ✅ SNNModel.forward(): 遅延ルーティング(step_int16 経由)
  ✅ SNNModel.reset(): 遅延バッファリセット

✅ Phase E-2 新規モジュール
  ✅ evospikenet/connectome/node_mapping.py
      ✅ get_source_for_node()
      ✅ build_manifest()
      ✅ apply_to_layer()
  ✅ evospikenet/connectome/delay_buffer.py(SparseDelayBuffer)
      ✅ COO リングバッファ [max_delay+1, n_neurons]
      ✅ step() / step_int16() (_INT16_SCALE=512)
      ✅ from_connectome_data()
      ✅ reset() / to()
  ✅ evospikenet/zenoh_connectome_publisher.py
      ✅ ConnectomeMetadataPublisher
      ✅ トピック: connectome/metadata/{node_id}
      ✅ セッション=None でログオンリーモード
      ✅ build_payload() / publish() / close()

✅ テスト(合計 102 PASS)
  ✅ tests/test_connectome_loader.py: 30 pass / 2 fail / 4 skip
  ✅ tests/test_lif_structural_mask.py: 2 fail(既知不具合)
  ✅ tests/test_node_mapping.py: 18 pass
  ✅ tests/test_delay_buffer.py: 22 pass
  ✅ tests/test_zenoh_connectome_publisher.py: 30 pass

✅ 設定ファイル
  ✅ config/connectome_config.yaml 作成・チューニング済み
  ✅ .gitignore に認証情報パスを追加

✅ Phase E-3(実装完了)
  ✅ scripts/sync_connectome.py 自動更新パイプライン
      ✅ apply_delta(): weight_delta JSON のアトミック適用
      ✅ apply_delta_with_validation(): E/I 比バリデーション付き適用
      ✅ sync_connectome(): CAVE → structural_mask 全同期
      ✅ fetch_cave_synapses_with_retry(): リトライ付きフェッチ
      ✅ ConnectomeSyncValidationError 例外クラス
  ✅ evospikenet/brain_routing.py HCP Zenoh ルーティング最適化
      ✅ HCPDelayRouter: session=None ログオンリーモード対応
      ✅ compute_delay_matrix(): 遅延行列計算
      ✅ optimize_routing_delays(): ルーティング最適化
      ✅ build_hcp_routing_table(): HCP ルーティングテーブル構築
  ✅ scripts/auto_node_mapper.py 自動ノードマッパー
      ✅ map_connectome(): コネクトーム → ノードマッピング
      ✅ generate_manifest(): node_manifest.yaml 生成
      ✅ MappingResult / NodeMappingEntry データクラス
  ✅ EvoGenome ↔ structural_mask 共進化フック(evolution_engine.py E-3-2)
  ✅ テスト(合計 112 PASS / 1 SKIP)
      ✅ tests/test_auto_node_mapper.py: 6 pass
      ✅ tests/e2e/test_connectome_e2e.py: E-3 シナリオ 10 pass

⬜ Phase E-3-5(未着手)
  □ HCP DUC(Direct URL Cache)取得最適化
  □ 全脳 E2E バリデーション(spike efficiency +15–25%)

本文書は EvoSpikeNet Phase E「コネクトーム統合」の学術技術論文として位置づけられる。実装の進捗は docs-dev/connectome_evospikenet_implementation_policy.ja.md のロードマップに従ってトラッキングすること。

Copyright 2026 Moonlight Technologies Inc. All Rights Reserved. Author: Masahiro Aoki / ドキュメントID: MT2026-AI-02-001