桌上足球结果预测

Wol*_*olf 5 java mysql prediction

下班后,我们经常在办公室玩几轮桌上足球/桌上足球。我整理了一个小的Java程序,该程序从可用的播放器中生成随机的2vs2阵容,然后将比赛结果存储在数据库中。

当前对结果的预测使用来自4个参与玩家的所有先前比赛结果的简单平均值。这给出了一个非常粗略的估计,但是我想用更复杂的东西来代替它,并考虑到以下因素:

  • 玩家作为进攻者可能表现不错,但作为防守者则表现不好(反之亦然)
  • 玩家对特定对手表现出色/对他人不利
  • 有些团队合作得很好,而其他团队则没有
  • 技能会随着时间而改变

尽可能准确地预测比赛结果的最佳算法是什么?

有人建议为此使用神经网络,这听起来很有趣……但是我对该主题没有足够的知识来说是否可行,而且我还怀疑可能需要太多的游戏才能进行合理的训练。

编辑:
由于一些项目的截止日期,不得不从中休息更长的时间。使问题更具体:

给定以下mysql表,其中包含到目前为止进行的所有匹配:

table match_result

match_id      int pk
match_start   datetime
duration      int (match length in seconds)
blue_defense  int fk to table player
blue_attack   int fk to table player
red_defense   int fk to table player
red_attack    int fk to table player
score_blue    int
score_red     int
Run Code Online (Sandbox Code Playgroud)

您将如何编写函数predictResult(blueDef,blueAtk,redDef,redAtk){...}
以尽可能接近地估计结果,执行任何sql,进行计算或使用外部库?

Jef*_*ser 5

使用TrueSkill算法,这是非常好的。我已经在桌上足球和国际象棋中实现了它,并且效果很好。同事告诉我,这几乎是擅长这个。

有关其工作原理的完整详细信息以及与我的实现的链接,请参见我的“ 计算技能 ”博客文章。