agent-based evolution · gen10 reference_pop = 75

recovery3 で現れる相分岐と risk_response の役割

有限資源の個体ベース進化モデルで、同じ条件・同じ reference_pop から始めた10本の seed が、 飽食・中間・危機維持の三相に分岐した。分岐は最初からは決まらず、recovery3 という特定の回復期で明確になる。 そして当初 risk_response を「危機の増幅器」と疑ったが、その項を抜くと危機側がむしろ増えた。 本稿はこのモデル内での観察を、観察済み・未検証・次に見る点に分けて整理する。

seeds 0–9 generations 500 famine period 80 traits cooperation / assertiveness / risk_response
gen0 80 160 recovery3 · 178–239 240 energy_p10
共有軌跡(gen0–178) satiated ambiguous crisis_maintenance
模式図(実測値そのものではない)。famine期は陰影、recovery3 を黄で示す。 1本に重なって見えた軌跡が、recovery3 の energy_p10 回復量で三相に開く。
00

要約

reference_pop=75 は、資源希薄化を強めていくと個体群が飽食から崩壊へ移る途中の「危機を経験しうる」帯にあたる。 この一点で 10 seed を回すと、satiated 1 ambiguous 4 crisis 5 に分かれた。

分岐の起源を世代別に遡ると、最初の120世代では seed どうしがほぼ重なっており、差は recovery3 (178–239) の energy_p10 回復量で最終相との対応関係が明確になる。class 別に見ると、crisis seed では low class の回復・繁殖が弱く、mid/high が相対的に維持される関連が繰り返し観察される。

ただしこれは関連であって機序の証明ではない。さらに expressed_assertiveness から risk_response 項を外す ablation を行うと、 危機を作る装置という当初の疑いに反して、危機 seed は増えた。現時点の読みは「risk_response は危機生成装置というより、low/mid が完全には失われず回復期へ移行する可能性を支えていたと考えられる」だが、これは観察整理であり因果の確定ではない。

01

背景:なぜ risk_response を入れたか

このモデルの前身(gen-9系)では、協力の成功でエネルギーが積み上がり、危機を測る変数が平時に 0 へ張り付く現象が出ていた。 これは eco-evolutionary feedback の既知の一事例であり、かつ crisis 定義式とエネルギー蓄積構造の作り方に依存するモデル設計上のアーティファクトである可能性が高い、と判定済みである。

gen10 系はその土俵を作り直す。資源を per_capita = BASE_RESOURCE * reference_pop / len(pop) で有限化し、 reference_pop を下げて一人あたり供給を薄めると、個体群が飢餓・危機を経験しうる領域に入る。 危機が「ある」世界で形質がどう効くかを見るために、各個体は独立した遺伝形質として cooperationassertivenessrisk_response を持つ。

risk_response は、危機が強いほど assertiveness の発現を押し上げる項として入れた。

# 危機時の発現
expressed_assertiveness = assertiveness + risk_response * crisis

導入時の素朴な予想は「危機時に強く出る形質は、危機を悪化させる増幅器になりうる」というものだった。 この予想が正しいかどうかが、後半の ablation の論点になる。

02

観察 1:同一条件の seed が三相に分かれる

資源希薄化のキャリブレーションでは、reference_pop≈100 以上で飽食、おおむね 30–75 で個体群が崩壊せずに危機を経験する帯、 15 以下で崩壊側、という鋭い相転移が見えた。reference_pop=75 はちょうどこの危機維持帯の上端にあたり、 pop_mean の平均値(≈230)は二群のどちらの実態も表さない見せかけの中間値になる。

reference_pop=75・baseline の最終相(gen500 時点)。同条件でも seed で相が分かれる。
seeds本数
satiated31
ambiguous4 · 5 · 7 · 84
crisis_maintenance0 · 1 · 2 · 6 · 95
観察済み

同じ条件・同じ reference_pop でも、seed(初期乱数)によって最終相が分かれる。本実験条件では再実行でも同様の分岐が再現された。

