第 43 課把「對手的某個節點」鎖進求解器,前提是那棵樹本身讀得動;但實際打開一個河牌節點,常常看到五、六個下注尺度並排,每個尺度各有一套手牌分配,而且你在牌桌上根本記不住。今天要解決的問題是:下注尺度該留幾個、留哪幾個,砍掉的那些會損失多少 EV。結論先講:在下面這個可以手算的河牌模型裡,尺度從五個收斂到兩個(半池與兩倍池),保留了五尺度版本 95.1% 的下注增益,損失 0.33% 底池;從兩個再收斂到一個,多損失 1.29% 底池,是前者的近四倍。 兩個尺度之所以夠用,是因為單一尺度的收益曲線在峰值附近很平,相鄰的尺度可以互相取代;真正拿不回來的是「小檔」與「大檔」各管一段牌力的分工。這裡所有數字是我用 Python 對自己設的模型實算的,屬紙上推演與教學示意,不是任何求解器的真實輸出;台灣沒有合法的現金撲克賭場,內容定位是機率與決策訓練,不構成任何下注建議。

📖 學

一、為什麼要簡化

求解器的樹每多一個尺度,節點就多一個分支:單一節點「過牌加五個下注尺度」就是六個動作,三條街各六個動作連續走下去,光第一輪的下注線就有 6³ = 216 條,每條後面還掛著對手的反應。算力與讀圖都吃不消,所以實務上都先砍尺度,只留幾個代表。問題是砍多少合理,這要靠一個可量化的標準:把樹換成簡化版後,同一個節點的賽局值掉多少,就是簡化的價錢。 價錢很小,簡化才划算。

二、示範模型

規則:河牌,底池 1(單位可以換成 100 或任何大小),玩家 1(P1)先行動。P1 的牌力 x 在 0 到 1 之間均勻分佈,玩家 2(P2)的牌力 y 同樣均勻、與 x 獨立,牌力大者攤牌贏。P1 可以過牌(直接攤牌),或下注 s 倍底池;P2 面對下注只能跟注或棄牌,沒有加注。EV 慣例沿用第 42、43 課:攤牌贏拿底池;下注被棄牌拿 1;下注被跟,贏拿 1 + s、輸拿 −s。全部過牌時 P1 的 EV 是 x 的平均,也就是 0.5。下面講的「增益」都是相對全部過牌多賺的 EV,單位是底池百分比。

三、單一尺度手算

設均衡長這樣:P1 的牌力 x 在 b 以下詐唬、在 v 以上價值下注、中間過牌;P2 用 y ≥ c 跟注。三個門檻由「無差異」解出來,這是第 41 課的老方法。

P1 下注的 EV。 牌力 x 的人下注,P2 的 y 小於 c 時棄牌(機率 c,拿 1);y 在 c 與 x 之間時被跟並贏(機率 x − c,拿 1 + s);y 大於 x 時被跟並輸(機率 1 − x,拿 −s)。合起來:

EV(下注 | x) = c + (x − c)(1 + s) − (1 − x)s = x(1 + 2s) − s(1 + c)。

價值端門檻 v。 最薄的價值牌,下注與過牌(EV 等於 x)無差異:v(1 + 2s) − s(1 + c) = v,得 v = (1 + c) / 2。

詐唬端門檻 b。 低於 c 的牌下注只會在被跟時輸,EV = c × 1 + (1 − c)(−s) = c(1 + s) − s,與過牌無差異的那手牌就是 b:b = c(1 + s) − s。

P2 的無差異。 P2 剛好在 y = c 時,跟注贏詐唬(質量 b,拿 1 + s)、輸價值(質量 1 − v,輸 s):b(1 + s) = (1 − v)s,也就是詐唬與價值的比例等於 s / (1 + s),換成詐唬佔下注範圍的比例就是 s / (1 + 2s),這跟第 23 課以來的配平比例一致。

