技術導讀
戰爭幾何學:用牛頓物理與隨機控制模擬 Primarch 決鬥
以 Warhammer 40K 敘事作玩具問題,組合飛行動力學、耐力、毒性場、PID、狀態機與隨機事件。
2026年1月14日 · 約 2 分鐘閱讀
封存文章/虛構模型
本文以 Warhammer 40K 角色作數學玩具問題。所有質量、力量、毒性與勝率都是虛構參數;模型不描述真實人體、武器或戰鬥。
Jaghatai Khan 駕駛噴射摩托接近 Mortarion:高速增加撞擊動量,卻也提高轉向成本;遠離毒霧較安全,但對手會再生。這正好形成一個有能量、距離與隨機擾動的控制問題。
一、運動方程
平面狀態為位置 r、速度 v:
r˙=v,mv˙=Fthrust+Fcontrol−cd∣v∣v.
所有力用同一座標,速度與加速度設上限。這是 Newtonian 玩具模型,沒有相對論或完整剛體姿態。
二、耐力與能量
Khan 的耐力 S:
S˙=rrecover(Smax−S)−cT∥Fthrust∥2−cAuattack.
低耐力限制推力及攻擊,令「一直全速」不再是最優策略。
三、毒性場
以 Mortarion 位置 rM 為中心:
C(r)=C0exp(−ℓ∥r−rM∥).
累積毒性
Z˙=kZC(r)−μZZ
可降低控制或生命值。指數場只是敘事近似,不應被解讀成真實擴散。
四、撞擊與再生
接觸時傷害可以相對動量為基礎:
D=κmax(0,vrel⋅n)⋅qhit,
qhit 是隨機命中倍率。Mortarion 的生命值同時有飽和再生:
H˙M=rM(1−HM,maxHM)−D(t).
因此控制問題是「何時接近並形成足夠爆發」,不是只把距離變成零。
五、PID 與狀態機
追蹤目標距離 d∗ 的誤差為 e=d−d∗:
u(t)=Kpe+Ki∫edt+Kde˙.
積分項要 anti-windup,導數項要濾波。高層狀態機分為接近、側擊、撤離、恢復與終結;轉移由距離、耐力、毒性及生命值觸發。遲滯區可避免狀態頻繁跳動。
六、隨機性
連續擾動用
dv=f(x,u)dt+ΣdWt,
罕見 Warp 事件則以 Poisson 過程
N(t)∼Poisson(λt) 表示。數值上 SDE 應用 Euler–Maruyama 或專用方法;不能把 RK4 的 ODE 誤差階直接套用到 Brownian 路徑。
七、實驗
對每套控制參數運行大量配對種子,報告勝率、戰鬥時間、毒性峰值、最低耐力及撞擊速度分佈。Spaghetti plot 顯示路徑變異;危險區熱圖則由所有死亡或重傷位置的密度估計。
勝率差需配合二項信賴區間。若調參與評估使用同一批種子,會對隨機情境過度擬合,因此要保留完全未見的測試種子。
八、軟件結構
物理引擎、角色狀態、控制器、事件生成與分析分開。設定檔記錄單位及種子;每步檢查有限數、速度上限及生命值範圍。私人研究庫保存原始程式,公開文章只描述方法與經審核輸出。
九、限制
模型沒有碰撞剛體、視線、三維姿態或學習對手。最值得延伸的是部分可觀測控制、對手策略適應與 distributional robustness,而不是增加更多任意角色數值。
參考資料
- Åström and Murray, Feedback Systems.
- Kloeden and Platen, Numerical Solution of Stochastic Differential Equations.
- Sutton and Barto, Reinforcement Learning.
- Games Workshop, Warhammer 40,000 fictional setting.