我对于德州扑克 ai 的接触始于 2019 年,那个时候我还在上研究生,当时有个挺有意思的老板通过 icyChessZero 这个项目找到我,问我有没有兴趣为他开发德州扑克的 ai,他可以给我报销机器钱,还可以有一点点的报酬,当时我正好在看很多关于德扑 ai 的论文,本来也有这个打算,于是想都没想就接了这个活,也开始了我和德州扑克 ai 真正的交集。虽然到 2020 年最后我写的德州扑克 solver 并没有被采用,最后老板还是选择了名声更大的一个项目进行合作,但是这中间构建德州扑克 solver 的过程是有趣的,这个 solver 我也终于在今年春节期间把代码整理清楚并且开源,算是不旺我花费在德扑 ai 上的这些时间,开源的这个项目也是目前据我所知最完善的德州扑克开源 solver,虽然它没有界面,功能也不能称得上尽善尽美,但是比起 1000 刀的 piosolver,它不要钱啊:
https://github.com/bupticybee/TexasHoldemSolverJava
国内用 solver 打德州的应该还比较少,但是国外现在如果不用 solver 去打线上德州基本就是“鱼”,就是送钱天使,但是专业的 solver 又很贵(便宜的上百刀),于此同时市面上有没有一个好的德州扑克的开源 solver,所以这个项目应该来说是有点价值的。
我甚至还专门做了一个 B 站视频介绍这个开源项目:
https://www.bilibili.com/video/BV1s5411N7gf
由于国外目标用户也很多,我甚至操着塑料英语厚着脸皮做了一个英文油管的视频:
https://www.youtube.com/watch?v=tf34v0fCvi0
我甚至还到专门的德州论坛上去介绍自己的软件,还是收获了一些鼓励的,请允许我得瑟一下摘抄几句:
如果有玩德州比较深的应该知道这个项目的意义,如果你不玩德州,也没关系~哈哈留下你的 star 就好~
1
PMR 2021-02-25 07:49:36 +08:00 via Android
前面 本想点 star fork
后面来个球 star? 让了 |
2
kop1989 2021-02-25 09:24:17 +08:00
关于这个我有一个问题请教 lz 。
德州扑克是不是每局完成后重新洗牌的?如果重新洗牌,是不是对应桌面上所有牌(明牌、暗牌、未发的牌)的概率就是每局固定的?那么既然牌面概率是每局固定的,其他人的筹码分配策略也未知(假设这个 ai 没有针对对方 id 的学习功能)那么 ai 的统计学意义在哪?或者说这个 ai 与发牌概率计算器的区别在哪里? |
3
CallMeReznov 2021-02-25 09:36:39 +08:00
|
4
anzu 2021-02-25 09:37:48 +08:00
需要猜对手的手牌概率然后求解,对高玩比较有用。
|
5
doveyoung 2021-02-25 10:07:27 +08:00
想知道,AI 能判断出来对方是在诈唬吗
|
6
bigtan 2021-02-25 10:08:15 +08:00 via iPhone
牛逼啊,难怪各种平台 pgo 越来越多
|
7
icybee OP @CallMeReznov 哈哈用 py 写的原型然后代码迁移到 java,结果没全部迁移完
|
10
icybee OP @kop1989 差别非常大,但是一两句话说不完,建议看下 An introduction to counterfactual regret minization 这篇文章,总的来说德州扑克 solver 的算法求的是纳什均衡策略而不是胜率,这是完全不同的两个东西
|
13
icybee OP @bigtan 怎么说呢,国内国外平台都是,没有点工具就上基本会被认为是送钱天使,其实对德州发展很不好
|
14
wzb0909 2021-02-25 11:36:17 +08:00
|
17
icybee OP @wzb0909 我其实不这么觉得,因为德州扑克本身就是一个很有挑战的问题,可以说是近几年来算法的一个桂冠,自己打起来不一定觉得好玩,但是让机器去做这个事情,其实是蛮有意思的
|
18
icybee OP @wzb0909 @kop1989 主要看的是这么几篇论文:
cfr 算法本身:An introduction to counterfactual regret minization mccfr(在开源项目里也有实现):Monte Carlo Sampling for Regret Minimization in Extensive Games. cfr+(在开源项目里也实现了) :Solving Large Imperfect Information Games Using CFR+ discounted cfr(在开源项目里也实现了) : Solving Imperfect-Information Games via Discounted Regret Minimization Libratus(冷扑论文) : Superhuman AI for heads-up no-limit poker: Libratus beats top professionals Pluribus(德州六人扑克):Superhuman AI for multiplayer poker deepstack(加入了神经网络):DeepStack: Expert-Level Artificial Intelligence in No-Limit Poker |
19
123jiayue 2021-02-25 13:57:58 +08:00 via Android 1
以前看那些打十几桌的低级别的基本也和机器人差不多 风格紧一点等鱼就是很累资金管理正常也是能赚 不过现在玩家水平高了不少没那么多鱼了😄
|
20
pkwenda 2021-02-25 16:17:52 +08:00
晚上打两把试试
|
22
icybee OP @anzu 不完全是,手牌概率有其他软件可以算,cfr 算法也可以从 preflop 就开始算 range
|
23
acidsweet 2021-02-26 18:14:41 +08:00
感觉很多人德州都没基础阿,德州永远都不能猜出对手准确的手牌,只能猜范围;
solver 是 GTO 在软件上的实现;而 GTO 并不是什么必胜的策略,它是纳什均衡在德州上的应用,也就是一种确保自己不被剥削的策略; 关于这个有机会可以写一些科普文章给大家 |
24
icybee OP @acidsweet 这个认识有一部分是不对的,其实也不能说不对,只是说当前市面上的工具都不支持,通过类似类似 deepstack 的 CFR-D 加上 continue-resolving 可以在纳什均衡内求得对方的手牌范围的,不需要猜,但是对于你说的第二点,他没法去剥削这个倒是真的,我感觉这块可能可以加上强化学习的元素,强化学习擅长剥削,感觉这两者的结合很可能是之后德州扑克 ai 的发展方向
|
25
xcm153 2021-03-01 20:11:52 +08:00
老哥用这个程序后,真正实战过吗,胜率如何
|