同化棋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
- 同化棋AI之零——概述
- 同化棋
- 零配置 之 21.1 概述
- 【第十二章】零配置 之 12.1 概述 ——跟我学spring3
- 【第十二章】零配置 之 12.1 概述 ——跟我学spring3
- 【第十二章】零配置 之 12.1 概述 ——跟我学spring3
- FFmpeg之零概述(待续)
- 【第十二章】零配置 之 12.1 概述 12.2 注解实现Bean依赖注入 ——跟我学spring3
- 《繁星》之——零
- 【五子棋AI】一、AI概述
- 【五子棋AI】一、AI概述 .
- 人工智能(AI)概述
- C标准库之零:C标准库概述
- 操作系统之——概述
- 黑马程序员——Java概述--完完全全零基础如何运行Java程序?
- 初探java虚拟机类加载机制(零)——概述
- Hive(零)--概述
- 李飞飞访谈:AI以人为本——之笔者见
- established在ACL中的应用
- Charles教程
- 【Maven】Maven的setting.xml文件注解
- ZOJ 3954 Seven-Segment Display
- 17.4.8.3n+1猜想、考拉兹猜想
- 同化棋AI之零——概述
- 测试C++程序:使用Catch和Valgrind
- spring工作原理
- [HDU2457]DNA repair-AC自动机
- JS封装的含义及通俗比喻
- hdu 1484 Basic wall maze bfs + 输出路径
- (int*)(&a+1)
- MacOS Sierra10.12.4编译Android7.1.1源码必须跳的坑
- 报表绘图插件echarts使用教程