找回密码
 立即注册
搜索
热搜: 活动 交友
查看: 964|回复: 0

参赛程序设计思路-DDQK-Conquer

[复制链接]

6

主题

22

回帖

80

积分

注册会员

积分
80
发表于 2-11-2025 17:49:06 来自手机 | 显示全部楼层 |阅读模式
2021年首次参赛,DDQKconquer经过了长时间的打磨与尝试

讲述一下今年程序的思路

底层逻辑采用启发式的ab剪枝算法

当初最早打算吧神经网络加进去的

神经网络都写好了,结果在gpu上面跑了一天,跑出来的网络怎么说呢,哎,一言难尽,就是说真的就和炼丹一样,永远都不知道练出来的是什么样的

training loss维持在惊人的20左右,效果不太好
最后就把神经网络给删掉了
希望以后有机会把神经网络加上去吧,这毕竟是目前零和博弈类游戏改进的趋势。

今年最重大的改进就是速度上面的提升

今年的速度,比上一个版本(5.7),提升了将近200% 足以使得13个的宽度,9层的深度在5秒内计算成功

相比较一下,5.7的棋力是9层宽,9层深,但是经常会出现超过5秒的计算。甚至是10秒多的

今年最长的计算不会超过5秒,基本上全是0点几秒出结果。

究其原因是因为今年改进了底层的算法逻辑。

今年的底层逻辑,删除了以前冗余长的一些不必要的计算。

比如,对于选点的排序问题今年做了很大的改进。

以前排序都是来一个,进行一个个的插排。这样看上去已经是最优的了

但是,今年在插排的基础上,增加了插排加二分法

你可能觉得,13个数,有必要2分吗?实际上,这个2分法直接使得程序有了极大的提升。


其次,是利用c++对程序加速。自己重新写了诸如min,max,len python内置的函数,使得程序大幅度提升。

程序的每一次突破,都是为了每个0.1秒的追求,为了更极致,更有效率的运算

追求更好,更快,更强,才是编写五子棋人工智能的真谛。

再举个例子

今年我把python的哈希函数改掉了,改成我自己的了。

python的哈希函数,可能是为了不失一般性,对与特定的数据类型处理并不是那么好。

我写了一个,比如说
4,1,2,3
这个数组,进行
4右移12位
1右移8位
2右移4位
3
几个进行或运算

这比python自带的处理器快。
运用底层的或运算,位移运算,可以达到更好的效果

更快,更强,才是五子棋程序的真谛
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|RealDevClub ( 沪ICP备2024093864号-1 )

GMT+8, 4-12-2025 09:28 , Processed in 0.056286 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表