欢迎来到广州大学 计算科技研究院!
中文  |  English
当前位置: 首页   >   景中班   >   正文

景中班学业报告会第四期 | 棋盘里探新“景”,表彰“中”求奋进

作者:    信息来源:    发布时间: 2019-10-17

10月15日下午,景中班展示五子棋系统更多改进和优化内容,本期是承接10月8日下午的报告会,由编号21-39的同学进行汇报。

同学们展示了如下更多的创新点:

❶ 提示功能

在小程序的开发中,提示功能至关重要,提示功能会根据估值函数和搜索树的估分为你准备一个最佳的落子点,当用户无从下手的时候,可以提高用户的体验感。

❷ 保存功能

当一盘棋非常经典或者由于某些原因无法继续下棋时,用保存功能将棋局保存起来,具体实现方法是:将棋盘上每一个点的信息读取之后存储于一个文件中,当要恢复残局时只需要在五子棋游戏界面选择该文件,就可以将存储的信息复现到棋盘上继续下棋。

❸ 禁手模式

因为五子棋中,黑棋先走,会有明显的优势。为了维持五子棋竞技双方的机会均等,就有了“禁手”规则(如三三禁手、四四禁手、长连禁手)。

而在正规比赛中,也有禁手的规定。当将要落下一颗棋子时,检查该棋子周围的棋盘点,如果落子会出现了违规的走法,则提示触发了“禁手”规则而不能在该点落子,维持双方平等的原则。

❹ 历史启发优化算法

人会在不停的下棋中积累经验,而普通的五子棋系统只是根据估值来下棋,为了利用下棋过程中产生的历史记录,我们可以建立一个History类来记录历史上可以取胜的棋局,如果落在某一点能形成这种棋局,那我们称这个点为一个“好点”,我们倾向于落子于该点。

除此之外,还有同学做出了可以联机聊天的五子棋系统和计时器,都可提高用户体验。

针对性采访

有同学在算法方面做了较有特色的改动,运用了负极大值优化、历史启发优化,我们采访了这位同学。

受访者:黄灏

Q :你的棋局是以怎样的格式保存起来的呢?

黄灏:

使用 Java 对象流,自定义类接入 serializable 接口序列化后,便可以很轻易的将棋盘内容进行读写。但是除了保存棋盘以外还需要保存一些棋局的基本信息比如说游戏模式,智能模式等等。

Q :你是怎么想到负极大值优化与历史启发优化的呢?

黄灏:

主要还是根据 alpha - beta 剪枝算法的一些不足去思考的。第一点就是搜索过程中存在一些繁琐的操作,我们总要检查哪一方要取极大值而哪一方又要取极小值,以执行不同的动作。通过用负极大值方法来进行优化以消除之间的差异是很好的办法。第二点的话便是搜索算法的不稳定性,节点的排序顺序对于搜索效率有着至关重要的影响,如何对生成的节点进行有效的排序便是历史启发优化的方向。

Q :你觉得这两种优化方式在哪些方面优化了五子棋对弈?

黄灏:

① 负极大值算法的核心在于 :父节点的值是各子节点的值的负极大值,通过这种方式消除双方下棋的差异性,提高代码的可读性的同时可以省去一些繁琐的操作。

② 对于历史启发算法优化而言,其关键在于寻找好的节点,给它提高历史搜索得分后,对节点进行重新排序(根据历史得分) ,这样便可以使得搜索的时候,电脑会优先搜索历史得分高的节点,这样可以有效的提高电脑搜索的效率。

Q:你觉得做完这个五子棋你有什么收获吗?

黄灏:

ddl(截止日期)真的是第一驱动力,还有同学们的功能补充以及优化让我眼前一亮,从创新意识到思考角度都很值得我学习。

1909 期“景中之光”表彰会

本次学业报告会结束后,进行了简短而隆重的表彰会,对在 2019年 9 月份表现优秀的景中班同学进行了表彰。

景中院士团队就九月的学业报告和数学建模培训等活动进行了评分,评出了 11 位表现优秀的同学,由计算科技研究院的老师为同学们颁发了奖状和小奖品,以此鼓励同学们,再接再厉,再创佳绩。

获得 1909 期“ 景中之光 ”荣誉称号名单:

谢治东、林嘉丽、李宗杰、黄灏、李妙旋、刘舜花、林锦天、林弋刚、刘佳合、陈国乔、叶嘉丽


官方微信公众号