ELO算法一般指Elo rating system,以创造者埃洛(ELO)命名。ELO算法比上一章的基纳法更出名,它是一种衡量各类对弈活动水平的评价方法,是当今对弈水平评估的公认的权威方法。ELO算法最开始是为了改善象棋评分系统而设计的,但它也适用于含多个玩家的游戏,足球比赛等等。在影片《社交网络》中,爱德华在窗户上写下埃洛法的公式,所以,有人猜测扎克伯格可能使用了埃洛法。
埃洛法通过简单的“非此即彼”的成对比较来进行对象评分和排名,其所用的前提条件,是每名棋手的表现都是一个服从正态分布的随机变量X,其均值μ只能缓慢地随时间而改变。埃洛法的原始公式为 r <-- r + K(S-μ) ,r 为评分,S为上一场比赛的得分,μ为平均得分,是一个常量。埃洛开始时设K = 10。
后来,人们发现棋手的表现并非是正态分布的,因此美国国际象棋联合会(USCF)和世界国际象棋联合会(FIDE )都将埃洛的原假设改为要求两名棋手得分差的期望值 μi-μj 为这两名棋手评分差值 ri-rj 的logistic function。为了方便描述,重新定义两名棋手得分差的期望值 μi-μj为 μij,两名棋手评分差值ri(old) - rj(old)为dij ,所以,新的假设是要求 μij 是 dij 的logistic function。埃洛国际象棋评分中 μij 的精确定义为 μij = 1 / ( 1 + 10^( -dij / ξ ) ) ,ξ = 400。
K值的设置目前仍然是一个有争议的话题。如果K过大,则评分的变动过大。如果K过小,评分将变得过于停滞。