参考文献 29
2012江苏高考英语
1 绪论
选题背景
人工智能是一门正在迅速发展的新兴的综合性很强的边缘科学。它与生物工程、空间技术一起被并列为二十一世纪三大尖端技术。它的中心任务是研究如何使计算机去做那些过去只能靠人的智力才能做的工作。目前,各发达国家都把人工智能任务重点列入本国的高科技发展计划当中,投入巨大的人力和物力。作为一门边缘学科,它有诸多的研究领域:专家系统、决策支持系统、机器学习、机器视觉、自然语言理解等等,计算机博弈也是其中之一,博弈就是对策,这是自然界中的普遍现象,它不仅存在于游戏、下棋之中,而且存在于政治、经济、军事和生物竞争中,博弈的参加者可以是个人、集体、一类生物和机器,他们都力图用自己的智力去击败对手。 作为人工智能研究的一个重要分支,计算机博弈是检验人工智能发展水平的一个重要方面。
它的研究为人工智能带来了很多重要的方法和理论,产生了广泛的社会影响和学术影响[14]。
本文以计算机五子棋博弈系统作为研究课题。主要是考虑到当前网络上流传的五子棋游戏功能并不尽善尽美,其中最主要的问题就是人机对战和网络对战没有结合在一起实现;同时还存在游戏界面简单、计算机智能水平不足、也没有诸如保存棋谱和背景音乐等极有用的附加功能,所以不能吸引玩家兴趣。现在每一款成功的商业软件都越来越向功能多元化和界面简单友好化方向发展,所以我决定开发一个能够进行人机、网络对战,同时又具备许多附加功能的五子棋系统。mf8
计算机博弈介绍
计算机五子棋对弈是一种完备信息博弈[15](Games of Perfect Information),意思是指参与双方在任何时候都完全清楚每一个棋子是否存在,位于何处。只要看看棋盘,就一清二楚。象棋、围棋等都属于完全知识博弈。要想实现人和计算机双方对弈,不妨假设人是甲方,计算机是乙方,人和计算机对弈的过程可以如下表达:假设首先由甲方走棋,他面
对的是一个开始局面1,从这个局面可以有M种走法分别形成了局面2,3,……,M+1。。假设甲选择了形成局面2的走法,轮到乙下棋。乙面对局面2,又可以有N种可能的走法,形成N种新的局面K+1,K+2,……K+N,。
如果甲选择形成局面3,4,……,N+1走法,乙方都对应有若干种走法。这样甲乙双方轮流下棋,,通常称为博弈树。
博弈树最终的叶结点有甲赢乙输,甲输乙赢,甲乙平手三种。下棋者总是从当前局面出发选择最有利于自己的走法下一子,如甲在局面1,他将从乙2、乙3等局面中选择最有利于自己的走法;同样,乙在局面2时也从甲4、甲5等局面中选择最有利自己的走法。为了从很多的局面中选出最有利的,就需要一个搜索算法和一个对局面形势进行判断的函数。搜索算法通常使用极大极小算法、Alpha-Beta剪枝技术,对形势的好坏,用估值函数进行判断,这些将在论文中介绍。
五子棋基本知识介绍
五子棋是起源于中国古代的传统黑白棋种之一。现代五子棋日文称之为“連珠”,英译为“Renju”,英文称之为“Gobang”或“FIR”(Five in a Row的缩写),亦有“连五子”、“五子连”、“串珠”、“五目”、“五目碰”、“五格”等多种称谓。连杆机构
五子棋不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。五子棋既有现代休闲的明显特征“短、平、快”,又有古典哲学的高深学问“阴阳易理”;它既有简单易学的特性,为人民众所喜闻乐见,又有深奥的技巧和高水平的国际性比赛;它的棋文化源渊
流长,具有东方的神秘和西方的直观;既有“场”的概念,亦有“点”的连接。它是中西文化的交流点,是古今哲理的结晶。
现在世界上有许多五子棋的变种,在某种程度上,它们都是对棋手的限制,主要是抑制黑方先行者的优势。在本文中,并没有涉及职业五子棋中对于黑方的禁手限制,而是讨论通常的自由式的五子棋对弈。
本论文中五子棋基本规则如下:
(1)棋盘:采用国际上标准的15*15路线的正方形棋盘。
(2)下法:两人分别执黑白两棋子,轮流在棋盘上选择一个无子的交叉点(又称为空点)走子,规定执黑者先行。
(3)胜负判断:网络对弈时黑、白某方在横、竖或斜方向上出现五子连珠时判该方胜。人机对弈时由于估值函数的特殊性,计算机只要发现某方局面估值的绝对值大于8000即判该方胜(如活三、冲四等棋型出现时,系统可能就提示游戏结束了)。
地名学 开发及运行环境
开发环境
●Intel® Core® T2300 ,1GB内存,60G硬盘
●Microsoft® Windows™ XP Home
●Microsoft® Visual Studio 2008
●Visual Assist X
运行环境
●Intel® Pentium® 2及以上处理器,128M以上内存
●Microsoft® Windows™ 2000及以上操作系统
●800*600或以上的屏幕分辨率遗传与变异
本文结构
米兰昆德拉本论文一共分为六大章,具体结构如下:
第一章介绍了选题背景、计算机博弈和五子棋基本知识、开发运行环境及文章结构。
第二章简略地叙述系统的总体设计。
第三章重点讲述人机对弈中的AI,包括数据结构表示、走法产生、搜索算法以及估值核心。
第四章阐述UI界面设计。主要包括界面设计思想和核心界面盘点。
第五章讨论联机功能的实现,核心技术在于五子棋消息系统。
第六章则是全文总结及展望。
2 系统总体设计
系统架构
智能五子棋是使用Visual Studio 2008开发的基于对话框的MFC程序。本程序由37个类、6
个结构体、12个全局函数以及若干其它变量、枚举类型、宏等组成。其中核心类11个,包括用于实现单机AI算法的4个类:CEvaluation(估值核心)、CHistoryHeuristic(历史启发增强)、CTranspositionTable(置换表增强)和CNegaScout_TT_HH(核心的NegaScout算法类);用于实现网络通信的CFiveSocket类和用于用户界面交互的6个类:CChessBoard(棋盘类)、CFiveDlg(主对话框类)、CMusic类(音乐类)、CTabChatDlg(聊天页面类)、CTabHCGameDlg(单机游戏页面类)和CTabMusicDlg(迷你音乐播放器页面类)。