zoukankan      html  css  js  c++  java
  • 象棋和国际象棋的电脑程序是如何设计的?

    国际象棋打败人类10多年前就已经由深蓝完成了,近年仅是个人电脑的国际象棋软件的等级分就已经大幅度超过人类,已经没有人类的世界冠军笨到跟计算机挑战自取其辱了。原先还经常的举办国际象棋人机对抗赛,但是几年前开始,为了使人机对抗赛更为有悬念,比赛规则已经改变成计算机让F线以外的一兵了——如果对国际象棋有较为深入一点的研究,就知道一个兵是多么大的价值。

    国际象棋软件的结构分为:
    1,人机界面:让人类能直接以国际象棋语言和计算机对话;
    2,引擎:计算局面得分权重,以一定的算法得出分值,正数则白棋优势,负数则黑棋优势,分数越大(越小)则白棋(黑棋)越优。世界电脑国际象棋锦标赛(WCCC)每年都举办,引擎的计算能力是以摩尔定律的年为尺度的,而人类大脑的计算能力是以进化的百万年为尺度的,差距只会越拉越大,何况之中还有程序员的努力将算法优化的因素在内;
    3,开局库:集合数以百万计的人类国际象棋比赛的开局,使得在有开局库的前提下,计算机可以不必计算直接走出人类认为的开局谱招。国际象棋大师们都会记住相当多的开局,但是计算机会记住几百万盘棋局;
    4,残局库:由超级电脑计算好剩余棋子的所有局面,并存储以备调用。当局面剩余残局库中所存储的局面时,不必计算,计算机直接可以知道结果。6子以内残局库已经算完,7子残局库也已经算出大半。
    认识好多国际象棋的国手,自己也对国际象棋小有研究,共同认识是:
    1,开局永远拼不过计算机,除非脱离谱招拼计算;
    2,计算永远拼不过计算机,现在引擎的计算深度已经远远高于人类,而且——它永远不犯错。而偶尔犯错却是人类的天性,如果能均势和计算机进入到残局基本就算胜利。
    3,残局计算机相对弱势,但是残局库却在不断完善,计算机不需要局面达到残局库,而只需要计算到残局库就可以立刻知道胜利的正确走法,就像你在和一个已经知道考试答案的人拼考分一样。
    即使对手的实力略逊于你,但是如果他永远不会犯错往往是最郁闷的事情,何况无论哪方面,计算机在国际象棋方面的实力都要高于人类。
    未来:引擎算法会继续完善;摩尔定律会使得计算机的能力更加强大;残局库会继续计算7子,8子,9子;开局库虽然是基于人类,但是只要有人走出招式,就会被计算机收录以作备用;当残局库与开局库对接的时候,甚至计算机取消引擎直接就可以知道怎么走才是最优招法了。
  • 相关阅读:
    window linux pycharm 相互协作
    再次校验环境
    转 安装 ubuntu后 软件处理 -感谢博主skykingf csdn
    NSError是向用户传递详细错误信息的不错的选择
    Node.js学习笔记-入门
    UIKit和CSS布局方式的差异
    继承缺陷以及替代方案
    HTML、HTML DOM、Javascript、CSS以及jQuery使用小结
    关于cookies
    一个诡异bug---symbol not found: objc_setProperty_atomic
  • 原文地址:https://www.cnblogs.com/hanson666/p/7099942.html
Copyright © 2011-2022 走看看