针对上述的问题,本文将提出一套智能的程序设计能力训练平台解决方案。
1。2 研究现状
1。2。1 题目难度分析
1。2。2 用户能力评价
1。2。3 题目推荐系统
1。3 本文研究内容
本文主要针对用户在使用程序设计能力训练平台中的使用数据,利用相关的分析算法实 现一个综合的智能训练辅助系统,并且主要完成了如下的内容。
I。 题目难度分析系统文献综述
II。 用户水平综合实时评价系统 III。 高效准确的题目推荐系统
IV。 相关算法时间复杂度和性能的综合分析 通过将这些系统整合到南京理工大学程序设计能力训练平台(icpc。njust。edu。cn)上来
真正完成一套行之有效的智能程序设计能力训练平台。
1。4 本文组织结构 第一章介绍相关课题的研究现状,研究方向,以及本文所涉及的方法。 第二章介绍本文所涉及到的实际的算法逻辑,相关算法的在本文中的应用。还有一些系统
实现将要用到的相关技术。 第三章介绍针对题目难度分析,用户水平分析算法,题目推荐算法的性能分析。分析内容
包括算法的时间复杂度,算法的正确性,算法准确度等内容。 第四章介绍一个完整的应用系统,以及实现的逻辑。通过图表等方式展示实际的用户的使
用界面和使用方式
2 相关算法及工具介绍
2。1Elo rating system
本科毕业设计说明书 第 3 页
2。1。1 Elo 系统的相关背景
Elo rating system [1]是源于 Arpad Elo 教授提出的一个用于评价国际象棋选手水平的评测体 系。不过随着不断的改进和发展,Elo rating system 用在了越来越多的领域之中,比如职业橄 榄球,斯诺克在内的职业竞技体育的世界排名系统,还有一些计算机游戏的积分系统[2]。
在 Elo rating system 内每一个实体的 rating 由一个数字来代表。通过比较双方的 rating 数 值的绝对差值,来估算双方胜利的概率,再根据实际的结果修正双方的 rating 数值的差距。 这样只要实体参与评测的对局数量足够多便可以使用户的 rating 不断的逼近自己的真实水平。 并且这个 rating 是可以动态的增量式的计算,非常符合本文所描述的应用场景。
2。1。2 Elo 系统的原理
我们假设用户甲拥有 rating 为□□且用户乙拥有 rating 为□□,那么用于计算用户甲的获胜 期望的函数如下:
同样计算乙的获胜期望函数如下:
实际上我们可以有更加优美的表达方式
同样计算乙的获胜期望函数如下
在上述表达式中 Q 值的计算公式如下
通过以上的公式,我们就可以通过双方的当前 rating 值计算机出对双方的获胜的概率。 然后通过以下的公式根据选手的实际得分□□来计算出双方新的 rating 值
实际上我们可以看得出来上诉公式是使用逻辑函数来进行的期望的计算,实际上在应用来~自,优^尔-论;文*网www.youerw.com +QQ752018766-
之中还有 Hubbert 曲线等多种多样的计算函数。需要根据实际的应用场景来进行计算和分析。
第 4 页 本科毕业设计说明书
在生产环境中应用 Elo rating system 还有一些比较重要的数学问题需要解决[3],这些问题 主要是针对 rating 的分布,rating 计算中的 K 值,还有冷启动的问题。