三條聯立,解得 c = s(2s + 3) / [(2s + 1)(s + 2)]。代入 s = 1(底池大小):c = 5 ÷ 9 = 0.5556,v = (1 + 5/9) ÷ 2 = 7/9 = 0.7778,b = (5/9)(2) − 1 = 1/9 = 0.1111。驗算 P2 的無差異:b(1 + s) = (1/9)(2) = 2/9,(1 − v)s = (2/9)(1) = 2/9,相等。

賽局值。 把 P1 的 EV 對 x 積分:中間過牌區 ∫ x dx 從 b 到 v,等於 (v² − b²) / 2 = (49/81 − 1/81) / 2 = 24/81;詐唬區每手 EV 都是常數 b,積分得 b² = 1/81;價值區 ∫ [x(1 + 2s) − s(1 + c)] dx 從 v 到 1,等於 (1 + 2s)(1 − v²) / 2 − s(1 + c)(1 − v) = 3 × (32/81) / 2 − (14/9)(2/9) = 48/81 − 28/81 = 20/81。三段相加:24/81 + 1/81 + 20/81 = 45/81 = 0.5556。減去全部過牌的 0.5,增益 G(1) = 0.5556 − 0.5 = 1/18 = 5.556% 底池。

我另外對九個尺度各算一次,並用線性規劃把同一個賽局離散成 100 檔牌力獨立求解來交叉驗算(s = 0.5 得 0.0500,s = 1 得 0.05555,與公式相差在 0.00001 內)。數值上 G 符合一條很乾淨的式子:G(s) = s / [2(2s + 1)(s + 2)]。這條式子我只對多個尺度做了數值核對,沒有做完整的代數化簡證明。

尺度 s(倍底池)跟注門檻 c價值門檻 v詐唬門檻 b增益 G(% 底池)佔最佳尺度的比例
1/40.2590.6300.0743.70466.7%
1/30.3140.6570.0864.28677.1%
1/20.4000.7000.1005.00090.0%
2/30.4640.7320.1075.35796.4%
3/40.4910.7450.1095.45598.2%
10.5560.7780.1115.556100%
3/20.6430.8210.1075.35796.4%
20.7000.8500.1005.00090.0%
30.7710.8860.0864.28677.1%

這張表有兩個性質。第一,曲線在 s = 1 附近很平:3/4 池只比滿池少 0.101% 底池(5.556 − 5.455),3/2 池少 0.199%;所以「滿池、四分之三池、一點二五倍池」這三個尺度在這個模型裡幾乎是同一件事,同時留著沒有意義。第二,G(s) = G(1/s),所以半池與兩倍池、三分之一池與三倍池各自等值,曲線在對數尺度上左右對稱,兩側下降得比想像慢:半池仍有最佳值的 90%。

四、多個尺度:收益從哪來,邊際遞減多快

單一尺度會浪費一件事:所有下注牌共用同一個尺度,但價值最強的牌希望下大一點(對手只剩更強的牌才會跟、可以跟的牌也被榨更多),邊緣的薄價值牌卻希望下小一點(讓更多較弱的牌願意跟)。允許多個尺度,就等於讓不同牌力各挑各的尺度。這件事可以手算到單一尺度,多尺度版本我改用線性規劃(P1 對每個尺度的牌力頻率與 P2 對每個尺度的跟注都是變數)解出精確賽局值。

選五個尺度:三分之一池、半池、四分之三池、一點二五倍池、兩倍池。對 5 個尺度的所有子集(共 31 個)各解一次,每個尺度數取最好的那一組:

保留尺度數 k最佳組合增益(% 底池)佔五尺度的比例比五尺度少(% 底池)本步新增(% 底池)
11.255.49381.0%1.2915.493
20.5 與 26.45095.1%0.334+0.957
31/3、0.75、26.69598.7%0.089+0.245
41/3、0.75、1.25、26.75799.6%0.027+0.062
5全部6.784100%0+0.027

