同化棋AI之零——概述

来源:互联网 发布:vm虚拟机装mac 编辑:程序博客网 时间:2024/05/16 06:01

上学期选了计算概论A课程,课程的大作业是写同化棋(ATAXX)的AI和GUI(当然重点是AI)。AI方面当时从简单的一步贪心开始写起,先是尝试加深搜索深度,后来加上了alpha-beta剪枝算法、启发式搜索以及迭代加深算法,性能有了比较大的提升;GUI的设计选择了Qt编程,依靠仅有的一点C++知识,看了很多Qt代码,同时也不断尝试,最后写出了一个比较简陋的图形界面。在学期期末的评测中,我的AI在botzone网站上总排名18(一共181人),还算是不错的。


这学期学院举办同化棋争霸赛,为了拿到名次,我对我的AI代码进行了较大幅度的改进(重写3遍)。主要在三个方面进行了改进:

一是引入了位运算,大大提升了存储效率和运算速度;

二是优化了启发函数,通过三步贪心和两步贪心编写启发函数,同时还直接删除排名比较靠后的决策,大幅提高了alpha-beta剪枝的效率;

三是引入了信号,一劳永逸地解决了超时问题(每步决策必须在1秒之内完成)。

改进的效果还是很显著的,最终经过三轮积分赛,有幸拿到第二名的名次。


接下来的几篇文章,我会梳理一下我的同化棋AI的思路(新版),算是一个总结吧。


同化棋规则及游戏要求简介:https://wiki.botzone.org/index.php?title=Ataxx

0 0