人工智能大作业项目报告和源码——五子棋对战系统 人工智能 java

计算机(软件)学院

人工智能大作业项目报告

人工智能五子棋

姓 名:

专 业:计算机科学与技术

指导教师:

日 期:

目录一、项目背景··················································1二、所用技术··················································1三、项目整体介绍·············································2(1)项目核心 - 知识的推理、搜索技术与可视化················2(2)项目外围 - 自然语言处理、分词与滚动词云················2四、项目核心算法介绍·········································3五、项目成果··················································4六、课程总结··················································7

  1. 项目背景
    本学期人工智能导论课程的主要知识点主要包括:知识的表示与推理、搜索技术、机器学习、互联网智能、自然语言处理等几个主要方面,为了充分体现半学期以来学习的知识,将所学知识初步应用于实践之中,本次课程的最终大项目我们选择做基于人工智能的五子棋对战系统,重点集中于博弈推理模块,力求让人工智能在博弈过程中有最好的表现。同时,我们还兼顾了自然语言处理,动态可视化的对弈过程,滚动术语词云等技术,合理地应用所学知识与技术。
  2. 所用技术
    我们用到了知识的表示、搜索技术、推理技术、可视化技术、机器学习、互联网智能技术和自然语言处理技术等。
    技术的使用概况:
    知识表示:黑白棋子位置坐标的表示。
    推理技术:经若干次搜索,推理出使己方得分高敌方得分低最优解。
    搜索技术:搜索己方得分最高分并搜索对方下一步最高分。
    可视化:黑白棋子动态博弈和动态词云展示。
    机器学习:根据经验学习不断提高博弈水平。
    互联网智能技术:从网上爬取专业术语和五子棋技巧。
    自然语言处理:从爬取得到的五子棋技巧中利用jieba进行分词并绘制出有关五子棋技巧的词云。
  3. 项目整体介绍
  4. 项目核心 - 知识的推理、搜索技术与可视化

在一个智能对弈系统中,人工智能有着绝对的优势,通过不断地学习知识、积累经验、修改权值,其工作效率可以不断提高,可信度会不断改善。考虑到在对弈的前两步我们不会有输赢的趋势,所以前两步我们会在棋子的周围随机下棋。从第三步开始,系统就要扫描整个棋局,构建博弈树,接着用深度优先算法评估自己是否占优势。同时还会根据自己的优劣势选择进攻还是防守,在不同情境下,系统选择的落子位置也会有所不同。对于每一个点击事件,我们将其转化为棋盘之中可视化的黑白棋子交替博弈,通过坐标推算其位置,通过算法提供若干可能的应对方法,最后,通过搜索技术在可能解中迅速找到最优解,并推理出指定的下棋位置。可视化的对弈过程,搜索、推理以及具体的博弈分析算法既在程序之中得以体现,也在可见于对弈的过程之中。当然在交互页面上,我们也同时做了悔棋、选择先手等功能,这是为了用户能够更好地使用这个系统体验与机器博弈的过程。
(2)项目外围 - 自然语言处理、分词与滚动词云

自然语言处理既是人工智能的核心技术,又是计算机科学和语言科学的分支学科,它推动着语言智能的持续发展和突破,并越来越多的应用于各行各业。在本学期人工智能导论课程中,包括了分词、标注、句法分析等基础的自然语言处理技术,这在我们的程序中有所体现。首先,关于网络上五子棋的技巧大多是凌乱的,我们利用爬虫收集了网络上有阅读价值的一些数据,并合理地编排了格式将它们展示出来。同时,我们将五子棋中的一些专业术语,比如阴线、阳线、交叉点等,做成了一个圆形的滚动词云,当鼠标停在某一个术语上时会暂定转动,并展示其为红色。最后,我们完成了分词功能,根据一段五子棋技巧文本,进行分词,并形成一个分词结果的词云图片。在五子棋对战的页面中,我们通过按钮的方式将玩法技巧以及词云图加入到了项目之中,从而形成一个完整的五子棋对战。即用户既可以与电脑对弈,也可以了解五子棋的相关知识以及一些下棋技巧。

  1. 项目核心算法介绍
    本项目的核心是五子棋的最优落子位置的选择和棋子在棋盘上的动态显示。
    首先,最重要的算法就是五子棋的落子位置的选择。我们根据经验和在对弈过程中的各种情况的不断试探最后得到目前各个棋型最合理的权值分布。然后,在对弈初的前两步并不会出现输赢的趋势,所以,为了更好地使得之后的棋局更富有竞争性,我们在前两步将会在已下棋子的周围随机落子。在之后的对弈过程中,将会进行全棋盘的扫描,通过最初得到的各种棋型的权值,在横、竖、左斜和右斜四种方向上分别得到对应得分之后相加,即为每个空格的己方落子得分。在每个预测的己方落子位置之上,将会继续搜索全局,按照同样的方法得到在我方下一步落子之后敌方的最优落子得分。接下来,将会根据搜索到的多组己方的敌方得分通过推理得到一个令己方得分尽可能高,使敌方得分尽可能低的最优落子位置。
    其次,对于棋盘棋子的可视化和动态显示。首先,我们先通过测量计算出棋盘的像素大小、棋盘上面第一个横线和竖线的位置和棋盘上面格与格之间的间隔大小。然后根据棋盘格之间的距离按照合适的大小调整棋子的大小。然后,在鼠标点击棋盘触发落子事件时,通过对鼠标点击坐标根据之前的测量结果进行合理的计算得到在一定范围内都能匹配到棋盘上对应格子的坐标(这里是格子的坐标,并非位置像素坐标)。当此为空格时将对应棋子的图片根据坐标的计算得到放置位置。当计算机落子时,根据算法得到的最优落子位置(格子的坐标)同样通过计算得到放置位置。对于悔棋功能,我们设置了一个存放落子的栈,触发悔棋功能时,将会从栈中取出两枚棋子并将其在棋盘上显示的图片删除。
  2. 项目成果
    项目成果的部分图示:
    对弈棋盘:


五子棋术语词云:


五子棋技巧:


技巧中和五子棋相关词语构成的词云:

  1. 课程总结

人工智能导论课程是入门人工智能领域的基础课程,最后的大作业项目中,体现了对于课程的学习成果。当然,本学期所学知识并非仅此而已,例如遗传算法、粒子群算法、蚁群算法等优化算法、知识表示的框架表示法、几类经典的的机器学习模式、模糊推理的过程、通过例题练习,查看神经网络学习结果与反馈机制的关系等,这些都给我们留下了很深的印象;其次,许多技术的实现都涉及到了非常美观的可视化页面,提升了我们对于人工智能课程的兴趣;最后,感谢老师半年以来对我们的悉心教诲,为我们今后的学习生涯掌灯。

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值