Уметь хорошо играть в покер — значит как можно чаще принимать решения с наивысшей ожидаемой прибылью (EV). В некоторых случаях, например, когда оппонент поставил олл-ин, вычисление нашего EV относительно тривиально. Но как быть в более сложных ситуациях, особенно на ранних улицах, где EV трудно рассчитать по формуле?
Здесь нам на помощь приходит EV-моделирование — подход, при котором мы оцениваем EV различных действий, моделируя несколько ветвей дерева решений. В этой статье w34z3l, автор подкаста Red Chip Poker, представил несколько практических методов моделирования EV, которые помогут вам оптимизировать свои решения за покерными столами.
Что такое EV-моделирование и как оно работает
Моделирование EV — это важная концепция из области покерного анализа, но среднестатистический игрок не очень хорошо представляет себе значение этого термина. EV-моделирование — это планирование какой-то покерной ситуации в рамках расчета EV. По сути, это расширенное вычисление EV, затрагивающее несколько разных узловых точек в дереве решений, которые в совокупности и генерируют нашу ожидаемую прибыль.
Идея в том, чтобы использовать EV-моделирование для определения наилучшей линии розыгрыша в конкретной ситуации. Например, мы выбираем между двумя вариантами: проб-бет тёрна с последующей ставкой на ривере или чек тёрна с отложенной ставкой на ривере. Или вот другой пример, который часто актуален, когда мы без позиции на ривере: небольшая ставка, крупная ставка или чек-колл? В зависимости от типа нашей руки, EV этих вариантов может быть сопоставимым, и единственный способ определить наилучшую линию — это вычислить EV всех вариантов и затем сравнить их между собой.
К примеру, чтобы вычислить EV чек-колла, мы должны знать, как часто оппонент будет пытаться украсть банк после нашего чека, как часто будет чекать в ответ и как часто будет ставить крупно. Планируем ли мы коллировать крупную ставку? Чтобы вычислить EV каждой линии, у нас должны быть некоторые данные. Например, если мы поставим крупно, как часто наша рука будет выигрывать в случае колла? И как часто мы можем ожидать от соперника колл? Иными словами, его частота фолда тоже важна для расчёта EV.
Откуда мы возьмём эту информацию?
Когда мы ставим каким-то конкретным сайзингом, мы точно знаем, как часто оппонент будет коллировать, и мы знаем точное эквити против его диапазона колла. Когда мы чекаем, мы знаем точную частоту, с которой он будет пытаться украсть банк, и наше эквити против его диапазона. Также мы знаем своё эквити в случае чек-чека. Всю эту информацию мы можем использовать в сценариях EV-моделирования, рассчитав EV для каждой доступной линии, а затем определив наиболее прибыльную из них.
Инструменты для EV-моделирования
EV-моделирование выглядит отличной идеей, но возникает вопрос: как его реализовать? Есть несколько способов, но, к сожалению, ни один из них не идеален.
CardRunners EV
Десять лет назад каждый покерист знал о существовании этой программы и, возможно, даже регулярно её использовал, но сегодня среднестатистический игрок уже не в курсе. CardRunners EV — это софт для построения дерева решений с учётом различных решений (колл, рейз, фолд и т.д.) и сайзингов. Мы нажимаем на кнопку, и программа рассчитывает EV для каждой ветви дерева.
CardRunners EV часто называют предшественником солвера GTO+, хотя на самом деле это не вполне так.
Поскольку последние годы все в покере помешаны на солверах, софт для построения деревьев решений не развивался — CardRunners EV был последней программой такого рода, и она сильно устарела. Может показаться, что она идеальна для EV-моделирования, но, увы, это не так. Отчасти это объясняется тем, что CardRunners EV вынуждает пользователя использовать подход, основанный на диапазонах, а именно, в каждой ветви дерева у игроков должен быть какой-то диапазон — мы не можем просто ввести нужные частоты.
Например, представьте, что мы строим простое дерево, в котором оппонент, сталкиваясь со ставкой размером с банк, фолдит ривер с частотой 60%. Но в CardRunners EV это невозможно. Вместо этого мы можем задать оппоненту какой-то диапазон и указать, что он будет продолжать с 40% этого диапазона. Но это приводит к другим проблемам: теперь мы не обязательно контролируем то, как часто оппонент выигрывает на вскрытии, поскольку эта частота будет основана на произвольном диапазоне, который мы ему назначили лишь для того, чтобы сгенерировать нужную частоту фолда. Есть способы обойти эти ограничения, но создание даже простых деревьев в CardRunners EV требует ювелирной работы.
Однако это не значит, что CardRunners EV нельзя использовать — это по-прежнему очень полезный инструмент, и с помощью хитрых манипуляций в нём можно создавать нужные деревья решений.
Microsoft Excel
Всем известные таблицы в Excel — более гибкий вариант, намного более мощный, чем думает большинство людей. Excel обладает неограниченными возможностями: внутри него можно построить целый процессор, создать любую программу и просчитать почти любую покерную ситуацию.
На практике это значит, что каждый раз нам приходится строить EV-модель с нуля. А хорошая новость в том, что, единожды создав модель для какой-то конкретной ситуации, мы можем сохранить её и использовать для аналогичных ситуаций, просто заменяя переменные в формулах. В любом случае, это гораздо лучше, чем каждый раз пытаться вычислять EV вручную.
Солвер
Иронично, что большинство игроков для EV-моделирования используют солвер, хотя он не слишком хорошо справляется с самым важным типом моделирования EV — эксплойтным. Смысл использования CardRunners EV и Excel как раз и заключается в том, что с помощью этих инструментов мы можем получить на свои вопросы чисто эксплойтные ответы, а не то, как мы должны играть в теории. Например, если у оппонента такая-то частота фолда, то с рукой данного типа какая линия розыгрыша будет иметь наивысшее EV? Эксплойтное EV-моделирование позволяет это понять.
Однако с помощью солвера мы не можем это узнать. При построении деревьев солвер обычно задействует определённый алгоритм: мы вводим различные переменные и в результате получаем полное дерево. Но когда мы запускаем эксплойтное EV-моделирование, нам обычно интересен только какой-то сегмент дерева, например, «проб-бет на тёрне с последующей ставкой на ривере» или линия «стоп-н-гоу».
Этот сегмент может быть ещё у́же, например, сценарий со ставкой на ривере. Из анализа игры поля мы знаем, как часто оппонент фолдит против разных сайзингов и хотим понять, какой сайзинг лучше подходит для блефа для разных типов рук. В CardRunners EV это делать очень просто, потому что каждый расчёт мы создаём с нуля.
Другая проблема в том, что солвер постоянно пытается найти равновесное решение для дерева и заданных диапазонов. Но если мы ищем эксплойтное решение, нам нужно не равновесие, а наиболее прибыльный эксплойт. В программе CardRunners EV есть инструмент, который, с учётом данного дерева, может сгенерировать наиболее эксплойтную линию для одного из двух игроков. Солвер же предназначен только для нахождения равновесных решений.
Многие игроки думают, что могут обойти это ограничение с помощью функции Node Locking. Например, они думают, что если задать оппоненту определённую частоту фолда на флопе, солвер выдаст эксплойтное решение, но это распространённое заблуждение. Если мы залочим какой-то узел, то солвер, чтобы это компенсировать, перестроит свою игру во всех остальных узлах дерева решений. В результате мы получаем не эксплойтное решение, а GTO-решение с учётом залоченной ветви дерева.
Чтобы использовать солвер для создания чистого эксплойта, мы должны применить Node Locking для каждой отдельной ветви дерева решений. Это требует огромной работы и совершенно невозможно на практике. Единственный способ это сделать — это использовать очень простое дерево, в котором мы сможем контролировать происходящее в каждом отдельном узле. Проще говоря, если наше дерево содержит всего 5–6 узлов, нам по силам будет залочить стратегию в каждом отдельном узле и создать эксплойтную или чисто эксплойтную стратегию с помощью солвера. Но, как я уже говорил, упрощение дерева до 5–6 узлов потребует массу работы, поскольку солвер не предназначен для создания небольших деревьев.
Солвер отлично справляется с расчётом нашего EV в любой точке равновесного решения, но с точки зрения эксплойтного EV-моделирования он непрактичен и не используется в таком качестве. Excel для этого подходит лучше, а CardRunners EV, несмотря на свои существенные ограничения, хотя бы разрабатывался для этой задачи. Но всё равно эти два инструмента не идеальны и тоже имеют ограничения.
Какой инструмент лучше?
Лучший инструмент для EV-моделирования — это индивидуальный скрипт, возможно, чем-то похожий на CardRunners EV, но более гибкий. Такой, который разработан именно для построения деревьев решений, но не ограничивает пользователя подходом, основанным на диапазонах. Мы просто вводим данные, например, наше эквити на шоудауне, частоту фолда оппонента, наше эквити в случае его колла, и т.д., и скрипт рассчитывает EV. Однако для этого нужны навыки программирования, и большинству из нас удобнее будет продолжать пользоваться Excel и программами вроде CardRunners EV.
Хорошая новость заключается в том, что в этой области покерной стратегии мы можем получить огромный перевес, если потратим своё время на решение этого вопроса и обзаведёмся подобным инструментом. Большинство покеристов вообще не уделяют этому никакого внимания, а работают исключительно с солверами, которые умеют рассчитывать только теоретическое EV для GTO-деревьев.
Если вы хотите поднять свою игру на уровень выше, вам точно следует задуматься о расчёте эксплойтных EV. Это самый важный показатель, определяющий нашу реальную прибыль в той или иной раздаче. Разбирая раздачи в солвере, мы часто видим, что ставка и чек имеют абсолютно одинаковое теоретическое EV, и поэтому солвер так любит применять смешанную стратегию, однако с точки зрения эксплойта EV этих действий будут сильно отличаться друг от друга. Единственный способ это обнаружить — расчитать EV теми способами и инструментами, которые описаны в этой статье.
Примеры EV-моделирования на практике
Вот несколько EV-моделей, которые вы можете проработать в тестовом режиме, чтобы познакомиться с этим процессом.
Второй баррель против «стоп-н-гоу»
Представьте, что мы поставили контбет на флопе, и наша рука (к примеру, гатшот) вполне годится и для второго барреля. Но мы не ожидаем, что EV второго барреля будет намного выше, чем у чека, поскольку у нас всё же далеко не самая мощная рука. Расклад также может зависеть и от карты тёрна.
Однако очевидный вопрос заключается в следующем: с точки зрения эксплойта, какая линия будет иметь более высокое EV — второй баррель или тактика «стоп-н-гоу» (ставка—чек—ставка)? Допустим, мы в позиции. Такая модель должна учитывать фолд-эквити оппонента по второму баррелю на тёрне и фолд-эквити по третьему баррелю на ривере. Технически, она также должна учитывать частоту его донк-бета на ривере, но грамотное EV-моделирование — это, в том числе, понимание того, когда можно исключить из расчёте определённые узлы, если мы считаем их нерелевантными, так что донк-бетом оппонента мы можем просто пренебречь.
Допустим, мы сгенерировали EV для линии с тремя баррелями, и теперь хотим сравнить со «стоп-н-гоу» (когда мы не ставим второй баррель на тёрне, а играем линию «ставка флопа, чек тёрна, ставка ривера»). В этой модели мы должны учесть частоту проб-бета оппонента на ривере и решить, как часто мы можем фолдить или рейзить в блеф.
Обычно имеет смысл начинать с простого, например, отправной точкой может быть фолд с недоехавшими гатшотами. Следовательно, мы должны учесть, как часто соберём стрит на ривере и сколько сможем добрать с оппонента (например, как часто он будет коллировать рейз). Но даже простые модели должны учитывать возможность того, что на ривере оппонент поставит и лишит нас возможности сыграть «стоп-н-гоу».
Далее, из анализа игры поля нам нужны данные о том, как часто оппонент будет фолдить ривер, если там мы поставим после чека на тёрне. Результатом будут два разных EV: первое — для двойного/тройного барреля с гатшотом, второе — для чек-чека тёрна, после которого мы потенциально можем получить проб-бет на ривере, а если не получим, то сами поставим.
Если мы обнаружим, что EV этих вариантов будут довольно близкими, мы сможем их миксовать, как это делается в GTO. Если же мы обнаружим, что EV сильно отличается друг от друга, очевидно, мы выберем лучший вариант в качестве чистой стратегии.
Бетсайзинг ривера против чека
Эта модель, возможно, чуть более прямолинейна и может применяться для любой ситуации на ривере. Как нам сыграть: поставить крупно, мало или прочекать? В этой модели не так много переменных, хотя в первый раз она может показаться вам сложной.
Проб-бет на тёрне против чека с последующей ставкой на ривере
Эта модель похожа на сравнение между двумя баррелями и «стоп-н-гоу». Допустим, на тёрне у нас воздух. Должны ли мы ставить проб-бет на тёрне с последующей ставкой на ривере, или мы должны прочекать тёрн с намерением поставить на ривере, если там у нас будет такая возможность? (Если мы не поставим тёрн, оппонент может сделать отложенный контбет, и нам придётся выкинуть.)
EV-моделирование даст нам как минимум усреднённый эксплойтный ответ, но помните, что такие модели будут меняться в зависимости от текстуры борда. Например, на борде с тузом лучше прочекать тёрн и поставить ривер, а на 10-хай борде проб-бет тёрна с воздухом и последующая ставка на ривере сгенерируют более высокое EV.
В таких моделях главное — выбрать подходящий уровень сложности, потому что при разрастании дерева модель может очень быстро выйти из-под контроля. В будущем, надеюсь, у нас будут более качественные инструменты для EV-моделирования, позволяющие создавать и просчитывать более сложные модели. Но пока мы используем Excel или CardRunners EV, у нас есть ограничение по сложности, потому что время стоит денег. Построение суперсложных EV-моделей потребует нескольких дней, и конечный результат может не стоить потраченного времени.
Подведём итог
Надеюсь, моя статья была полезной и дала вам пищу для размышлений. Если вы, как и большинство игроков, никогда не строили эксплойтных EV-моделей, этот материал будет введением в данную тему. Попробуйте запустить CardRunners EV или задумайтесь над тем, как можно использовать Excel для расчётов EV.
Вы можете проводить подобные вычисления и для префлопа. Например, насколько широко мы должны коллировать 5-бет? Насколько широко пушить? Проработайте такие модели для разных формаций, по возможности, используя данные о том, как играет поле.



