德州撲克牌例分析:用PioSOLVER來探求最優策略

德州撲克牌例分析:用PioSOLVER來探求最優策略

目錄

PioSOLVER,是一個計算最優策略(GTO)的撲克分析軟體。軟體算法背後的核心原理,是博弈論中的納什均衡。我這篇文章不打算講解其原理,而是講這個軟體的基本用法以及一個牌局的最優打法(準確地說,應該叫不被剝削的打法)。

首先,牌例如下:

我有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」下(如下圖所示),

在第一個紅框中輸入雙方的range,這裡的range要憑自己的經驗估計,估計得是否準確,對於計算結果是否實用關係很大。我先輸入我的range,也就是oop的range。

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

以上就是符合我翻牌前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的機率連續下注,並且在河牌發出梅花時,發動全壓詐唬(參看德州撲克牌例分析(15):利用blocker發動大型詐唬)。所以,最終AQo,AJo,ATo會以0.1125的權值留在我的河牌range裡面。

接下來輸入對手(IP)的range:

對手在河牌圈的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標籤查看結果了。

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位)的全部策略。

下面來談談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,在下注和過牌間會有微妙的區別:

如果我們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種情況,軟體對此都做了拆解,但我就不在這裡一一詳述了。