人工智能大年夜功课项目申报和源码——五子棋对战系统 人工智能 java_落子_技巧
打算机(软件)学院
人工智能大作业项目报告
人工智能五子棋
姓 名:
专 业:打算机科学与技能
辅导西席:
日 期:
目录一、项目背景··················································1二、所用技能··················································1三、项目整体先容·············································2(1)项目核心 - 知识的推理、搜索技能与可视化················2(2)项目外围 - 自然措辞处理、分词与滚动词云················2四、项目核心算法先容·········································3五、项目成果··················································4六、课程总结··················································7
项目背景本学期人工智能导论课程的紧张知识点紧张包括:知识的表示与推理、搜索技能、机器学习、互联网智能、自然措辞处理等几个紧张方面,为了充分表示半学期以来学习的知识,将所学知识初步运用于实践之中,本次课程的终极大项目我们选择做基于人工智能的五子棋对战系统,重点集中于博弈推理模块,力求让人工智能在博弈过程中有最好的表现。同时,我们还兼顾了自然措辞处理,动态可视化的对弈过程,滚动术语词云等技能,合理地运用所学知识与技能。所用技能我们用到了知识的表示、搜索技能、推理技能、可视化技能、机器学习、互联网智能技能和自然措辞处理技能等。技能的利用概况:知识表示:黑白棋子位置坐标的表示。推理技能:经多少次搜索,推理出使己方得分高敌方得分低最优解。搜索技能:搜索己方得分最高分并搜索对方下一步最高分。可视化:黑白棋子动态博弈和动态词云展示。机器学习:根据履历学习不断提高博弈水平。互联网智能技能:从网上爬取专业术语和五子棋技巧。自然措辞处理:从爬取得到的五子棋技巧中利用jieba进行分词并绘制出有关五子棋技巧的词云。项目整体先容项目核心 - 知识的推理、搜索技能与可视化在一个智能对弈系统中,人工智能有着绝对的上风,通过不断地学习知识、积累履历、修正权值,其事情效率可以不断提高,可信度会不断改进。考虑到在对弈的前两步我们不会有输赢的趋势,以是前两步我们会在棋子的周围随机下棋。从第三步开始,系统就要扫描全体棋局,构建博弈树,接着用深度优先算法评估自己是否占上风。同时还会根据自己的利害势选择进攻还是防守,在不同情境下,系统选择的落子位置也会有所不同。对付每一个点击事宜,我们将其转化为棋盘之中可视化的黑白棋子交替博弈,通过坐标推算其位置,通过算法供应多少可能的应对方法,末了,通过搜索技能在可能解中迅速找到最优解,并推理出指定的下棋位置。可视化的对弈过程,搜索、推理以及详细的博弈剖析算法既在程序之中得以表示,也在可见于对弈的过程之中。当然在交互页面上,我们也同时做了悔棋、选择先手等功能,这是为了用户能够更好地利用这个别系体验与机器博弈的过程。(2)项目外围 - 自然措辞处理、分词与滚动词云自然措辞处理既是人工智能的核心技能,又是打算机科学和措辞科学的分支学科,它推动着措辞智能的持续发展和打破,并越来越多的运用于各行各业。在本学期人工智能导论课程中,包括了分词、标注、句法剖析等根本的自然措辞处理技能,这在我们的程序中有所表示。首先,关于网络上五子棋的技巧大多是缭乱的,我们利用爬虫网络了网络上有阅读代价的一些数据,并合理地编排了格式将它们展示出来。同时,我们将五子棋中的一些专业术语,比如阴线、阳线、交叉点等,做成了一个圆形的滚动词云,当鼠标停在某一个术语上时会暂定迁徙改变,并展示其为赤色。末了,我们完成了分词功能,根据一段五子棋技巧文本,进行分词,并形成一个分词结果的词云图片。在五子棋对战的页面中,我们通过按钮的办法将玩法技巧以及词云图加入到了项目之中,从而形成一个完全的五子棋对战。即用户既可以与电脑对弈,也可以理解五子棋的干系知识以及一些下棋技巧。
项目核心算法先容本项目的核心是五子棋的最优落子位置的选择和棋子在棋盘上的动态显示。首先,最主要的算法便是五子棋的落子位置的选择。我们根据履历和在对弈过程中的各种情形的不断试探末了得到目前各个棋型最合理的权值分布。然后,在对弈初的前两步并不会涌现输赢的趋势,以是,为了更好地使得之后的棋局更富有竞争性,我们在前两步将会在已下棋子的周围随机落子。在之后的对弈过程中,将会进行全棋盘的扫描,通过最初得到的各种棋型的权值,在横、竖、左斜和右斜四种方向上分别得到对应得分之后相加,即为每个空格的己方落子得分。在每个预测的己方落子位置之上,将会连续搜索全局,按照同样的方法得到在我方下一步落子之后敌方的最优落子得分。接下来,将会根据搜索到的多组己方的敌方得分通过推理得到一个令己方得分尽可能高,使敌方得分尽可能低的最优落子位置。其次,对付棋盘棋子的可视化和动态显示。首先,我们先通过丈量打算出棋盘的像素大小、棋盘上面第一个横线和竖线的位置和棋盘上面格与格之间的间隔大小。然后根据棋盘格之间的间隔按照得当的大小调度棋子的大小。然后,在鼠标点击棋盘触发落子事宜时,通过对鼠标点击坐标根据之前的丈量结果进行合理的打算得到在一定范围内都能匹配到棋盘上对应格子的坐标(这里是格子的坐标,并非位置像素坐标)。当此为空格时将对应棋子的图片根据坐标的打算得到放置位置。当打算机落子时,根据算法得到的最优落子位置(格子的坐标)同样通过打算得到放置位置。对付悔棋功能,我们设置了一个存放落子的栈,触发悔棋功能时,将会从栈中取出两枚棋子并将其在棋盘上显示的图片删除。项目成果项目成果的部分图示:对弈棋盘:五子棋术语词云:
五子棋技巧:
技巧中和五子棋干系词语构成的词云:
课程总结
人工智能导论课程是入门人工智能领域的根本课程,末了的大作业项目中,表示了对付课程的学习成果。当然,本学期所学知识并非仅此而已,例如遗传算法、粒子群算法、蚁群算法等优化算法、知识表示的框架表示法、几类经典的的机器学习模式、模糊推理的过程、通过例题练习,查看神经网络学习结果与反馈机制的关系等,这些都给我们留下了很深的印象;其次,许多技能的实现都涉及到了非常都雅的可视化页面,提升了我们对付人工智能课程的兴趣;末了,感谢老师半年以来对我们的悉心教诲,为我们今后的学习生涯掌灯。
本文系作者个人观点,不代表本站立场,转载请注明出处!