计算机(软件)学院
人工智能大作业项目报告
人工智能五子棋
姓名:
专业:计算机科学与技术
指导教师:
日期:
目录一、项目背景··················································1二、所用技术··················································1三、项目整体介绍·············································2(1)项目核心-知识的推理、搜索技术与可视化················2(2)项目外围-自然语言处理、分词与滚动词云················2四、项目核心算法介绍·········································3五、项目成果··················································4六、课程总结··················································7
项目背景
本学期人工智能导论课程的主要知识点主要包括:知识的表示与推理、搜索技术、机器学习、互联网智能、自然语言处理等几个主要方面,为了充分体现半学期以来学习的知识,将所学知识初步应用于实践之中,本次课程的最终大项目我们选择做基于人工智能的五子棋对战系统,重点集中于博弈推理模块,力求让人工智能在博弈过程中有最好的表现。同时,我们还兼顾了自然语言处理,动态可视化的对弈过程,滚动术语词云等技术,合理地应用所学知识与技术。
所用技术
我们用到了知识的表示、搜索技术、推理技术、可视化技术、机器学习、互联网智能技术和自然语言处理技术等。
技术的使用概况:
知识表示:黑白棋子位置坐标的表示。
推理技术:经若干次搜索,推理出使己方得分高敌方得分低最优解。
搜索技术:搜索己方得分最高分并搜索对方下一步最高分。
可视化:黑白棋子动态博弈和动态词云展示。
机器学习:根据经验学习不断提高博弈水平。
互联网智能技术:从网上爬取专业术语和五子棋技巧。
自然语言处理:从爬取得到的五子棋技巧中利用jieba进行分词并绘制出有关五子棋技巧的词云。
项目整体介绍
项目核心-知识的推理、搜索技术与可视化
(2)项目外围-自然语言处理、分词与滚动词云
自然语言处理既是人工智能的核心技术,又是计算机科学和语言科学的分支学科,它推动着语言智能的持续发展和突破,并越来越多的应用于各行各业。在本学期人工智能导论课程中,包括了分词、标注、句法分析等基础的自然语言处理技术,这在我们的程序中有所体现。首先,关于网络上五子棋的技巧大多是凌乱的,我们利用爬虫收集了网络上有阅读价值的一些数据,并合理地编排了格式将它们展示出来。同时,我们将五子棋中的一些专业术语,比如阴线、阳线、交叉点等,做成了一个圆形的滚动词云,当鼠标停在某一个术语上时会暂定转动,并展示其为红色。最后,我们完成了分词功能,根据一段五子棋技巧文本,进行分词,并形成一个分词结果的词云图片。在五子棋对战的页面中,我们通过按钮的方式将玩法技巧以及词云图加入到了项目之中,从而形成一个完整的五子棋对战。即用户既可以与电脑对弈,也可以了解五子棋的相关知识以及一些下棋技巧。
项目核心算法介绍
本项目的核心是五子棋的最优落子位置的选择和棋子在棋盘上的动态显示。
首先,最重要的算法就是五子棋的落子位置的选择。我们根据经验和在对弈过程中的各种情况的不断试探最后得到目前各个棋型最合理的权值分布。然后,在对弈初的前两步并不会出现输赢的趋势,所以,为了更好地使得之后的棋局更富有竞争性,我们在前两步将会在已下棋子的周围随机落子。在之后的对弈过程中,将会进行全棋盘的扫描,通过最初得到的各种棋型的权值,在横、竖、左斜和右斜四种方向上分别得到对应得分之后相加,即为每个空格的己方落子得分。在每个预测的己方落子位置之上,将会继续搜索全局,按照同样的方法得到在我方下一步落子之后敌方的最优落子得分。接下来,将会根据搜索到的多组己方的敌方得分通过推理得到一个令己方得分尽可能高,使敌方得分尽可能低的最优落子位置。
项目成果
项目成果的部分图示:
对弈棋盘:
五子棋术语词云:
五子棋技巧:
技巧中和五子棋相关词语构成的词云:
课程总结
版权声明:本站所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,不声明或保证其内容的正确性,如发现本站有涉嫌抄袭侵权/违法违规的内容。请举报,一经查实,本站将立刻删除。