1
电子说
本文主要内容为采用支持向量机(SVM)解决国际象棋兵王问题。
一、国际象棋规则
国际象棋具有8×8的棋盘,包含若干种棋子。
图片来源:中国慕课大学《机器学习概论》
其中,黑白双方各具有8个“兵”棋子,各具有1个“王”棋子。
(1)“兵”棋子相关规则
“兵”棋子的行进规则是:第一次可向前行进一格或两格,以后每次只能向前行进一格,不能后退。
“兵”棋子的吃子方式是:可以吃掉其斜前方的棋子,并落入被吃棋子的格中。
“兵”棋子的升变:兵走至对方的底线,可以升变为除“王”棋子以外的任意棋子。
(2)“王”棋子相关规则
“王”棋子被将死,该方告负。“王”棋子的行进规则是:每次可横、竖、斜行进一格。“王”棋子的吃子方式与其行进规则相同。
(3)逼和
逼和是指一方行棋后未将军,另一方无子可动的局面。如图一所示,轮至黑方走棋,若黑方的王移动则被白方吃掉,因此黑方处于无子可动的局面,且白方未将军,因此,此时为逼和局面。
图一,图片来源:中国慕课大学《机器学习概论》
二、兵王问题的描述
若在国际象棋的残局中,黑方剩一个王,白方剩一个兵和一个王。则该残局的最终胜负结果包含两种可能:
(1)白方将死黑方,白方获胜。
(2)和棋。
当兵王问题的三个棋子在棋盘的位置确定后,该残局在没有失误走法情况下的最终胜负结果被确定。经过专业培训的人员,根据三个棋子在棋盘中的位置,可以准确判断该残局在没有失误走法情况下胜负结果是哪一种。
图片来源:中国慕课大学《机器学习概论》
三、支持向量机处理兵(车)王问题
(1)已标注的训练数据
在UCI MACHINE LEARNING数据集中,兵(车)王问题的数据可以被下载。兵(车)王问题数据的文件名为krkopt .data。
krkopt .data文件的问题:在UCI MACHINE LEARNING数据集中点击Chess(King-Rook vs. King),再点击Data Folder,可找到krkopt .data链接,将下载的krkopt .data通过记事本打开后可找到课程中例举的数据。
图片来源:UCI MACHINE LEARNING REPOSITORY网站
但Rook的中文翻译是国际象棋棋子“城堡(车)”,不是棋子“兵”,且若按课程所讲训练数据的含义,则a,1,c,1,d,1,draw(其中a,1代表黑王的位置,c,1代表白王的位置,d,1代表白兵的位置,draw代表此时为和棋)在兵王问题中不是正确的训练数据。
综上,课程可能误将车王问题的训练数据当成兵王问题的训练数据,但这不影响有关支持向量机的学习。
图片来源:根据中国慕课大学《机器学习概论》资料制作
(2)支持向量机处理兵(车)王问题
将兵(车)王问题的和棋标签记为draw,并设定此时yi=+1,将其他情况设定yi=-1。兵(车)王问题数据集的总样本数量为28056个,其中正样本(yi=+1)的数量为2796,负样本(yi=-1)数量为25260个。
数据集确定后,可通过LIBSVM工具包进行训练。
审核编辑:刘清
全部0条评论
快来发表一下你的评论吧 !