讀法:這是標準的邊際遞減。從 0 到 1 個尺度,多賺 5.493;1 到 2 個,新增 0.957;2 到 3 個,新增 0.245;3 到 4 個只剩 0.062。第二個尺度的價值是第三個的近四倍,而第三個以後都在小數點後第二位以下。 補一個對照:我拿 15 個細密尺度(0.15 到 5 倍池)當作近似連續的參考,增益是 7.081,所以連五尺度本身也已經是簡化(少 0.297% 底池),不是什麼不可動搖的真值。

換成實際的量:底池 30 個大盲,五尺度到兩尺度的損失是 0.334% × 30 = 0.10 個大盲;到一尺度的損失是 1.291% × 30 = 0.39 個大盲。這是「到達這個節點」才有的數字,還要乘上到達頻率,再與你執行不完美的損失相比。

這個結論跟牌力分佈有關嗎?我換了三種 P1 的牌力分佈(P2 維持均勻)重算,每種都做完整 31 個子集:

P1 的牌力分佈最佳單一尺度最佳兩個尺度兩尺度佔五尺度比例
均勻(基準)1.250.5 與 295.1%
兩極化(Beta 0.5, 0.5,兩端多、中段少)2(已在選單邊緣)0.5 與 297.4%
凝聚(Beta 2, 2,中段多)0.51/3 與 1.2594.8%
偏強(Beta 3, 1.5)0.751/3 與 1.2595.3%

四種分佈下,兩尺度都保留了 94.8% 到 97.4%,而且最佳兩個尺度每次都是一小一大,小的在三分之一到半池,大的在 1.25 倍池以上;變動的只是小與大具體停在哪裡。兩極化那一列的單一最佳尺度落在選單邊緣的 2,代表選單更大的話還會往外走,這提醒你尺度選單本身是人為設定的上限。

五、兩個尺度的策略長什麼樣

取最佳兩尺度(半池與兩倍池),把解出的 P1 策略依牌力百分位(0% 最弱、100% 最強)分段:

P1 牌力區間過牌下半池下兩倍池
0% 到 10%050%50%
10% 到 20%70%13.3%16.7%
20% 到 70%100%00
70% 到 80%10%90%0
80% 到 90%0100%0
90% 到 100%00100%

全範圍合計:過牌 58%、半池 25.33%、兩倍池 16.67%。驗算每個尺度的詐唬比例:半池下注範圍 25.33% 中,價值牌是 70% 到 90% 的 19%、詐唬是 6.33%,詐唬佔比 6.33 ÷ 25.33 = 25%,正好是 s / (1 + 2s) = 0.5 ÷ 2;兩倍池下注範圍 16.67% 中,價值是頂端 10%、詐唬 6.67%,佔比 6.67 ÷ 16.67 = 40%,正好是 2 ÷ 5。每一個保留的尺度各自維持自己的配平比例,這是簡化樹不能丟的東西。

可以直接背的規則有三條。一,頂端約 10% 的牌打大檔(超額下注),詐唬湊到 40%,也就是 3 個價值組合配 2 個詐唬組合。二,緊接著的 70% 到 90% 這一段打半池,詐唬湊到 25%,3 個價值配 1 個詐唬。三,20% 到 70% 的中段全部過牌,不用糾結尺度。

一個要小心的細節:底部 0% 到 20% 那些詐唬牌在兩個尺度之間怎麼分(表中 0% 到 10% 是五五分,10% 到 20% 是約 13% 與 17%),只是線性規劃給出的其中一種寫法,解不唯一。第 43 課講過,均衡只釘住總量、不釘住分配,這裡也一樣:每個尺度要湊到各自的詐唬佔比,但由哪幾手牌去湊有彈性。所以不要把「某手牌 50% 大 50% 小」當成必須模仿的細節,要記的是每個尺度的詐唬佔比。

六、做錯的代價:尺度的取捨

選錯組合的代價。 同樣是兩個尺度,組合不同差很多:最佳 0.5 與 2 是 6.450;1/3 與 2 是 6.363;0.5 與 1.5 是 6.393;1/3 與 1 是 6.162;兩個都放小檔的 1/3 與 2/3 只有 5.653,只比最佳單一尺度 5.493 多 0.16,等於幾乎沒有第二個尺度;我選單上最差的一組(1/3 與 1/2)是 5.138,反而比最佳單一尺度還低。兩個尺度要拉開距離,才會分工。

