TexasSolver--一个比 piosolver 快的德州扑克最优策略求解器 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
icybee

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

  •  7
     
  •   icybee 2021 年 8 月 30 日 via Android 4416 次点击
    这是一个创建于 1691 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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 年 9 月 8 日
    感谢大家的支持,希望多多对 solver 提意见
    11 条回复    2021-08-31 14:27:30 +08:00
    tr>
    bigdogbigpig
        1
    bigdogbigpig  
    PRO
       2021 年 8 月 30 日 via iPhone
    牛的
    shunia
        2
    shunia  
       2021 年 8 月 30 日
    这个能让我这种不会玩德扑的进阶吗?
    icybee
        3
    icybee  
    OP
       2021 年 8 月 30 日
    @shunia 肯定有帮助的
    matrix67
        4
    matrix67  
       2021 年 8 月 30 日
    @shunia #2 感觉可以让肉泥 poker 来评测下哈哈
    endle
        5
    endle  
       2021 年 8 月 30 日
    发现 java 版本是用很宽松的 MIT 协议发布的,C++则是很严格的 AGPL 。这里面有什么故事吗?
    icybee
        6
    icybee  
    OP
       2021 年 8 月 30 日
    @endle 之前 c++版本拉了一个分支给一个做类似 solver 软件的做付费商用,结果我开发了一个月人家跑路了,一分钱没给我,于是我把本来给他写的代码全部开源出来了,但是担心他又回来白嫖我的代码,于是加了比较严格的限制
    endle
        7
    endle  
       2021 年 8 月 30 日
    @icybee 这种人好恶心啊
    icybee
        8
    icybee  
    OP
       2021 年 8 月 30 日
    @endle 哈哈无所谓,这样还能光明正大的为开源社区做贡献
    icybee
        9
    icybee  
    OP
       2021 年 8 月 30 日 via Android
    @matrix67 肉泥是啥?
    tsaoyu
        10
    tsaoyu  
       2021 年 8 月 31 日
    好活,是去英国留学了么?视频里面英伦味都出来了
    icybee
        11
    icybee  
    OP
       2021 年 8 月 31 日
    @tsaoyu 哈哈并没有,一直呆在国内
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2992 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 39ms UTC 11:18 PVG 19:18 LAX 04:18 JFK 07:18
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86