未検証

初期分布のどの差が分岐を決めるのかは特定できていない。gen120 時点では crisis 行きと satiated 行きの seed が pop 差数十程度でほぼ重なっており、初期値から相を予言できるとは言えない。

03

観察 2:recovery3 で差が明確化する

gen0–259 を毎世代ログして famine/recovery の区間別に集計すると、分岐がいつ生まれるかが追える。 energy_p10 の差は famine2–3 で弱く芽生え、recovery3 (178–239) で最終相との対応関係が明確になり、続く famine4 で死亡差として表面化する。

recovery3 の energy_p10 回復量と famine4 直前(gen239)の p10。順序は概ね satiated > ambiguous > crisis だが、ambiguous と crisis には重なりがある。
recovery3 回復量gen239 p10(例)
satiated2.615.80
ambiguous2.35–3.12中間
crisis0.73–1.97最低 2.41
観察済み

分岐は初期120世代では見えない。recovery3 の回復量に最終相と対応する差が出て、famine4 の人口減少率(最大 52.9%)はその時点で低かった p10 とそのまま対応する。

未検証

recovery3 で「なぜ」回復量に差がつくかは未解明。trait 構成差なのか、死亡による入れ替わりなのか、確率的揺らぎの蓄積なのかを切り分けていない。

04

観察 3:low / mid / high の class flow

class(low / mid / high)は expressed_assertiveness の階層を指す。recovery3 を class 別に追うと、crisis seed では low class の死亡・繁殖弱化・接触損失が重く、mid/high が相対的に維持される関連が繰り返し現れた。 世代レベルの flow を見ると、crisis seed では low の死亡が mid/high の繁殖親出現よりに起きる傾向が 5本中4本にあった。

ここで重要な但し書きがある。parent_births繁殖した親の class のログであって、突然変異後の子の class 遷移ではない。 親 → 子の置き換わりは別監査が必要で、本稿の範囲では確認していない。

現時点で安全な言い方 crisis seed では recovery3 で low class の回復が mid/high より弱く、mid/high が維持されやすい。これは繰り返し見られる関連であって、因果の説明ではない。low が危機の犯人だとも、high が社会を壊すとも言わない。
観察済み

crisis seed の low death はしばしば mid/high の繁殖親出現より先に現れる(5本中4本)。時間順の弱いパターンであり、bottleneck 様の成分と整合的。

未検証

これを bottleneck とは断定しない。せいぜい bottleneck-like persistence failure(low 回復が次の飢餓を越えて持続しない)に留める。親 → 子の class 遷移、displacement の有無は未確認。

05

seed9 という例外

時間順の監査で、crisis seed のうち seed9 だけが「low death が先」というパターンから外れた。 一見すると例外だが、famine4 を通した持続性監査では別の顔が出る。crisis seed は全本が famine4 で low count を失い、recovery4 で energy_p10 を回復するものの、 gen319 までに recovery3 終了時点の low count にはどれも戻らない

crisis seed の famine4 通過。group mean: famine4 の low_n 減少 −51.6、recovery3 終端からの recovery4 low_n 減少 −67.0。
指標
famine4 low_n delta(平均)−51.6
recovery4 low_n delta(recovery3 比・平均)−67.0

seed9 は low 回復を失う点では他と同じで、特殊なのは「より大きな low count と高い p10 を持って famine4 に入った」という入口条件の方だった。 つまり時間順の例外であっても、持続性の問題は crisis seed に共通している。

観察済み

seed9 は時間順パターンの例外。一方で low 回復の非持続性は seed9 を含む全 crisis seed に共通する。

未検証

例外 seed と非crisis の混在は、単一の bottleneck 機序ではなく circulation/feedback 的な読みも残す。どちらか一方の理論が「勝った」とは決めない。

06

risk_response ablation

当初の疑いを直接試す。gen10j のコードをそのまま継承し、expressed_assertiveness() の risk_response 項だけを外した。