尺度做歪了的代價。 把上面這組策略的手牌分配固定,只改實際下的尺度,對手立刻做最佳回應:半池下成 0.4 或 0.6,損失 0.37 到 0.38% 底池;半池下成 0.75,損失 0.95%;兩倍池下成 1.5,損失 0.95%;下成 1.0,損失 1.94%;兩個尺度都下成 1.0,損失 3.87%。這個實驗的意義是:尺度與牌型分配是一個整體,不能只換尺度不換範圍。 注意這是固定在其中一組解的結果,換成另一組解,數字會不同,量級才有參考價值。

籌碼深度限制。 如果有效籌碼只剩 0.75 倍池,最大尺度被迫等於全下,最佳兩尺度是 1/3 與 0.75,增益 5.830;有效籌碼到 1.25 倍池時是 6.317;充足時是 6.450。從 2 倍池可用降到 0.75 倍池,最佳兩尺度的增益少 0.620% 底池,比從五尺度砍到兩尺度的損失(0.334)還大。這是這個模型裡唯一比「砍尺度」更貴的簡化,它不是人為選擇,是 SPR 決定的。

尺度成為洩漏。 對手如果知道你的兩個尺度各代表什麼,最佳回應馬上利用。我拿上面的最佳策略做三種扭曲,假設對手知道你的頻率、做最佳回應:兩倍池完全不帶詐唬(把那些詐唬牌改成過牌),增益從 6.450 掉到 1.787;兩倍池的詐唬減半,掉到 4.218,少 2.23% 底池;完全不詐唬、只做價值下注,增益變成 −1.575,比全部過牌還差。這是對手完全知情的最壞情形,真實對手沒有這麼準,但方向是穩的:尺度越少,每個尺度承載的資訊越多,頻率偏掉一點,損失被集中在那個尺度上。

七、求解器的「簡化樹」怎麼用

下面是我依今天的算法整理的一套操作順序,不是任何軟體官方的流程;具體選單與設定以各軟體自己的說明為準,這部分我沒有逐一在軟體裡驗證:

第一步,先用較寬的尺度選單(例如五個)解一次,記下根節點的賽局值當作參考。第二步,用簡化選單(兩個,例如一小一大)再解一次,比較根節點 EV 的差:差在 0.3% 底池以下,就可以把簡化版當作研究與記憶的主要工具;差超過 1%,代表你砍錯了,或是這個節點的牌力分佈需要第三個尺度。第三步,比較時看範圍層的總 EV,不要拿單一手牌的頻率逐格對照,因為前面看過,頻率常常是不唯一的,兩次求解頻率完全不同、EV 卻相同,是正常現象。第四步,簡化樹只管「你自己的」尺度;當對手下了樹上沒有的尺度,要把它對應到最近的一個,對應的標準用棄牌門檻 α = s / (1 + s):對手下 0.75 倍池,α 是 42.9%,對照半池的 33.3% 與兩倍池的 66.7%,最近的是半池;下 1.25 倍池,α 是 55.6%,距離半池 22.3 點、距離兩倍池 11.1 點,最近的是兩倍池。這只是一個我自己用的粗略規則,不是求解器官方的對應方法。

GTO Wizard 公開了動態尺度(Dynamic Sizing)的基準測試:把單一動態尺度與八尺度的複雜策略比,河牌 EV 保留 99.7%,平均損失 0.30% 底池;固定單一尺度時,位置佳最佳約在 75% 到 100% 池,位置差約在 50% 池。我只讀到經過摘要處理的內容,數字以原文為準,而且那是他們的模型與評比條件,與我這裡的均勻牌力模型不是同一個實驗,不能直接比較;但方向相同:尺度的收益曲線平,砍到少數尺度損失有限。

