用PioSOLVER来探求最优策略

  • 149
  • A+

用PioSOLVER来探求最优策略


如需系统学习GTO,请点击查看德州扑克GTO视频课程:https://www.moshike.com/a/4232.html 


PioSOLVER,是一个计算最优策略(GTO)的扑克分析软件。软件算法背后的核心原理,是博弈论中的纳什均衡。我这篇文章不打算讲解其原理,而是讲这个软件的基本用法以及一个牌局的最优打法(准确地说,应该叫不被剥削的打法)。

首先,牌例如下:

20220319143118


我有BTN466手牌的数据,他的VPIP/PFR为25/20,在BTN的偷盲率为50%。跟注3bet的range为10%,4bet的range为1.9%,所以从数据来看,我3bet让对手弃牌的概率接近80%。

我3bet后,对手跟注了。翻牌面很干燥,K是张对我的range很有帮助的牌。我做了个小额连续下注。注意,在干燥的翻牌面下,连续下注的额度可以小一点,如果我这里的手牌是AA/KK,也不会下大注,因为牌面没有什么听牌需要担心。

对手跟注后,我在转牌圈捡到一个后门同花听牌。我用我的强听牌再开一枪,对手仍然跟注。

河牌的2h是张无关牌,结合前面几条街的表现来看,我的A3摊牌很难赢。但对手range里也没什么强牌,最大可能是JJ-99的口袋对,或者KJ这样的顶对弱踢脚。所以我决定把我的弱成手转变为诈唬。我全下,对手读秒后弃牌。

在河牌圈,我用A3这样打,应该很接近GTO打法,但我当时也不太确定。所以事后我用PioSOLVER复盘分析了一下。

打开主程序PioViewer,在标签页“Postflop Tree Building and Calculations”下(如下图所示),


20220319143349


在第一个红框中输入双方的range,这里的range要凭自己的经验估计,估计得是否准确,对于计算结果是否实用关系很大。我先输入我的range,也就是oop的range。

在河牌圈,我的range基本由下面一些牌组成:

20220319143541


以上就是符合我翻牌前3bet,翻牌圈和转牌圈连开两枪的所有牌型。JJ,TT,99不在我的range里面,因为转牌圈我不会用它们连续下注。AQs到A2s为什么只有0.25呢?因为转牌圈时,我只会用两张梅花继续,别的同花牌都是check-fold。QJs,QTs,JTs同理。三个0.1125是怎么来的呢?对于AQo,AJo,ATo,如果我手里那张A不是梅花,直接check-fold;如果是梅花A,我会以大约0.45的机率连续下注,并且在河牌发出梅花时,发动全压诈唬。所以,最终AQo,AJo,ATo会以0.1125的权值留在我的河牌range里面。

接下来输入对手(IP)的range:

20220319143633


对手在河牌圈的range就比较窄了,主要由顶对和中等口袋对构成。如果对方有暗三,一般会在转牌圈加注。但也不能完全排除对方用暗三跟注的可能。所以我给88,77,33赋予了权值0.1。87s同理。因为我在翻牌圈的下注比较小,对方很可能会用ATs以上的同花A跟注,但转牌时只有梅花的同花A可以继续。所以这三种牌型的权值是0.25。

至于97s,76s,75s这三种牌型,一来翻牌前跟注3bet的可能性不大,二来跟注转牌圈连续下注的可能性也不大,所以我给了这三种牌0.3的权值。

KTo是一手边缘牌,对手可能翻牌前面对3bet就直接弃掉了,所以它的权值只有0.5。

以上就是我估计的对手在河牌圈的range。我自认为我估计得还是很符合实际情况的。

输入完双方range后,下一步是输入初始底池、有效筹码和下注额度(见上面图的第二个红色方框)。

参数都输入完毕后,点击第三个红色方框中的按钮Build,再点击按钮Go,程序就开始根据GTO算法进行计算。你可以在获得满意的计算精度后停止计算(我是在误差为0.0025%时停止了)。

这时就可以点击Browser标签查看结果了。

20220319143814


