如何解決玩具遊戲
- Tombos21

- 2025年7月7日
- 讀畢需時 7 分鐘
玩具遊戲(Toy games)是撲克的簡化版本,我們可以用它來更深入地理解博弈論(Game Theory)。
撲克是一款複雜的遊戲。無法在比賽中即時計算博弈論最優(Game Theory Optimal, GTO)策略。通過將其簡化為玩具遊戲,我們可以用手工解決,並學習博弈論最優撲克的基本動機。
本文僅是一個介紹,將涵蓋一些入門基礎知識。學習這些遊戲不會讓您成為下一個Linus,但它們將通過幫助您更有效地理解和解讀求解器(solvers),間接提升您的撲克能力。
本文將介紹兩種極化對詐唬攔截牌(polarized vs bluffcatcher)的玩具遊戲版本,作為解決玩具遊戲的入門。
基礎知識
要理解玩具遊戲,您需要學習一些基本功能,例如底池賠率(pot odds)、最低防守頻率(MDF),以及如何設置期望值(Expected Value, EV)計算。
MDF告訴我們防守者需要多頻繁跟注(call)以使我們的詐唬(bluffs)無差別(indifferent)。
底池賠率告訴我們防守者需要多少權益(equity)來跟注,並指導我們的詐唬/價值比率(bluff/value ratio)。
S = Bet / Pot
如果您不知道如何計算這些,請查看以下文章!
最低防守頻率(MDF)
底池賠率(Pot Odds)
期望值(EV)
這裡有一個方便的速查表,您可以用來快速計算一切!

極化對詐唬攔截牌
極化對詐唬攔截牌(polarized vs bluffcatcher)的玩具遊戲是一個玩家要么持有絕對堅果牌(stone cold nuts),要么是完全的詐唬,而另一個玩家持有詐唬攔截牌(bluff-catcher)的場景。
玩家1(先行動):持有AA或QQ,各50%頻率。
玩家2:持有KK
牌面:22233
底池為10,雙方籌碼為10。任一玩家可全下(shove)或檢查(check)

這有時被稱為“透視遊戲”(clairvoyant game),因為玩家1總是知道自己是領先還是落後,而KK幾乎是明牌。
現在我們如何解決這個遊戲?讓我們將其分解為4個步驟:
排除被壓制策略(dominated strategies) - 用邏輯找出“純粹行動”(pure actions)。
使用底池賠率計算詐唬與價值比率(bluff to value ratio)。
使用MDF計算防守者應跟注的頻率。
為了全面起見,泛化方程式。
步驟1)從排除被壓制策略開始!
如果我們檢查,KK總會檢查回來(check behind)。KK下注沒有意義,因為這只會迫使QQ棄牌並被AA跟注。KK應簡單檢查回來,對QQ贏得底池而不冒任何風險。因此,AA應始終下注!
慢玩堅果牌(slowplaying the nuts)如果對手不下注就沒有意義。
步驟2)計算詐唬與價值比率
我們知道AA應始終下注。我們應該多頻繁詐唬?如果我們詐唬太多,KK可以通過總是跟注來剝削(exploit)我們。詐唬太少,他們可以通過總是棄牌來剝削我們。因此,最優策略是以一種使KK在跟注和棄牌之間“無差別”(indifferent)的方式下注。
查看提供的底池賠率。這是一個底池大小的下注(pot-sized bet),因此對手需要33%的權益來跟注。
Required equity = (call amount) / (pot after they call) = 1/3
因此,我們的下注範圍應有三分之一是詐唬。如果我們總是用AA下注,那麼我們需要通過用QQ詐唬一半的時間來平衡。這樣,我們提供了對手跟注所需的精確2:1賠率,他們無法剝削我們。
您需要足夠頻繁地詐唬,讓他們回報您的價值下注(value bets),但不能太多,以免他們可以有利可圖地跟注您。
步驟3)計算KK應跟注的頻率
如果KK棄牌太多,我們可以通過總是詐唬來剝削他們。如果KK棄牌不夠,我們可以通過從不詐唬並僅用價值下注壓制他們來剝削。因此,他們的最佳策略是跟注足夠頻繁,使我們的詐唬在下注和檢查之間無差別!
這就是MDF發揮作用的地方。他們跟注的頻率是我們下注大小的函數。
MDF = pot / (bet + pot) = ½
因此,KK應正好跟注一半的時間。他們應在跟注和棄牌之間隨機化(randomize),以避免被剝削!
您需要足夠頻繁地跟注,以防止他們用詐唬碾壓您,同時足夠頻繁地棄牌,以避免被價值下注壓制。
讓我們總結一下。AA總是下注。QQ一半時間下注,一半時間檢查。KK一半時間跟注,一半時間棄牌,並在被檢查時總是檢查回來。
步驟4)泛化!
如果下注大小不同會怎樣?如果我們範圍中有更多價值或更多詐唬呢?對於這個玩具遊戲,通用解決方案是下注大小的函數。
令‘s’ = bet/pot
總是用AA下注
用QQ詐唬足夠頻繁以給他們精確的底池賠率
根據MDF跟注KK
用s重寫MDF:KK call% = 1/(1+s)
用s重寫底池賠率:Required equity = s/(2s+1)
KK面對下注的權益可以寫為下注範圍中的詐唬百分比。將其設為等於所需權益,使KK無差別!
Bluffs / (Value + Bluffs) = s/(2s+1)
泛化玩具遊戲總是一個好主意!
測驗
底池 = 10,下注 = 7
玩家1持有:5組AA,6組QQ
玩家2持有:KK
在查看解答之前,花點時間自己嘗試計算!
答案
主導策略(Dominant strategies):AA應始終下注(bet),KK如果被允許應始終檢查(check)。
s = bet/pot = 7/10
我們下注70%的底池。讓我們將0.7代入方程式!
MDF = 1/(1+s) = 1/1.7 = 58.8%
KK應在面對下注時跟注(call)58.8%的時間,以使詐唬(bluffs)無差別(indifferent)。
Bluffs / (Value + Bluffs) = s/(2s+1)
讓我們將5代入價值(value),0.7代入s:
Bluffs / (5 + Bluffs) = 0.7/2.4
重新整理並求解:
Bluffs = 0.29 x (5 + Bluffs)
Bluffs = 1.45 + 0.29 Bluffs
Bluffs = 2.058
我們應從6組QQ組合中詐唬2.059組。因此,QQ應大約三分之一的時間詐唬。
極化對詐唬攔截牌(帶誘捕牌)

