智游城

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 6460|回复: 13
打印 上一主题 下一主题

对Howard探讨的bluff模型,我的计算

[复制链接]
跳转到指定楼层
1#
slclyo 发表于 2012-8-23 23:07:53 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 slclyo 于 2012-8-24 08:52 编辑

      Howard这篇文章很好,扑克的本质笔记(1-15),讲为什么要bluff的从数学上解释,http://www.zhiyoucheng.com/thread-814-1-1.html,启发很大,但是发现一些问题,觉得是H版大意了,当然本文也不比较粗糙,自己也很有可能疏忽,请见谅。
   说明:建议先阅读H版文章,表格之前黑色字为H版的内容。有些()中的内容是为了讲述的全面或科学,不要去深究了。

   上一集说要先研究一下BU在不同情况下的决策问题。因为BU的决策比UTG要简单一点,他只有两个决策需要做。第一,他拿J的时候,bluff的频率,我们拿q1表示。第二,他拿Q的时候,他call的频率,我们拿q2表示。注意当BU拿K的时候他没有什么决策好做的,100%或者bet或者call就行了。q1和q2都是从0到1的数。
    UTG的情况要稍微复杂一点,他要做三个决策。第一,他拿J的时候bluff的频率,用p1表示;第二,他拿Q的时候call BU的bet的频率,用p2表示;第三,他拿K的时候bet的频率,用p3表示。

UTG的决策
他拿J的时候bluff的频率,用p1表示               用b
他拿Q的时候call BU的bet的频率,用p2表示        用g(两个人的第三次决策)
他拿K的时候bet的频率,用p3表示                用a
4. Bet Q。这一点不如前三点那么直观。你有Q,对方不是最大的K就是最小的J,根据前两点,对手不会犯扔K或跟J的低级错误,所以你一定要check Q。
他拿Q的时候bet(raise)的频率                     用c
应该是c=0,此参数可以不放。但计算时放进去了,不影响下文整体计算推演以及最优选择,但部分细节可能影响。Lz文中以说明原因,c>0就犯错误了。以后有机会再改吧,不改的原因有2:一是懒,第二点,直观性问题,更加不直观的还有参数g,参考上面的“Bet Q”及下文推演)


BU的决策
他拿J的时候,bluff的频率,我们拿q1表示          用1-f
他拿Q的时候,他call的频率,我们拿q2表示
拿Q call raise(第一个人的bet)                   用d
拿Q flod raise(第一个人的bet)                   用1-d
拿Q check (第一个人的check)                     用e
拿Q raise (第一个人的check)                     用1-e


假设都一样
首先9人桌太复杂,我们假设只有2个人,甲和乙。
其次,flop、turn、river太麻烦,我们假设每人发一张牌,直接可以比较大小的。
第三,52张牌太多,我们假设只有一副牌只有3张牌,KQJ。K最大,J最小。
第四,bet,raise,reraise,4bet。。。太复杂,我们假设只有1次bet,对手只可以选择call,或者fold,不能raise。 (从1加注到2,我喜欢叫raise)
第五,SB,BB不方便,我们假设甲乙均投入1元,bet也是固定的1.
第六,假设两个对手没有任何的tell,纯数学问题。
底锅只可能是2、3、4




UTG1先决策,BTN2后决策,(UTG3再决策)
UTG决策参数abcg  BTN决策参数def





6倍的EV=2ad+(1-d)a+(1-a)e+2(1-a)(1-e)……
EV=(3gcf-2gc-3gf-2cf-3bd+af+ad+ae-2a+b-c-g-e-f)/6
(红色字为btn参数)
显然,凭大家感觉,UTG显然占下风,故接下来我们来寻找最优的utg参数
For a = 0 To 100 Step Cstep        (表示方便起见a=0-100计算中转换为0-1)
(计算机速度有限,步长只能取到0.05。即0  0.05  0.1  0.15)
        For b = 0 To 100 Step Cstep
            For c = 0 To 100 Step Cstep
                For g = 0 To 100 Step Cstep
                    DoEvents
                    d = -1
                    e = -1
                    f = -1
                    Max = Xuanyou(a, b, c, g, d, e, f) / 6

                Next g
            Next c
        Next b