Oop玩家有三种选择:全下90,过牌,下注24(这是我给的下注尺度,30%底池的薄价值下注)。

程序给出的GTO策略中,全押的牌型有:强牌(88,77,33,AA,部分AK,部分KQ,共27.75手组合),弱牌(大部分没有摊牌价值的牌,共17手组合)——加起来是44.75手组合,不符合图中给出的40.5 combos,这是因为我的权值没有程序算得精确。

下注30%底池的牌型有:较强牌(极少部分AK,大部分KQ,较少部分KJ,共计14.5手组合),弱牌(剩余的没有摊牌价值的牌,共3.4手组合)。

过牌的牌型有:强牌(KK,少部分AK,5.3手组合),较强牌(大部分KJ,KTs,9.3手组合),中等牌(QQ,6手组合)。

过牌后,如果对手全押,KK和AK是肯定跟注的,KJ以0.45的机率跟注,QQ以0.25的机率跟注,KTs弃牌。

过牌后,如果对手下注30%底池,KK和AK是要raise shove的,KJ和QQ会分别以0.18和0.12的机率raise shove。除此之外,KJ和QQ均会以0.75的机率跟注,以0.07和0.11的机率弃牌。而KTs会以1/3的机率跟注,2/3的机率弃牌。

以上就是oop玩家(也就是牌例中的SB位)的全部策略。

d9a3745c3c551ac3488a7e01e449e34e.jpeg

下面来谈谈oop玩家策略中一些值得分析的地方。

首先,我们要注意到,过牌后如果面对全押,QQ会以0.25的机率跟注,KTs则会直接弃牌。为什么呢?从直觉上来看,KTs的绝对牌力比QQ还要强一点?

这是因为,对手全押时,如果不是诈唬,则他的主要牌型为KQ。当手持QQ时,对方的KQ有6种组合;而当手持KT时,对方的KQ有12种组合。所以拿着QQ时,与拿着KT时相比,对方更不可能持有KQ,从而更可能是在诈唬。因而用QQ跟注抓诈唬更有利可图。

第二个问题,面对对手的30%底池下注,为什么要用KJ和QQ以较小机率shove?要知道一旦被跟注的话,KJ和QQ很可能是落后的?

这里主要是为了平衡check-raise的range,如果KJ和QQ只是跟注的话,那check-raise的牌型只剩下KK和AK,这个range过于强了,对手可以轻易弃牌。所以KJ和QQ需要以一个较小机率raise,而且也有那么一点点可能让对方更好的牌弃牌。那为什么选择QQ raise而不是KT raise?原因和第一个问题的原因是一样的。

第三个问题,KK为什么会以100%的机率过牌?这里的GTO打法是相当反直觉的。KK是河牌圈的坚果,你用坚果过牌?

当我们用更小的暗三下注,我们主要是希望对方有顶对可以跟注。但当我们手持顶set时,对手有顶对的概率减小了2/3,这里的河牌面对手又没有超对的可能。

如果我们过牌,在牌面没有顺子和同花的情况下,对方持有暗三,是肯定会下注的。也就是说,如果对方是暗三,我们下注和过牌的结果是一样的,过牌并不会从对方的暗三那里丢失价值。

另外,顶set过牌后,偶尔还能够抓个诈唬,这也是下注所没有的优点。

最后,把顶set加入check range,可以极大地加强check时的牌力,让对手不敢在你过牌后肆意诈唬。

这就是为什么这里的GTO打法是要用顶set过牌。事实上,我们可以总结出这样的一条法则:当河牌面无花无顺无公对时,并且你作为oop的一方,判断对手有超对的可能性很小,那么你应该check-raise你的顶set,而不是抢先下注。(我认为,就算这篇文章里有很多地方你没看懂,只要你记住了这条法则,就算很有收获了。)

第四个问题,为什么GTO打法里,会用所有的弱牌进行诈唬?

这是因为我们range里包含了很多强牌,足以平衡这里的弱牌。所以即使我们把所有弱牌都加入bet range,我们的bet range还是很强。

