V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
icybee
V2EX  ›  分享创造

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

  •  7
     
  •   icybee · 2021-08-30 08:26:52 +08:00 via Android · 3436 次点击
    这是一个创建于 1212 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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


    感兴趣的同学可以看下。

    欢迎大家多提 issue,多进代码,(手动狗头
    第 1 条附言  ·  2021-09-08 10:40:07 +08:00
    感谢大家的支持,希望多多对 solver 提意见
    11 条回复    2021-08-31 14:27:30 +08:00
    mazyi
        1
    mazyi  
       2021-08-30 09:19:26 +08:00 via iPhone
    牛的
    shunia
        2
    shunia  
       2021-08-30 10:53:18 +08:00
    这个能让我这种不会玩德扑的进阶吗?
    icybee
        3
    icybee  
    OP
       2021-08-30 11:18:35 +08:00
    @shunia 肯定有帮助的
    matrix67
        4
    matrix67  
       2021-08-30 11:23:38 +08:00
    @shunia #2 感觉可以让肉泥 poker 来评测下哈哈
    endle
        5
    endle  
       2021-08-30 15:40:02 +08:00
    发现 java 版本是用很宽松的 MIT 协议发布的,C++则是很严格的 AGPL 。这里面有什么故事吗?
    icybee
        6
    icybee  
    OP
       2021-08-30 16:35:23 +08:00
    @endle 之前 c++版本拉了一个分支给一个做类似 solver 软件的做付费商用,结果我开发了一个月人家跑路了,一分钱没给我,于是我把本来给他写的代码全部开源出来了,但是担心他又回来白嫖我的代码,于是加了比较严格的限制
    endle
        7
    endle  
       2021-08-30 17:02:53 +08:00
    @icybee 这种人好恶心啊
    icybee
        8
    icybee  
    OP
       2021-08-30 20:34:41 +08:00
    @endle 哈哈无所谓,这样还能光明正大的为开源社区做贡献
    icybee
        9
    icybee  
    OP
       2021-08-30 22:45:01 +08:00 via Android
    @matrix67 肉泥是啥?
    tsaoyu
        10
    tsaoyu  
       2021-08-31 14:14:59 +08:00
    好活,是去英国留学了么?视频里面英伦味都出来了
    icybee
        11
    icybee  
    OP
       2021-08-31 14:27:30 +08:00
    @tsaoyu 哈哈并没有,一直呆在国内
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3916 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 00:59 · PVG 08:59 · LAX 16:59 · JFK 19:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.