資金面:這些損失都是以底池百分比表示的期望值差異,實戰中被到達頻率、執行誤差與對手調整稀釋。把任何簡化規則帶上桌之前,先當作驗證樣本,銀彈建議 30 到 50 個買入起跳,用小到最壞情況也不傷決策品質的注碼;研究目的是提高決策品質,不是預測收益,不保證任何一段期間的結果。

🧠 為什麼是這樣

兩個尺度夠用有兩個原因,都可以從算出來的數字看到。第一,峰值平坦:G(s) 在最佳尺度附近每偏離一點損失是二階的,3/4 池只比滿池少 0.101% 底池,所以相鄰尺度不是提供新資訊,是在重複同一件事。第二,分工有上限:不同尺度的真正價值,是讓牌力最強的那一端(榨取最大)與邊緣薄價值的那一端(讓更多牌願意跟)各走各的路;我的解讀是:最佳尺度差異最明顯的是「最強端」與「邊緣端」兩個極端,中間的尺度只是在兩端之間內插。所以第二個尺度新增 0.957、第三個只新增 0.245,每多一個尺度能切出來的新分工越來越小。

這個結論成立的前提要寫清楚:一,單一街、對手只能跟或棄。真實的樹裡對手可以加注,大尺度被加注的代價比小尺度高,實際最佳的大尺度可能會比這裡小;這一點我沒有在模型裡算,只是方向上的推論。二,一街之後沒有下一街。如果是翻牌或轉牌,第 26 課講過尺度同時決定下一街的 SPR,大尺度會把後面的選擇壓縮,簡化尺度就不只是這一街的取捨。三,範圍形狀會移動最佳組合:從上面的分佈表看,凝聚範圍的最佳兩尺度是 1/3 與 1.25,不是 0.5 與 2;你不能把「半池加兩倍池」當成通用答案,只能把「一小一大、拉開距離」當成通用規則。

失效與反制有三處。對手若能辨識你的尺度分工,最直接的反制是針對那個尺度的頻率偏差打:上一節算過,大尺度完全不詐唬或詐唬減半,損失是 4.66 或 2.23% 底池。其次,籌碼太淺時,最大尺度被全下取代,簡化的代價反而比砍尺度更大。最後,對手不一定是求解器:如果對方跟注太寬或棄牌太多,你該做的是第 43 課的節點鎖定,而不是死守簡化樹的平衡頻率;簡化樹給你的是不會被剝削的底線,不是對每個對手的最優解。簡化樹也不能取代讀範圍:範圍輸入錯了,前面算得再準也沒有意義。

站內的價值下注、詐唬與尺寸講的是尺度與目的的對應,平衡與 GTO講的是詐唬比例 s / (1 + 2s) 的來源,今天是把這兩篇的配平比例搬到「只留幾個尺度」的版本。

✍️ 今日練習

紙筆與計算機,15 到 20 分鐘,不需要求解器,不必進賭場。

沿用今天的模型:河牌,底池 1,P1 牌力均勻,P2 只能跟或棄。

  1. 取 s = 1/3,用 c = s(2s + 3) / [(2s + 1)(s + 2)]、v = (1 + c) / 2、b = c(1 + s) − s 算出三個門檻,並驗算 b(1 + s) 是否等於 (1 − v)s。
  2. 用 G(s) = s / [2(2s + 1)(s + 2)] 算 s = 1/3 的增益(% 底池),再換成「底池 30 個大盲」的大盲數。
  3. 取 s = 3,重做步驟 1 與 2,觀察 G(3) 與 G(1/3) 的關係。
  4. 用本課的五尺度表:底池 30 個大盲,從五尺度砍到兩尺度、與砍到一尺度,各損失多少個大盲?
  5. 詐唬配額:若你的大尺度是 3 倍池,價值下注 12 個組合,應該配幾個詐唬組合?詐唬佔下注範圍的比例是多少?小尺度 1/3 池、價值 12 個組合時又是多少?
  6. 寫一張只有三行的「規則卡」:頂端牌打哪個尺度、中間偏上的牌打哪個尺度、中段牌怎麼處理,每個尺度寫上詐唬佔比。
  7. 挑一手你自己最近打過的河牌下注(或手上有的牌譜),寫出你當時用了什麼尺度、對應規則卡裡的哪一格;若不在規則卡上,寫一句話說明你是故意偏離,還是單純沒想過。

