我在chess.com大部分时间下棋,并且想知道算法如何根据我在这个网站上的所有国际象棋历史来预测下一场比赛的结果:我在上一场比赛时的评分,对手评分以及是否我赢了或输了。
谢谢, 罗伯托福尔克
答案 0 :(得分:2)
如果您正在寻找估算您的技能和对手技能的方法,请查找Elo-Rating。它实际上是为此目的而开发的(国际象棋)。 Elo-rating根据您赢得和输掉的比赛(根据他们的Elo-Rating对抗哪个对手)进行更改。
这意味着,如果你对抗一个强大的对手(与你的实力相比),你的Elo-Rating将会有很大提升。如果你赢得弱对手的胜利,你的Elo-Rating几乎不会提高。
问题是,如何获得对手的Elo-Rating。如果网站没有提供,唯一的方法是自己计算。但是,您需要本网站上所有玩家的所有游戏才能找到它们的真实性。如果你不考虑对手的技能,那么赢/输游戏的数量就毫无价值。如果有人在对阵初学者的比赛中赢了100场比赛,他就不一定非常好。如果有人赢得了100场对阵一名优秀球员的比赛,那他就会好得多。
如果您正在寻找一种估计游戏当前状态的方法(即在执行某些动作后谁更有可能获胜),可以使用几种常用的国际象棋启发式方法。最简单的是为每件定义一个值(强件具有更高的值)。要查看哪个玩家拥有更强大的棋盘,只需总结其棋子的价值。
对于更多启发式(可能还有其他编程思想),请参见此处:https://chessprogramming.wikispaces.com
估算董事会价值有几种非常好的方法,远远超过我在答案中合理写出来的方法。