五子棋毕业论文--人工智能课题.doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《五子棋毕业论文--人工智能课题.doc》由会员分享,可在线阅读,更多相关《五子棋毕业论文--人工智能课题.doc(29页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、人工智能专家系统论文题 目 五子棋AI算法和网络通信的研究学生姓名 陈维梅 学 号 200951612703 系 别 商务学院 年 级 2009 专 业 计算机科学与技术 指导教师 职 称 讲师 完成日期 2012/12/16 五子棋AI算法和网络通信的研究 摘要: 本系统将利用五子棋游戏作为研究对象,通过设计出一个能够实现两种不同对战模式的五子棋游戏。并对所涉及到的相关技术进行初步的探讨,将重点放在人机对奕中AI算法研究方面。 游戏中提供两种选择模式:人机对战和人人对战。在人机对战中玩家通过选择不同的AI等级和电脑一决高下。在人人对战中双方可以进行下棋,悔棋但要通过对方的同意。同时还可以实现
2、在线聊天。AI的不同等级是以不同的搜索深度确定的。本系统以深度为2,3,4分别为初级,中级,高级。网络对战中则使用Socket实现点对点通信。 关键字:五子棋 、博奕AI算法、网络通信 Research the AIof Renju and the Communication Summary: This system will use Renju as research objects, passing to design a Renju game that can provide two kinds of dissimilarities to the play mode. to involv
3、e to of the related technique carry on the study of the first step, play more attention in the AI calculate way research aspect. It provide two kinds of choice modes in the game:Persons machine to the war and the everyone to war.The player passes to choose the different AI grade and computer in pers
4、ons machine the rightness the war a definitely superiority.Both parties can carry on play chess in the everyone the rightness the war, the regrets chess but want to pass the approval of the other party.Can also carry out on-line chat in the meantime.AI different grade with search the depth assurance
5、 differently.This system takes depth as 2, 3, 4 is an entry-level respectively, medium class, high class.The network orders correspondence towards then using the Socket realization to order in the war to. Key word: Renju ,AI,networks 目 录第一章 引言.4 1.1问题背景4 1.2五子棋简介5第二章 详细设计过程5 2.1概要介绍.5 2.1.1 本程序介绍5 2
6、.1.2 本程序优点5 2.2用软件工程方法学指导开发过程5 2.2.1 问题定义6 2.2.2 可行性研究7 2.2.3 需求分析8 2.2.4总体设计.9 2.2.5 详细设计10 2.2.6 编码和单元测试10 2.3用户界面102.4系统解析11 2.4.1 界面部分.11 2.4.1.1 CFiveChessView的属性.11 2.4.1.2 CFiveChessView的函数.12 2.4.2 通信部分14 2.4.3 其他部分15 2.4.3.1 CMatch-棋盘类.16 2.4.3.2 CMessg消息类.17 2.4.3.3 CComputer电脑类182.5人机对战中的
7、AI算法18 2.5.1 极大极小树.19 2.5.2深度优先搜索(DFS)19 2.5.3 剪枝方法.20 2.5.4 静态估值函数.21 2.5.5 AI算法的分析和改进.21 2.5.5.1算法分析.22 2.5.5.2 算法改进.24第三章 运行测试25 3.1 网络部分.25 3.2 人机部分.25第四章 总结部分27 4.1 系统总结.29 4.2 不足说明.29 4.3 致谢.28参考文献.29 第一章 引言1.1 问题背景 计算机运算速度一直遵循着摩尔定律在飞速的发展,随着这些技术的快速发展,使得大规模的运算得以在很短的时间内实现。正是基于这些技术,近年来各式各样的棋类游戏软件
8、也纷纷出现在了电脑荧屏上,使得那些喜爱下棋,又常常苦于没有对手的棋迷们能随时过足棋瘾。所以如果能设计一款兼有人工智能和网络联机的五子棋软件则对五子棋棋迷们来说无疑是个“福音”。在人机智能方面其中战胜过国际象棋世界冠军-卡斯帕罗夫的“深蓝”便是最具说服力的代表;其它像围棋的“手淡”、象棋的“将族”等也以其优秀的人工智能深受棋迷喜爱;本系统将重点放在人工智能方面,采用不同的策略将人工中的智能分为不同的等级。选择五子棋游戏作为本设计的课题,是因为该游戏的规则简单,所涉及的方向比较少。这样才能将问题的重点放在人工智能解决上,而非规则的解决,有更多的精力放在高效算法和通信过程的优化。希望能通过本次系统的
9、设计,整合所学的知识,实现从理论到实践上的升华。1.2 五子棋简介下面就五子棋的背景和规则做一些简单的介绍。五子棋是起源于中国古代的传统黑白棋种之一。现代五子棋日文称之为“连珠”,英译为“Renju”,英文称之为“Gobang”或“FIR”(Five in a Row的缩写),亦有“连五子”、“五子连”、“串珠”、“五目”、“五目碰”、“五格”等多种称谓。 五子棋不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。五子棋既有现代休闲的明显特征“短、平、快”,又有古典哲学的高深学问“阴阳易理”;它既有简单易学的特性,为人民群众所喜闻乐见,又有深奥的技巧和高水平的国际性比赛;它的棋文化源渊
10、流长,具有东方的神秘和西方的直观;既有“场”的概念,亦有“点”的连接。它是中西文化的交流点,是古今哲理的结晶。五子棋的规则如下:棋盘:采用同围棋盘一样的15 路或19 路线的棋盘,为了减小问题的规模,本系统将采用15 路线的棋盘。下法:两人分别执黑白两色棋子,轮流在棋盘上选择一个无子的交叉点落子。无子的交叉点又被称为空点。输赢判断:黑、白双方有一方的5个棋子在横、竖或斜方向上连接成一线即为该方赢。第二章 详细设计过程2.1概要介绍2.1.1本程序介绍游戏中提供两种选择模式:人机对战和人人对战。在人机对战中玩家通过选择不同的等级和电脑一决高下,可以向后悔棋。在人人对战中双方通过选择一方作为服务器
11、,通过弹出对话框设置本地应用程序监听端口,而另外一方则作为客户端,通过连接服务器选项,在弹出的对话框中设置要连接的服务器的IP地址和端口号。当双方都提示连接成功后,两方才可以进行下棋。如要悔棋则需要通过对方的同意。同时还可以实现在线聊天。AI的不同等级是以不同的搜索深度确定的。本系统以深度为2,3,4分别为初级,中级,高级。网络对战中则使用Socket实现点对点通信。2.1.2本程序特点五子棋游戏程序由于规则简单操作简便等特点,自然就成为程序员对人工智能研究的首选对象。所以网络上关于这类的程序很多,但是由于主要都是采用搜索穷举技术作为解决方案,这将使得问题的规模变的很庞大如当搜索深度为3时,每
12、走一步电脑在将最坏的情况下需要搜索的点将达到225*225*225=11390625个。即使采用的剪枝技术,其某些点的响应的时间也是让人无法忍受的,如开局时,因为这个时候每个点都是空的,没有可以剪枝的点,必须遍历真个盘面,所以很耗时间,大约需要30多秒的时间,这个显然是不可接受的。为了程序设计和玩家的忍受时间的需要。不得不减小深度,所以绝大部分都采用深度为2的检索,很明显深度越低系统的智力也相对的降低,需要代价的。本程序的一个主要特点是,采用了高效的优化方法,使得在相同的搜索规模中所花费的计算时间大幅度的减小。响应时间明显得到提高。即使搜索深度达到4的时候,其响应时间在绝大部分的情况下还是可以
13、接受的。 2.2用软件工程方法学指导开发过程 在小规模的程序开发中,很多人都不太注意用软件工程的方法学设计系统,包括我本人,在开发一些小功能程序时总是随心所欲的添加需求:有时为了类与类之间的通信需要,往类中添加不相关的变量,直接修改变量的属性或者声明一大堆的全局变量。虽然最后系统都能够”笨重”的运行起来,但这是明显违背程序设计方法学。可维护行,易修改性严重降低。后期如果需要添加某些功能的时候将变得十分的繁琐。可以想象在多个团队一起开发的大型系统中这种粗陋的开发方法根本是行不通的。所以要养成用正确的方法指导开发过程的习惯,虽然有时候看起来有点大题小做,但我觉的这是作为一名合格的软件开发工程师所必
14、须掌握的技能。通过长期不断的积累才能增加我们参与大型项目开发的能力。 下面对软件工程作下简单的介绍:软件工程一直以来都缺乏一个统一的定义,很多学者、组织机构都分别给出了自己的定义:Boehm:运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必需的相关文件资料。 IEEE:软件工程是开发、运行、维护和修复软件的系统方法。 Fritz Bauer:建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法。 目前比较认可的一种定义认为:软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证
15、明正确的管理技术和当前能够得到的最好的技术方法结合起来。 我个人对软件工程理解是,它一种工程上的方法学,用一种有步骤,有计划的正确有效方法指导开发过程。 软件工程的精髓可以用著名的软件工程专家B.Boehm的七条基本原理来概括。 (1)用分阶段的生存周期计划进行严格的管理。(2)坚持进行阶段评审。(3)实行严格的产品控制。(4)采用现代程序设计技术。(5)软件工程结果应能清楚地审查。(6)开发小组的人员应该少而精。(7)承认不断改进软件工程实践的必要性。 目前绝大部分的软件方法都可以从这七条基本推倒出来。B.Boehm指出,遵循前六条基本原理,能够实现软件的工程化生产;按照第七条原理,不仅要积
16、极主动地采纳新的软件技术,而且要注意不断总结经验。下面扼要介绍软件生存周期在本次每个阶段的基本任务2.2.1问题定义 问题定义的一个的关键问题是“要解决的问题是什么”,这个是这个阶段必须要明确要回答的问题。在没将问题定义好,试图准备下个阶段的任务。这明显是不成熟,甚至不可能的事。主界面用户选择操作 调用系统功能单机模式联机模式图2.1 系统模型 本次系统设计中首先明确了需要解决的问题是五子棋AI算法和网络通信的研究,基本的要求是设计一款能够实现网络和单机对战的五子棋游戏,提供一些基本的操作如退出系统,向后悔棋等操作,重点是放在AI算法和网络通信的研究。而并不是美工设计,也不是为了提供各种操作丰
17、富的接口。主要是通过这种可视化的界面探讨AI,当然增加可玩性和美工会给系统润色不少。 上面只是很粗略的明确大概的方向,严格按照软件工程的方法这个阶段需要生产一份书面报告。需要通过对系统的实际用户访问调查,扼要地写出他对问题的理解,并在用户和使用部门负责人的会议上认真讨论这份书面报告,澄清含糊不精的地方,改正理解不正确的地方,最后得出一份双方都满意的文档。本系统的需求很少也很明显了。 2.2.2可行性研究 这个阶段要回答的关键问题:“对于上一个阶段所确定的问题是否可行?”为了回答这个问题,我们需要进行一次大大压缩和简化了的系统分析和设计的过程,也就是在较抽象的高层次上进行的分析和设计的过程。可行
18、性研究应该比较简短,这个阶段的任务不是具体解决问题,而是研究问题的范围,探索这个问题是否值得去解,是否有可行的解决办法。可行性研究应该比较简短,这个阶段的任务不是具体解决问题,而是研究问题的范围,探索这个问题是否值得去解,是否有可行的解决办法。可行性研究以后的那些阶段将需要投入要多的人力物力。及时中止不值得投资的工程项目,可以避免更大的浪费。根据这些基本的概念,我在技术上主要是通过相关文档资料的查找后确定可行性,凭着大学期间打下厚实的专业科基础,特别是数据结构和算法,能够在这段时间内理解通透并应该有所改进,后来证明是对的。利用剩下时间也应该来说也比较充裕的。经济上暂不考虑。下面主要从技术上进行
19、分析:工具: VC+是一款经久不衰的开发工具,它代表了基于Windows的C+语言产品,完美地集成了传统的编程工具,也集成了Windows中特殊的工具箱,如MFC(Microsoft Foundation Classes)和Windows资源编辑器(App Studio)。另外还加入了几种新工具,如轮廓应用程序生成器(App Wizard)、C+类管理器(Class Wizard)和类浏览器(Class Browser),以及各种各样为开发Microsoft Windows下的C/C+程序而设计的工具,MFC类库为我们提供了丰富的类资源。所以VC+是最好的选择。本程序将采用VC的单文档的视图框
20、架,这样可以简化程序的开发。网络通信方面将从MFC封装socket的类CSocket实现点对点通信。 算法: 在这图论搜索技术这方面,前人已有很成熟的算法。如粗糙的有深度优先算法(DFS)和广度优先算法(BFS)这两个基本的算法,关键需要解决的是能够设计出一种高效的剪枝函数,减小搜索问题的规模。目前博弈类游戏中的人工智能基本都采用极大极小值方法这对我来说是个挑战,而剪枝的则采用Alpha-Beta,通过丰富的文档资料初步了解到这些技术已经很成熟了。我有信心能解决好这个问题。 Socket:联机对战中的数据传输量很少,利用Socket编程是在好不过了,而且在这方面的掌握程度不存在有问题。 所以通
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 五子棋 毕业论文 人工智能 课题
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内