自我檢查

  • 步驟 1:c = (1/3)(11/3) ÷ [(5/3)(7/3)] = 11/35 = 0.3143,v = 23/35 = 0.6571,b = (11/35)(4/3) − 1/3 = 3/35 = 0.0857;驗算 b(1 + s) = (3/35)(4/3) = 4/35,(1 − v)s = (12/35)(1/3) = 4/35,相等。
  • 步驟 2、3:G(1/3) = (1/3) ÷ [2 × (5/3) × (7/3)] = 3/70 = 4.286% 底池,底池 30 個大盲是 1.29 個大盲;s = 3 時 c = 27/35,v = 31/35,b = 3/35,G(3) = 3 ÷ (2 × 7 × 5) = 3/70,與 G(1/3) 相等,因為 G(s) = G(1/s)。
  • 步驟 4、5:損失分別是 0.334% × 30 = 0.10 個大盲與 1.291% × 30 = 0.39 個大盲;3 倍池詐唬 = 12 × 3/4 = 9 組,佔比 9 ÷ 21 = 42.86%(= 3 ÷ 7);1/3 池詐唬 = 12 × (1/3) ÷ (4/3) = 3 組,佔比 3 ÷ 15 = 20%(= (1/3) ÷ (5/3))。
  • 步驟 6、7:規則卡裡每個尺度都有詐唬佔比,而不是只寫「大尺度打強牌」;我能說出自己那一手是哪一格,或是明確的偏離理由。

🔗 延伸

  • Dynamic Sizing Benchmarks · GTO Wizard Blog——動態尺度與八尺度複雜策略、與最佳單一尺度的 EV 損失比較,說明單一固定尺度在位置佳與位置差各約落在哪個區間(我只讀到經摘要處理的內容,數字以原文為準)。
  • Single Size Solutions Are Live · GTO Wizard Blog——GTO Wizard 的單一尺度解的發佈說明,搜尋摘要提到相較多尺度解約損失 0.2 個大盲(我只讀到搜尋摘要,沒讀到全文,細節以原文為準)。

💬 問 AI

我在練「玩牌技術」第 44 課:策略樹簡化,從五個下注尺度收斂到兩個。
 
請用下面的資料檢查我的算法(只是教學練習,不是下注建議):
- 河牌模型:底池 1,P1 牌力在 0 到 1 均勻,P2 牌力均勻且獨立;P1 先行動可過牌或下注 s 倍底池,P2 只能跟或棄,沒有加注
- 我選的尺度:[s = 1/3 與 s = 3]
- 我算出的:c = [...]、v = [...]、b = [...]、增益 G = [...](% 底池)
- 我的規則卡:[頂端牌打哪個尺度、詐唬佔比 ...]
 
請依序回答:
1. 用 EV(下注 | x) = x(1 + 2s) − s(1 + c)、薄價值無差異 v = (1 + c) / 2、詐唬無差異 b = c(1 + s) − s,以及 P2 無差異 b(1 + s) = (1 − v)s,重新推導 c、v、b,並驗算 G(s) = s / [2(2s + 1)(s + 2)]。
2. 說明為什麼 G(s) = G(1/s),以及這對選尺度意味著什麼。
3. 解釋「從五尺度砍到兩尺度損失很小、從兩尺度砍到一尺度損失較大」的機制:峰值平坦與分工上限,各是什麼意思。
4. 為什麼最佳兩個尺度要拉開距離?把兩個都放在小檔會發生什麼?
5. 列出這個模型哪些假設在真實求解器裡不成立(對手可加注、多街 SPR、範圍形狀、牌面、抽水),各會讓結論怎麼失真。
6. 對手若知道我每個尺度的詐唬佔比偏掉,我的損失怎麼估?
 
請標明「你算出來的」「你的假設」「你不確定的」,不要給我下注或買入建議。