第五个问题,当我们主动下注时,有全押和下注30%底池两个选择,相应的,强牌和弱牌的混合情况是27.75:17和14.5:3.4。为什么是这样的比例?

这个问题的答案牵涉到GTO的原理。纳什均衡是指这样一种状态,当博弈双方处于该状态时,任何一方单方面改变策略都不会从中获益。对应到德州扑克中就是下面的无差别原则:GTO打法是这样的一种打法,它会让对手的边缘牌(或边缘牌的组合)在各种抉择间无区别。

比如,当我们采用GTO打法并下注30%底池时,对手的某手边缘牌(尽管我们还不确切地知道是哪手牌,但这不影响这里的计算)在弃牌,跟注和加注间是没有区别的。弃牌的EV为0,跟注的EV要想为0,则必须跟注的赢率达到30/160=0.1875,而我们提供的强牌和弱牌的混合比例14.5:3.4恰好能满足该赢率。同理,全押时的强牌弱牌混合比也符合无差别原则。

最后一个问题,来看一些小细节。当我们首先行动时,我们会用大部分AKo下注,少部分AKo过牌。但这里的比例并不是均匀的,不同的AKo,在下注和过牌间会有微妙的区别:

20220319143958


如果我们AKo中的A是梅花,则我们会接近100%的下注。如果没有梅花A,我们则会以0.261的机率过牌。为什么会这样?

因为当我们没有梅花A时,对方更可能持有同花听牌组合,过牌可以引诱对方的这部分牌诈唬。而当我们有梅花A时,对方range里的同花听牌组合则减少了很多。

有些玩家拿到杂花牌时,就不关心手里牌的花色了。这是不对的,因为我们手里牌的花色会影响对方可能持有的牌型组合。

以上就是这个牌局,在河牌圈oop玩家的GTO策略及分析。

最后,简单谈谈ip玩家的GTO策略。

当oop玩家全下90时,ip玩家的KQ中,如果是梅花Q,则会以0.39的机率弃牌,别的KQ都会跟注(想想这是为什么)。对于KJ,如果是梅花J,会以0.68的机率弃牌,别的KJ会以0.24的机率弃牌。对于KT,如果是梅花T,100%弃牌,否则以约0.2的机率跟注。如果是88、77、33、87,这些强牌是肯定跟注的。但因为权值的关系,这部分牌所占比例很小。别的JJ,TT之类的牌,都是100%弃牌。

当oop玩家下注30%底池时,ip玩家的KQ会以0.81的机率加注全下,0.19的机率跟注。KT会以约0.4的机率全下,如果含梅花T,有0.35的机率弃牌。其他情况KT都是跟注。88、77、33、87是肯定加注全下的,AcQc也会以0.34的机率全下。注意,由于ip玩家range里的强牌不多,所以能加入的诈唬牌的数量也少。

面对30%的底池下注,ip玩家的KJ会接近100%的跟注,至于JJ,如果没有梅花J,100%跟注。如果有梅花J,100%弃牌。

除了以上这些牌,别的牌都是弃牌。

如果oop玩家过牌,88、77、33、87和KQ是100%全押,全押range里还有极少量的KJ和KT(约0.1的机率全押),97s,76s,75s会以0.6的机率全押诈唬,AJs会以0.3的机率全押诈唬。

除此以外,别的牌都是过牌。总之,当oop玩家过牌时,ip玩家有33%的可能全押,67%的可能过牌,0%的可能下注30%底池。

以上就是ip玩家的GTO打法。

好了,本次牌例分析就到这里了。各位有兴趣的话,也可以去下载个PioSOLVER,免费版只能分析转牌圈与河牌圈的GTO打法,但那也可以带来很大的帮助了。

最后说一句,以上是以河牌圈作为初始点建立GTO打法的。如果以转牌圈作为初始点,打法就又有一些区别了。比如,我的Ac3c在转牌选择了连续下注,但根据转牌圈的GTO打法,我应该过牌,并且在对手下注后all in。那如果对手也跟随过牌了呢,河牌有46种情况,软件对此都做了拆解,但我就不在这里一一详述了。


德州扑克







德州扑克