以個體模擬(agent-based simulation)分析《魔法少女小圓》的魔法少女系統
獨立研究者
這是一份為了好玩而寫的獨立研究,未經同儕審查。所有結論都是模型在既定假設下的性質,發現問題歡迎到 GitHub 開 issue。
《魔法少女小圓》中的魔法少女、魔女與丘比構成一個子系統。本研究將其簡化為一個封閉的資源循環,並以個體模擬(agent-based simulation)觀察它在系統層面的表現,也就是把每一名魔法少女與每一隻魔女都當成獨立個體逐一模擬,再看整體會浮現什麼樣的規律。簡化後的模型保留五項要素:靈魂寶石會累積濁化、濁化須以魔女留下的悲嘆之種淨化、寶石濁化至飽和的少女將化為魔女、丘比回收此一轉變所釋放的能量,以及新的少女透過締約進入系統。模型建構於城區網格之上,並納入少女彼此爭奪悲嘆之種的鷹鴿賽局(hawk–dove game)。
研究發現有四:一、一名少女一生累積的濁化主要來自與其他少女的爭奪,而非與魔女的戰鬥;魔女稀少時兩者比例約為 5.9 比 1,魔女充裕時則降至 1 以下。二、少女折損的速率取決於丘比締約的速率,與悲嘆之種的供給幾乎無關;魔女增加時改變的是折損的方式而非折損的人數,其中以魔女化收場的比例由 88% 降至 31%。三、丘比累積回收的能量受限於新候選人出現的速度,因此使回收量最大化的招募率,會隨著評估期間拉長而下降;早期的高回收來自一次性的存量,這是一個龐氏(Ponzi)結構。四、爭奪悲嘆之種的侵略性呈現公地悲劇(tragedy of the commons)的結構:族群整體在侵略性約 0.15 時存活最久,但在資源稀缺的情況下,較強硬的策略仍能侵入較溫和的族群。
以上結果均為模型在既定假設下的性質。本文標明各項結果成立的參數範圍,並以一條精確的守恆恆等式檢驗程式實作。
結果三只比較了固定招募率。既然候選人池的水位是可觀測的狀態,一個依狀態調整的招募策略照理應該更好:池子見底時降低招募,回補後再提高。本研究以表格式 Q-learning(強化學習的一種,reinforcement learning)搜尋這樣的策略,決策以 100 日為一個宏觀步,動作為六個離散招募率,並以折現因子取代評估期間。
結果是否定的。三個折現因子下各訓練 2000 個回合,學到的策略都沒有勝過最佳固定招募率。
| 折現因子 | 學到的策略 | 最佳固定招募率 | 差距 |
|---|---|---|---|
| 0.9 | 229.7 | 242.3 | −5.2% |
| 0.99 | 209.0 | 242.3 | −13.8% |
| 0.999 | 180.0 | 242.3 | −25.7% |
這個結果不代表固定招募率比較好。有兩點限制了實驗能說明的範圍:累積回收量在招募率 0.096 以上幾乎持平,狀態依賴策略可爭取的空間小於評估雜訊;學到的 Q 表也明顯欠擬合(underfitting)。因此本研究只能說,在這組設定下,狀態依賴策略沒有可證實的優勢。
環境以 uv 管理。六組實驗使用確定性種子,重跑會得到相同數字。
git clone https://github.com/yuna0x0/madoka-magica-abm.git
cd madoka-magica-abm
uv sync
uv run madoka-abm experiments # 單核心約三分鐘
論文以 Typst 編譯,中文版需要一套 CJK 襯線字型(預設 Noto Serif CJK TC)。
@misc{hoshinomiya2026griefseed,
title = {The Grief Seed Economy: An Agent-Based Model of the Magical Girl
System in Puella Magi Madoka Magica},
author = {Hoshinomiya, Arisu},
year = {2026},
url = {https://madoka-magica-abm.pages.dev},
note = {Independent study, not peer reviewed. Code and data:
https://github.com/yuna0x0/madoka-magica-abm}
}