人工智能 - 五子棋人机对战

时间:2010-04-28 16:00:23  来源:第二电脑网  作者:第二电脑网

  第二电脑网导读:BR>  把文章名命为“人工智能”范畴似乎有点大,那我就借这个大题长长自己的脸,呵呵,怪不好意思的。但具有攻防能力的人机对战的五子棋模型也算的上是初级的人工智能算法。 “人工智能”即指让机器具有类似人类一样的主观能动性根据当前情况做出相应的判断,而他的核心便是具体的数学算法。然而这个算法其实就是依托在一个人造的数学模型上。具体简单的说,就像本文介绍的五子...
  正文:

 这些时间太忙了,有忙正事但也瞎忙了很多事。很久了想写点文章,感觉自己有很多要写的东西,可实际动手写起来大多数想法又没做好充分的准备。加之记得以前论坛上有朋友说希望看看五子棋的人机对战设计思路,所以想想就写篇五子棋人机对战算法的文章吧。
  把文章名命为“人工智能”范畴似乎有点大,那我就借这个大题长长自己的脸,呵呵,怪不好意思的。但具有攻防能力的人机对战的五子棋模型也算的上是初级的人工智能算法。

 “人工智能”即指让机器具有类似人类一样的主观能动性根据当前情况做出相应的判断,而他的核心便是具体的数学算法。然而这个算法其实就是依托在一个人造的数学模型上。具体简单的说,就像本文介绍的五子棋,我们根据五子棋的具体规则建立适当的数学模型,只要机器按照此模型进行逻辑判断就可以得出一定的结果,而这个结果在我们人类看来就是机器在下棋的过程中攻守兼备,仿佛具有人类的智慧。说到这里,我们就这话题再探讨一点。“人工智能”的终极目标就是使机器具备人类的情感,而这个目标有可能实现吗?鄙人的看法是绝对可以的,只是时间的问题。计算机科学从来不是一门独立的学科,他是人类文明的一个结晶。众学科的综合造就了他,而他也必将超越我们人类。从生物学角度来看,我们人脑就是有机化合体组成的神经网络;从化学角度来看,我们人脑的化学反应产生的神经脉冲为我们的逻辑运算提供动力;而从数学角度上看,我们人脑神经所以组成的网络正是一个复杂包罗万像的数学模型。正是在这样一个宇宙的式的数学模型上的逻辑推理,使人类具备了情感。然而我们人类目前对自身大脑的工作原理认识还处在超低级的阶段,有朝一日人类能更深入的了解我们自身那根据这些知识再将其运用在计算机学科,机器也一定能实现真正的“人工智能”。

 有了上面的介绍,我想大家一定对本文所讨论的深度有了了解。没错,我们接下来讨论的的确是最初级的智能算法。那么大家在阅读的过程中应该注意的不是这个算法的具体实现,而是根据五子棋规则建立数学模型的这个过程。即从现实抽象到数学模型的能力,而这个也是编程能力的本质。

 规则:分黑白两方,轮流下棋。率先将5子连线的一方获胜。
  目标:使机器在下棋的过程中攻守兼备,就像和一个真正的人类下棋一样
  分析:为了方便说明我们以 5X5 这个最简单的棋盘来加以说明。  

棋盘如图所示:
JavaScript:resizepic(this) border=0>

接下来我们就五子棋的具体规则特点和人类思维过程讨论一下。率先将5子连线的一方获胜,那么我们人类在下棋的过程中每下一步前都会思考一下如果我们这样走了后面会出现一个什么样的情况?走了这步后对方会走哪步?如果对方做了这步后会是个什么样的局面,我可以采取哪些走法?......
  如此这般,从上面我们可以看到我们人类在下棋过程中经历了预见,推理,预见,推理......这样一个反复的过程,然而我们人脑能力有限,我们能预见的步数和记住每步的情况的能力有限制,即使再聪明的人也是有个限度的。而机器在记忆这方面却是绝对的,所以我们可以模拟人下棋的过程使机器具备高超的下棋能力。
  说到这里,也许有朋友会提出:看样子你这就是个深度搜索算法啊。理论上来说深度搜索算法可以解决任何一个问题,可是事实是有的问题在理论上有解而在现实中却是无解,无法证明的。比如牛顿三大定律之一:力是改变物体运动状态的原因。直白的说比如在真空中一个物体背向地球匀速离去,只要没有力作用在它上面它将永远这样运动下去远离地球。然而事实上没有人能看到这个结果,因为没人能活到永远。再比如用深度搜索算法来解决围棋问题,那他的深度搜索步数将是我们现在人类所认知宇宙整个质量原子数的总和,所以有这么一句话,一盘围棋就是一个宇宙。那面对这样一个宇量计算量我们现有的计算机技术利用深度搜索是无法得到结果的,而且很可能永远得不到结果,因为利用计算机做这样的事这个命题本身就成为一个理论上有结果却无法得到证实的真命题了。
  所以,我们要根据具体情况采用特殊算法巧妙的避免陷入不必要的无解路径。就以本文讨论的五子棋来说,由于其规则的特点,其实用深度搜索算法也能解决问题,但我们旨在建立一个更科学合理的模型来达到更好的效果。所以我们可以先将需要搜索的步数量化,以实现程序的高速查询,也就是说建立一张特殊的“表”,其中标明了获胜的所有情况。那么剩下的事就是实时查询这张表来作为下一步的依据。
就以上面所说,我们采用 5X5 的棋盘,其获胜的情况总共有12种,具体情况如下所示:
人工智能 - 五子棋人机对战》由第二电脑网原创提供,转载请注明:http://www.002pc.com/master/College/Language/VC/2010-04-28/13800.html

 1/4    1 2 3 4 下一页 尾页


关键字:

关于《人工智能 - 五子棋人机对战》文章的评论

站内搜索: 高级搜索

热门搜索: Windows style 系统 tr IP QQ CPU 安装 function 注册 if td