跳轉到

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_MIN 6.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 驗證。