TexasSolver--一个比 piosolver 快的德州扑克最优策略求解器

2021-08-30 08:26:52 +08:00
 icybee
3 月份的时候,我发布了德州扑克和短牌的 java 版 solver,当时在 turn 和 river 上都比 piosolver 快,但是在 flop 上,速度差了 piosolver 将近 5~10 倍,当时就有人跟我说,你这个 solver 啊,没有用,太慢了。我说我这个有用,我这个可以优化。于是有了现在的这个 c++版本:

http://github.com/bupticybee/TexasSolver

经过 4 个月的摸鱼和 2 个月的开发,我用 c++重写了 java 版本的所有算法部分内容,并且做了非常多的优化,经过 4 个月的摸鱼和 2 个月的开发,我用 c++重写了 java 版本的所有算法部分内容,并且做了非常多的优化,我记录了一些其中的优化和结果,可以看见我是如何一步一步将 c++版本的速度提升上去的:


首先我解决了内存问题,在结果和 java 版本对齐的同时,将内存占用降低了 3~5 倍;然后开始解决速度问题,将结果和 piosolver 对齐的同时,将速度提升了 5~10 倍,于是在一系列优化之后,这次发布的 TexasSolver 终于可以在一些小的游戏树( 1-2bet+allin )的情况下追上 piosolver 的速度了。

这是 TexasSolver 的一小步,但是是开源社区的一大步

如同 hackernews 的一个小伙伴的评价:

I've noticed that in this part of the AI world, things tend to be closed-source for whatever reason and I think that limits the ability to learn. Seems good to see that changing.

在 XX-RCNN,GPT2,alphago 都已经开源的年代,一个上世纪的算法居然迟迟没有高效的开源实现,真是岂有此理,莫名其妙,让 piosolver 这种软件可以卖 1000 刀一个激活码的高价(对,我就是要卷死他)真是开源社区之耻,这让搞不完全信息博弈的研究员情何以堪,连个高效 benchmark 都没有。

扯远了,如果大家感兴趣的话,我还做了一个基于 google colab 的在线版本,感兴趣的小伙伴可以体验一下你没玩过的船新的网页版 solver:

https://colab.research.google.com/github/bupticybee/TexasSolver/blob/master/TexasSolverTechDemo.ipynb

和上次一样,我也做了 b 站和 youtube 的介绍视频:

http://www.bilibili.com/video/BV1QQ4y1h7pM#reply5278791774

​<amp-youtube data-videoid="MydczBwSfWc" layout="responsive" width="480" height="270"></amp-youtube>
感兴趣的同学可以看下。

欢迎大家多提 issue,多进代码,(手动狗头
3040 次点击
所在节点    分享创造
11 条回复
mazyi
2021-08-30 09:19:26 +08:00
牛的
shunia
2021-08-30 10:53:18 +08:00
这个能让我这种不会玩德扑的进阶吗?
icybee
2021-08-30 11:18:35 +08:00
@shunia 肯定有帮助的
matrix67
2021-08-30 11:23:38 +08:00
@shunia #2 感觉可以让肉泥 poker 来评测下哈哈
endle
2021-08-30 15:40:02 +08:00
发现 java 版本是用很宽松的 MIT 协议发布的,C++则是很严格的 AGPL 。这里面有什么故事吗?
icybee
2021-08-30 16:35:23 +08:00
@endle 之前 c++版本拉了一个分支给一个做类似 solver 软件的做付费商用,结果我开发了一个月人家跑路了,一分钱没给我,于是我把本来给他写的代码全部开源出来了,但是担心他又回来白嫖我的代码,于是加了比较严格的限制
endle
2021-08-30 17:02:53 +08:00
@icybee 这种人好恶心啊
icybee
2021-08-30 20:34:41 +08:00
@endle 哈哈无所谓,这样还能光明正大的为开源社区做贡献
icybee
2021-08-30 22:45:01 +08:00
@matrix67 肉泥是啥?
tsaoyu
2021-08-31 14:14:59 +08:00
好活,是去英国留学了么?视频里面英伦味都出来了
icybee
2021-08-31 14:27:30 +08:00
@tsaoyu 哈哈并没有,一直呆在国内

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/798739

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX