zoukankan      html  css  js  c++  java
  • 浅谈棋类博弈

         就在今年3月AlphaGo战胜围棋九段选手李世石,这引起了人们的高度关注。记得在第一场比赛的那天我的朋友还是相信李世石不会输,而我则相信机器会赢,最终以4:1的总分AlphaGo获胜。

        

         计算机在博弈方面战胜人类已经不是第一次了,最早可追溯到上世纪深蓝战胜当时的国际象棋冠军加里.卡斯帕罗夫。但到了21世纪的今天计算机才在围棋上战胜人类的顶尖高手。

    那么围棋的到底有多复杂,在那些业外人士看来也许并不足够震动全世界,毕竟在生活司空见惯了各种棋牌游戏,在他们看来似乎围棋并没有想象的那么复杂,好像战胜人类也并不是什么大事。接下来就来简单的谈一下计算机博弈这个问题。

          大部分的博弈基本上是运用搜索的方法,不过博弈是有对手存在的,针对自己走的一步棋,对方走一步,然后自己在走一步棋。就这样反反复复的制作搜索树。这其中组合的方式非常多,在某些情况下多到惊人,可能会很难搜索到尽头。

         博弈的组合数到底有多大?黑白棋(外国一般叫奥赛罗棋)棋局是8*8的格局,棋子分为黑白两色,它的组合数大约有10的60次方种,也就是最长有60位数左右。国际象棋也是8*8的棋局,但棋子的种类多一点,双方各有6种,它的组合方式大约有10的120次方种。将棋是9*9的棋局,双方各有8种棋子,组合方式大概有10的220次方种。围棋是19*19的棋局,分为黑白两色,总的组合方式大约有10的360次方种。对于如此庞大的组合数目,一个不漏的一直搜索到最后是无法做到的。于是,人类给计算机设计了一种方法,即对棋局进行打分,然后以使这个分数得到提高为目的,去搜索下一步棋的走法。这是博弈人工智能的基本设计思路。当然,对于AlphaGo设计的算法肯定是非常的优秀。

          确实,计算机一般在开局初期不容易占据优势,开局时的组合还真是无穷无尽,刚开局时棋局的棋子少,走步数量大,计算机对整个棋局的把握不好,所以在开局时的表现和人类还是存在差距吧。但随着博弈的进行,棋盘上棋子的位置逐渐固定,计算机对整盘棋的把握越来越大,胜算也就越来越大。在某些棋类博弈中,中盘是获胜的关键,显然,优秀的算法能让计算机可能比我们人类更能下好中盘的棋。

  • 相关阅读:
    Linux (x86) Exploit 开发系列教程之三(Off-By-One 漏洞 (基于栈))
    Linux (x86) Exploit 开发系列教程之二(整数溢出)
    Linux (x86) Exploit 开发系列教程之一(典型的基于堆栈的缓冲区溢出)
    Linux (x86) Exploit 开发系列教程之四(使用return-to-libc绕过NX bit)
    xss level11
    f.select
    jquery.backstretch
    linux目录或文件权限
    pradino 命令
    Padrino 博客开发示例
  • 原文地址:https://www.cnblogs.com/yspworld/p/5665013.html
Copyright © 2011-2022 走看看