您已經知道如何計算基本的極化對詐唬攔截牌玩具遊戲。如果防守者有誘捕牌(traps)會發生什麼?
設置
對手在河牌(river)檢查給我們,牌面是22233。我們知道對手的範圍是90%詐唬攔截牌(bluff-catchers),10%擊敗我們價值下注的誘捕牌。我們在位置(in position),有50%的價值手牌(value hands),50%純粹詐唬(pure bluffs)。
對手(非位置,out of position):90% QQ,10% AA
英雄(位置內,in position):50% KK,50% JJ
牌面:22233
您可以隨意選擇下注大小!
對手只能跟注(call)或棄牌(fold)。
如果對手沒有任何誘捕牌,我們可以全下(shove)以給他們最差的賠率,賺取最多的錢!然而,在這個玩具遊戲中,我們的價值手牌可能被誘捕牌擊敗。如果我們下注太大,我們會捐太多錢給他們的誘捕牌。如果我們下注太小,我們從他們的詐唬攔截牌中提取的價值不夠。
我愛這個玩具遊戲的原因是它展示了一個下注大小理論(bet sizing theory)的基本原則:
最優下注大小是堅果優勢(nut advantage)的函數。
如何找到“完美”的下注大小?
解決玩具遊戲
令‘s’ = bet/pot
令‘t’ = 對手範圍中誘捕牌的百分比(traps%)
令‘q’ = 英雄價值手牌被跟注時的權益
令‘c’ = 對手跟注的百分比
步驟1)計算他們跟注的範圍
當我們下注時,他們應根據MDF防守。然而,他們的誘捕牌永遠不會棄牌,因此我們需要稍作修改。
Calling% (c) = Max ( MDF, traps%) = Max (1/(1+s), 10%)
換句話說,他們根據MDF防守,但他們的跟注頻率永遠不會低於範圍中誘捕牌的百分比(在此範例中為10%)。
因為他們根據MDF防守,我們的詐唬總是0期望值(EV)。
步驟2)計算我們價值手牌被跟注時的權益
記住,我們的價值手牌會輸給誘捕牌,因此我們需要計算價值手牌被跟注時的權益,然後創建一個期望值方程式。
我們被跟注時的權益是下注大小的函數。我們下注越大,詐唬攔截牌棄牌越多,他們跟注範圍中的誘捕牌比例越高。因此,我們價值手牌的權益(q)等於對手跟注的詐唬攔截牌與誘捕牌的比例。
Equity when called = bluffcatcher% in calling range = (call% – trap%) / call%
q = ((c-t) / c)
步驟3)計算您的期望值
我們需要找出一個表示我們下注時期望值的方程式。最優下注大小將最大化我們的期望值!
我們的詐唬期望值為0,因為對手根據MDF跟注(雖然如果我們下注太大可能為負,但讓我們忽略這一點)。由於詐唬的期望值為0,我們可以跳過這部分,因為加0不會改變任何東西。
這僅留下我們價值手牌的期望值。
EV (value bet) = call%(EV when called) + fold%(pot)
EV (value bet) = call%(win% (pot + bet) – (lose% bet)) + fold%*pot
這有點繁瑣,所以讓我們用變量替換:
Bet% = s
Pot = 1(我們已將底池標準化,因為s = bet/pot)
Call% = c
Win和lose% = q 和 (1-q) 分別。
EV (value bet) = c(q(1+s) – s(1-q)) + (1-c)
我們可以進一步替換q,但除非您想解析解決,否則這不是必需的。
EV (value bet) = 1+s(c-2t) – t
步驟4)根據下注大小繪製期望值圖表
找到最優下注大小的最簡單方法是將期望值與下注大小繪製成圖表,然後選擇圖表上的最高點!
試試這個圖表!我創建了一個簡單的計算器,您可以用來繪製不同誘捕牌數量值的期望值。只需拖動t滑塊。

繪製這個函數顯示,如果對手有10%的誘捕牌,那麼我們的最優下注大小是123%底池。雖然實際上,100%-150%之間的任何下注大小給我們的期望值幾乎相同。
有些人可能想要一個解析解。要解決這個問題,您需要使用微積分。更具體地說,您需要找到最大化EV(value bet)的argmax‘s’。微積分超出了本視頻的範圍,我認為簡單繪製期望值圖表更容易。但為了完整性:

進一步閱讀
學習玩具遊戲既有趣又能提供博弈論的深入知識,這些知識可以轉化為更好的遊戲表現。我們今天僅觸及了表面。
查看以下書籍以了解更多關於如何解決玩具遊戲的內容:
《Expert Heads Up No Limit Hold’em, Volumes 1 & 2》作者:Will Tipton
《Play Optimal Poker, Volumes 1 & 2》作者:Andrew Brokos
《Modern Poker Theory》作者:Michael Acevedo
《Mathematics of Poker》作者:Chen & Ankenman




留言