mcpField
A
algo-rank-trueskill

algo-rank-trueskill

github.com/asgard-ai-platform开发24336 次安装21 周前更新
代码仓库

关于 algo-rank-trueskill

algo-rank-trueskill 是实现 TrueSkill 评分系统的技能,将玩家技能表示为带不确定性的高斯分布,适用于团队和多人游戏。它同时更新技能均值与不确定性,并以保守评分进行排名。

主要功能

  1. 01以高斯分布表示技能与不确定性
  2. 02支持团队和多人比赛
  3. 03根据比赛结果更新评分
  4. 04按 μ − 3σ 计算保守排名

适用场景

  1. 01为团队游戏玩家评分
  2. 02为多人竞技游戏匹配玩家
  3. 03在排名中纳入技能估计的不确定性

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/asgard-ai-platform/skills --skill algo-rank-trueskill

安装后在 Claude Code 中输入/algo-rank-trueskill确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

examples/
sample_scenario.md
references/
factor-graph.md
matchmaking.md

详细介绍

TrueSkill 评级系统

概述

TrueSkill(Microsoft Research)将每位玩家的技能建模为高斯分布 N(μ, σ²),其中 μ 是估算的技能水平,σ 是不确定性。支持团队赛和多人游戏(不只是 1 对 1)。保守评级 = μ - 3σ。随着游戏场次增加,不确定性会降低。该系统通过消息传递进行贝叶斯推断。

适用场景

触发条件:

  • 为团队赛或多人游戏(3 名以上参与者)中的玩家评级
  • 构建能够平衡比赛质量的匹配系统
  • 需要在技能评级之外估算不确定性

不适用场景:

  • 简单的 1 对 1 排名,且不需要考虑不确定性(Elo 更简单)
  • 非竞技排名(产品评分——使用 Wilson Score)

算法

IRON LAW: Skill Rating Has TWO Components — Mean AND Uncertainty
TrueSkill represents skill as N(μ, σ²). New players have high σ
(uncertain). After many games, σ shrinks (confident). The conservative
rating μ - 3σ ensures players are ranked by their LIKELY MINIMUM
skill, not their estimated average. Never use μ alone for ranking.
阶段 1:输入验证

初始化:μ₀ = 25,σ₀ = 25/3(默认值)。收集包含团队组成和最终名次的比赛结果。 门槛: 比赛结果有效,且已定义团队组成。

阶段 2:核心算法
  1. 对于每场比赛,根据团队技能分布计算预期结果
  2. 比较实际结果与预期结果
  3. 使用贝叶斯更新调整每位玩家的 (μ, σ):
    • μ 向表现方向变化(获胜者上升,失败者下降)
    • σ 降低(观察到结果后,不确定性减少)
    • 更新幅度与 σ 成正比(不确定性高的玩家变化更大)
  4. 保守排名 = μ - 3σ
阶段 3:验证

检查:活跃玩家的 σ 会随时间降低。按保守评级排名靠前的玩家,获胜次数应高于预期。比赛质量指标(平局概率)应处于合理范围。 门槛: 评级系统生成直观的排名,σ 趋于收敛。

阶段 4:输出

返回包含不确定性范围的玩家评级。

输出格式

{
  "ratings": [{"player": "P1", "mu": 32.5, "sigma": 2.1, "conservative": 26.2, "games_played": 50}],
  "metadata": {"initial_mu": 25, "initial_sigma": 8.33, "beta": 4.17, "tau": 0.083}
}

示例

示例输入/输出

输入: 团队 [A(25,8.3), B(25,8.3)] 击败团队 [C(25,8.3), D(25,8.3)] 预期结果: A、B 的 μ 上升约 2-3 分,σ 下降约 0.5。C、D 的 μ 下降,σ 下降。保守评级相应调整。

边界情况
输入预期结果原因
新玩家对阵老玩家新玩家的 μ 变化更大σ 更高 = 不确定性更大 = 更新幅度更大
1 对 1 比赛退化为类似 Elo 的行为对于 1 对 1,TrueSkill 会简化为简单情形
大逃杀(8 名玩家)比较所有玩家对原生支持多人游戏,不同于 Elo

注意事项

  • 计算成本: 因子图中的消息传递比 Elo 开销更大。对于数百万玩家,可使用近似方法(EP 截断)。
  • 团队技能聚合: TrueSkill 将各玩家的高斯分布相加,得到团队技能。这假设玩家技能相互独立——对于技能相关的玩家(共同训练的团队),模型估算不足。
  • 动态技能: σ 只会降低。如果玩家技能确实发生变化(提升或下降),可在每个时间段加入一个较小的漂移项 τ,使 σ 逐渐增大。
  • 部分参赛: 如果玩家在游戏中途加入或提前离开,其贡献就难以确定。需要扩展部分参赛权重。
  • 专利状态: TrueSkill 曾由 Microsoft 获得专利(2024 年到期)。TrueSkill 2 增加了更多功能,但请检查许可条款。

参考资料

  • TrueSkill 因子图推导见 references/factor-graph.md
  • 匹配质量指标见 references/matchmaking.md

评论

支持 Markdown