Next a

       通过穷举abcg,再穷举def,从许多def组合中选出最让abcg受伤的组合(计算方面起见,同样utg-ev的def省略,这种省略可能对结果产生未知的影响。如下文大家可以猜猜BTN的参数配置,只有一种。(数学很重要,但是有些地方太死扣就没必要了))

    回到穷举abcg,从许多def组合中选出最让abcg受伤的组合。此假设意为两个大师较量,BTN是大师,而且完全掌握你的策略并优化了自己的策略,作为UTG的一方必然输了,那要怎么输的少一些呢,具体结果可以看表格。结论就是拿到K,raise的概率90%;拿到J,raise的概率30%;拿到Q,raise的概率0%;;拿到Q,call对手的raise的概率0%。此时你的对手也拿出杀手锏对付你,d=0,e=1,f=1;你平均每盘要输掉0.283。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏
14#
nonoppt 发表于 2012-9-20 02:15:57 | 只看该作者
好专业
13#
Howard 发表于 2012-9-10 23:39:21 | 只看该作者
slclyo兄怎么不出来了。还等着继续探讨呢
12#
 楼主| slclyo 发表于 2012-8-25 16:17:09 | 只看该作者
Howard 发表于 2012-8-25 01:02
另外关于e的项也有问题。根据逻辑分析,枪口check,纽扣位拿着Q必然是check为最佳,bet是完全doninate于che ...

虽然检查过,但还是有计算错误,修改完再看结果。
11#
Howard 发表于 2012-8-25 01:02:55 | 只看该作者
本帖最后由 Howard 于 2012-8-24 13:16 编辑

另外关于e的项也有问题。根据逻辑分析,枪口check,纽扣位拿着Q必然是check为最佳,bet是完全doninate于check的。所以EV公式中e的系数应该是常数或者0,跟a b c g不应相关(除非我们假定枪口fold K或者call J, e的系数里会出现这两个参数)

具体从表格分析,e的项目有四种:
(1-a)*e
(1-a)(1-e)
(1-b)*e*(-1)
(1-b)(1-e)(-1)

四项相加,e完全消去,系数为0,验证了逻辑分析。楼主式中e的系数为a-1,这可能也是在数字的海洋中出了个小纰漏
10#
Howard 发表于 2012-8-25 00:41:14 | 只看该作者
楼主5楼列出的UTG的EV公式是
(-3gf-3bd+af+ad+ae-2a+b-g-e-f)/6      
消去等于1的e,得到
(-3gf-3bd+af+ad-a+b-g-f-1)/6        .............楼主式

我在原文中的公式是1/6 * [ p1(1-3q2) + p2(3q1-1) + p3(q2-q1) -q1]

先统一度量衡:
p1 = b (UTG bluff J)
p2 = g (UTG call Q)
p3 = a (UTG bet K)
? = c (UTG bet Q,因为恒等于0,我没有这个对应的)
q1 = 1-f (BTN bluff J)
q2 = d (BTN call Q)
? = e (BTN bet Q,同理,恒等于0)

这样,我的公式变为:
1/6 × 【b(1-3d) + g(3-3f-1) + a(d-1+f) -1+f】
= 1/6 * (-3gf -3bd +af +ad -a +b -g +f -1)           .............霍式

比较楼主式和霍式,发现大多数项都一样,只有一个不同点:
楼主式中 -f,霍式是 +f

回头检查楼主表格,发现涉及纯f(不含其他字母)的地方有两个,每个情况又分两小点

1)枪口K,纽扣J,枪口check,
    1-1)纽扣也check, 公式:(1-a) * f *1
    1-2)纽扣bet,公式:(1-a) * (1-f) *2
2) 枪口Q,纽扣J,枪口check,
    2-1) 纽扣也check,公式: (1-c)×f ×1
    2-2)纽扣bet,枪口fold,公式:(1-c)×(1-f)×(1-g)×(-1)

四项相加,f的系数应该是1,而不是-1。楼主的-f 不知是否弄错了?
9#
Howard 发表于 2012-8-24 23:54:44 | 只看该作者
老陈 发表于 2012-8-24 07:27
首先赞扬LZ的专研精神,提出新的解决问题方法,也是难能可贵的。

