D-20260706-12|TrueSkill 全整數定點化¶
背景與驅動力¶
matchmaking spec 直用 ts-trueskill 浮點庫,而程式參數表同時存在浮點五顆與 X1000 整數兩顆常數 = 雙重權威(先前定點化做半套)。但 rating 是 derive 狀態——全網重算必須 bit-exact,且「超越函數禁入共識」是既定不變式:TrueSkill 內部 Gaussian erf 與浮點除法 = 跨 JS 引擎的共識分岔源(與仲裁 Math.log10 已判定改查表同款炸點)。matchmaking 模組動工前必須收斂。
考慮過的選項¶
- (a) 全整數定點:μ/σ X1000+erf 離線查表,仲裁權重表先例(採納)。
- (b) rating 降格非共識:各 peer 自算、退出 derive 驗證面——需動資料系統與版本規範的 derive 契約。
- (c) 浮點嚴格模式:跨 JS 引擎無保證,
log10教訓已否決。
決定¶
- μ/σ 全程 X1000 整數(初始 25000/8333);成對近似多人更新(每有序對算 Δμ 與 w、除以 P−1 聚合、σ 以平均 w̄ 縮減一次 +τ² 注入);
cSq整數開根isqrt;整數截斷除 + 固定運算序 =bit-exact。 TRUESKILL_VW_TABLE_X1000離線查表:v=φ/Φ、w=v(v+t);t 域 ±6000、步長 10、不插值、1201 筆 ×2。- 浮點五顆常數與
SIGMA_MIN6.0 全退場(6000 僅作頻繁斷線托底、非普適下限);ts-trueskill依賴廢除。FFA 無平手常數;窗口比較於 displayRating÷1000 整數分域。0.01 粒度損失對配對可忽略——共識要求是 bit-exact、非高精度。 - 現況見 算式表.md、程式參數.md、程式架構/matchmaking.md。
後果與影響¶
共識面第三個整數化域(經濟 bigint、仲裁權重查表之後),與翌日全 src 決定性掃蕩(D-20260707-01)同一主題軸。實作於里程碑 8c trueskill-fixed.ts 落地:σ 縮減中間積以 BigInt 防溢位、VW 表以獨立重寫的浮點對照 bit-exact 驗證。