baseline: assertiveness + risk_response * crisis
ablated : assertiveness

予想は「増幅器を抜けば危機が減る」だった。結果は逆だった。

相分類の変化。ablation で baseline 非crisis の seed4/5/7/8 が crisis へ、seed3 が satiated から ambiguous へ移った。
runsatiatedambiguouscrisis
baseline145
ablated019

さらに baseline 非crisis seed の recovery4 における low count が、ablation で大きく落ちた(例:seed4 が 141→2、seed7 が 207→13)。 class × window の差分(gen10q)では、影響が主に low/mid の維持・回復可能性に出ている。low では死亡増加・接触損失の悪化・回復期の繁殖機会低下が観察され、mid も recovery4 で死亡と count 低下が強くなる。high を直接助けていたというより、low/mid が完全には失われない状態を支えていた可能性がある。

この ablation の読み risk_response を抜くと分岐が消えるのではなく、回復側が崩れやすくなる。このモデル内では、完全確定ではないものの、その主な影響は low/mid の維持・回復可能性に出ており、risk_response は回復を支える回路としても働いていた可能性が高い。
観察済み

risk_response 項の除去は危機挙動を消さず、むしろ拡げる(crisis 5→9)。baseline 非crisis seed では low/mid が崩れやすくなり、low の死亡増加・接触損失の悪化・回復期の繁殖機会低下、mid の recovery4 死亡・count 低下が観察される。

未検証

影響が主に low/mid の維持・回復可能性に出ることまでは観察済みだが、因果の完全確定ではない。low死亡の減少・接触損失の改善・繁殖機会の保持のどれが主経路かは単一に絞り切っていない。risk_response を善玉とも断定しない。

07

現在の解釈

ここまでをこのモデル内の暫定整理としてまとめる。

reference_pop=75 では同一条件の seed が三相に分岐し、その分岐は初期から即決されるのではなく recovery3 で明確になる。 class flow では crisis seed の low 回復が弱く mid/high が維持される関連が繰り返し観察され、その low 回復は famine4 を越えて持続しない。

risk_response については、当初の「危機を増幅している」という疑いを ablation が支持しなかった。 項を外すと危機 seed が増えたことから、このモデル内では risk_response は危機生成装置というより、low/mid が完全には失われず回復期へ移行する可能性を支えていたと考えられる。

中心の言い方 これは因果の最終確定ではなく、現時点の観察整理である。bottleneck 様の成分と circulation/feedback 的な読みの両方がまだ生きており、どちらかに名前を付けて閉じる段階ではない。
08

限界

範囲と但し書きを明示しておく。

適用範囲

すべて「このモデル内では」という限定で読むこと。社会一般・現実の生物集団の主張には広げない。seed 数は10、焦点は reference_pop=75 の一点で、crisis_maintenance 組のサンプルも限られる。

確定していないこと

class 構成と相の対応は関連であって機序ではない。parent_births は親 class で子の遷移ではない。bottleneck とは断定せず bottleneck-like persistence failure に留める。low/high のどちらも危機の犯人として名指ししない。risk_response を悪者にも善玉にも断定しない。

本稿の解釈は複数 AI(Claude / Codex / ChatGPT)との作業ログを参考に再構成したものであり、一次資料は各実験で出力された CSV・JSON・コードである。

09

次の作業

新しい理論化ではなく、観察を一段ずつ絞る候補。

#狭い問い
1recovery3 区間そのものの trait 分布推移を見て、回復量差の起源(trait 構成 / 入れ替わり / 揺らぎ)を切り分ける。
2親 → 子の class 遷移ログを取り、parent_births が子世代の class 構成にどう写るかを確認する。
3gen10q の続きとして、low/mid に出ている影響をさらに分解し、low死亡の減少/接触損失の改善/繁殖機会の保持のどれが主経路かを切り分ける。
4reference_pop=80/85 で同じ機序が出るか、crisis_maintenance のサンプルを増やして確認する。