但我在这里多几句嘴。

回老陈:

陈三点中我觉得第三点有启发意义,基本同意。第一和第二点我想可能是有误会

第一点:bet是1。这是个提设,也即,游戏就是这样设定的。此游戏并不是No Limit HU,而是无比简化后的Limit HU。

第二点:进攻方拿着K是有可能check的,因为有induce bluff的可能。比如,防守方bluff J概率过高,而call Q概率过低,那么进攻方check K的期望值就比bet K要高一些。
现实中的例子,就是你有坚果,对方不是中等牌就是空气,但是你下注他就全扔,你过牌他则肯定拿着空气去诈唬。

第三点,老陈说的很有启发。这类问题是否可以用step式穷举来找到最优解?多数情况是可以的,但有个前提,那就是两个玩家的EV之于所有参数在其定义域内均是连续函数。说来绕口,用人话说就是别出尖尖角。最近我看bill chen那本扑克的数学,发现很多想当然的连续光滑的函数其实是不连续的。
8#
Howard 发表于 2012-8-24 23:44:18 | 只看该作者
slclyo 发表于 2012-8-23 18:24
拿Qcheck 别人raise 去call别人的raise也是不对的。
因为即使别人KJ都raise,你都占不到一点便宜。
数学上 ...

自己拿Q,对手bet(楼主说的raise),自己是有可能call的,无论自己在UTG还是BTN位置。

情况1:对手在UTG位bet,而已知他bet K 0%(试图induce bluff),bluff J 100%,则自己在纽扣位置不call Q,岂不荒谬?

或者,自己在UTG位拿着Q check,对手bet。已知他bet K 100% 且bluff J 100%,那么自己也必须call Q。因为一半情况他有K,自己输1;另一半他有J,自己赢3。

所以楼主关于g的系数(3cf-2c-3f-1),也就是-3f-1可能是不对的。

在我的公式中,g的系数为3f-1,当f大于1/3时g为正。我还没来得及检查楼主公式的化简和合并同类项过程到底哪里出了问题,但是g的系数不可能衡负这一点,是比较有把握的。
7#
老陈 发表于 2012-8-24 21:27:57 来自手机 | 只看该作者
本帖最后由 老陈 于 2012-8-24 08:29 编辑

首先赞扬LZ的专研精神,提出新的解决问题方法,也是难能可贵的。

但我在这里多几句嘴。
(1)LZ在第五里假设BET为1,这个假设不成立,因为BET(LZ说的raise)数额的大小直接影响到防守方的决策,比如BET=0.00001,那防守方就在拿Q或K时100%地CALL,比如BET=100000,那防守方就只拿K时CALL。所以进攻方的BET是一个优化参数,不能固定。
开个玩笑,我首先假设鸡蛋是带把的,然后我就去研究鸡蛋是哪种树上结的。尽管我的研究方法非常先进,但最终找到这棵树一定是错误的。
(2)进攻方拿K时,BET的频率应该是100%才是最优,无须参数。
(3)解这个问题用穷举的方案显然是错误的。穷举的方案只能在解的集合是有限时使用,而这个问题解的集合和实数的势(实变函数的一个概念)是相等的,因此不能在这里应用。逼近的办法到可以尝试,但在能找到解析解情况下也没必要。

如果LZ还有其它的解决方案,我一定积极参与。
6#
 楼主| slclyo 发表于 2012-8-24 08:24:35 | 只看该作者
本帖最后由 slclyo 于 2012-8-24 08:33 编辑

拿Qcheck 别人raise 去call别人的raise也是不对的。
因为即使别人KJ都raise,你都占不到一点便宜。
数学上的解释。EV=(3gcf-2gc-3gf-2cf-3bd+af+ad+ae-2a+b-c-g-e-f)/6
有关g的系数为(3cf-2c-3f-1)
必然是负数。因此如果你拿去call别人的raise的话,-EV
故而g=0
c=0同理,只是g=0稍微不直观些
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|智游城论坛

GMT+8, 2024-9-27 13:13 , Processed in 0.057892 second(s), 9 queries , Redis On.

Powered by Discuz! X3.2

© 2001-2012 Comsenz Inc.

返回顶部