Разработчик покерного солвера Олег «Laegoose» Остроумов стал гостем подкаста Дэна Кейтса «Winning The Game of Life». Мы перевели самое интересное из их беседы — оригинал на английском можно посмотреть на Ютуб-канале Jungleman.

Чем известен Олег Остроумов?

В 2012-2013 году Олег Остроумов разработал на тот момент не имевший аналогов покерный калькулятор для высчитывания оптимальной стратегии (равновесие Нэша) в Безлимитном Холдеме.

Поначалу энтузиазма среди игроков он не встретил:

Они никогда раньше не видели солвер и относились к идее скептически: как они узнают, что результаты корректные, если я могу написать код для расчётов по равновесию Нэша, а они не могут? Им пришлось довериться мне. 

Одним из его первых покупателей стал Тимофей «Trueteller» Кузнецов — он купил лицензию за $100K. В 2021 году он рассказывал в интервью GipsyTeam об этой покупке так:

То, что в покере существует стратегия, которая соответствует равновесию Нэша, я понял сразу, как только начал играть. Потому что мы это проходили на мехмате. Еще до того, как появились солверы, в каких-то самых простых спотах я просто на бумажке прикидывал, каким будет равновесие Нэша. Условно на ривере это не очень сложно сделать. Потом появился Олег и предложил купить программу, которая сама считает равновесие. Я ответил: «О! Круто, давай».

По словам Олега, Тимофея убедила одна из линий расчётов солвера:

Ситуация: ты делаешь чек-колл флопа и тёрн делает борд спаренным по самой низкой карте флопа. Вместе с этим там образуется гатшот или флеш-дро. Ты без позиции делаешь ставку, потому что хочешь сбалансировать трипсы с полублефами. Эту линию никто не использовал, но Трутеллер — поскольку он работал над игрой — начал медленно подозревать, что она может быть успешной. И тут он видит, что солвер это использует. Так он понял, что программа на самом деле довольно умна.

Через короткое время после Трутеллера Рауль Гонсалес в партнёрстве с другими игроками тоже совершил сделку с Олегом, но им она обошлась уже в $200K.

Клиентами Олега также стали Алекс Миллер и сам Дэн Кейтс, а затем и другие покеристы, имена которых разработчик не раскрывает.

Как отметил Остроумов, Миллер заинтересовался его программой, потому что сам пытался создать в то время нечто подобное и даже нанял для этого человека:

Сначала он был настолько скептичен, что просто проигнорировал моё сообщение на PokerStrategy, но потом попробовал и согласился.

Дальше по тексту мы будем вести рассказ от первого лица — от лица самого Олега.

Как Олег пришёл к разработке покерного софта?

Я познакомился с покером в 2008 году. В то время изучал математику в университете и как раз проходил равновесие Нэша. Было очевидно, что покер один на один имеет это равновесие. Меня впечатлила идея того, что есть некая оптимальная непобедимая стратегия, так что я долгое время размышлял над тем, как её высчитать.

В то время программы позволяли рассчитать равновесие Нэша только для обыкновенных ситуаций префлопа. Например, это делал StocksEV.

В школьные годы я участвовал в соревнованиях по программированию и считал себя достаточно хорошим программистом, но всё равно понятия не имел, как написать программу для моей цели. Так что я начал играть в покер — провёл за этим занятием 3 года и всё-таки смог разобраться. Сначала я сделал собственный алгоритм, который высчитывал равновесие Нэша на ривере или даже тёрне, но он не работал на флопе. Тогда я пошёл смотреть академические публикации по равновесию Нэша в покере и выяснил, что очень умные люди (в основном — из Университета Альберты) тоже разработали свои алгоритмы. Я смог использовать их.

Красота равновесия Нэша в том, что его сложно найти, но стоит сделать это — и становится легко подтвердить, что это действительно оно.

Если вы представляете стратегию оппонента, то можете достаточно легко высчитать лучший ответ на неё. Если стратегия вашего оппонента фиксирована, то каждую руку вы сможете видеть ожидаемый вэлью каждого действия и всегда выбирать наиболее выгодное.

Проблемы лучшего ответа на стратегию оппонента

Когда вы играете против реального человека, у вас нет доступа к его стратегии — вы можете только гадать, да и записать её невозможно, потому что покерная стратегия базируется на миллиарде параметров. Соответственно, рассчитать равновесие Нэша в конкретном случае достаточно сложно, поэтому лучший предположительный ответ может не быть таковым для конкретной ситуации.

Вы можете думать, что есть всего 30 линий розыгрыша, а значит можно их изучить и принимать решения. Во-первых, проработать даже 30 линий — это очень большой объём работы. Во-вторых, есть ещё, например, 2,000 комбинаций тёрнов и риверов.

Другая проблема лучшего ответа в том, что это — крайний вариант из множества доступных игрокам ответов на стратегию оппонента. Чтобы понять её, рассмотрим пример. Вы смогли записать стратегию оппонента и выяснили, что он слегка оверфолдит — 3% от оптимального количества. Тогда лучшим ответом будет блефовать каждую руку. Возможно, не каждый флоп — но 100% риверов. Думаю, вы понимаете, что здесь не так. Именно поэтому узнавание лучшего ответа полезно для оценки того, насколько ситуация близка к равновесию Нэша, но в реальной игре применять его не практично.

Почему успешные игроки покупают солверы?

Забавно, но люди, которые хороши в покере и уже близки к равновесию Нэша, гораздо охотнее используют солверы. Причина в том, что для понимания логики, которая стоит за стратегией солвера, нужно быть близким к ней. Руководствуясь этой логикой, я изначально связывался именно с игроками лимитов вроде NL2K. Правда, сначала я выбрал своих друзей с NL2K — это было не очень удачно, потому что они не понимали, как работает солвер. Им казалось, что всё выглядит как-то рандомно.

Можно ли применять GTO для решения жизненных проблем?

Даже записать функцию полезности [прим. переводчика: математическая функция, с помощью которой можно представить предпочтения потребителя на множестве допустимых альтернатив] для применения GTO в человеческой жизни, в реальном мире — очень тяжело. А если функции нет — то мы не можем даже рассуждать о GTO.

Попробую развернуть мысль.

Определить функцию полезности, что люди действительно хотят, как сильно они этого хотят — денег в сравнении с вниманием, безопасностью — очень сложно. Но я думаю, что когда технология искусственного интеллекта станет лучше — а я сам очень жду от него политических решений — и если мы сможем закодировать её внимательно, то крупные ИИ будут способны оптимизировать и решать жизненные ситуации эффективным путём. Причём гораздо лучше, чем мог бы любой человек.

У ИИ в этом плане большой потенциал. Точно такой же, как у солверов в покере — чьи стратегии уже гораздо лучше человеческих.

Машины превосходят людей в покере?

Когда ты играешь в покер, у тебя есть выбор — ты можешь играть по GTO или эксплойтить. Если ты играешь против слабых игроков или смеси очень хороших и плохих, например, в турнирах, то играть по GTO будет ошибкой, которая обойдётся в потерю кучи вэлью. Здесь нужно эксплойтить.

Солверы могут очень мало в том, что касается эксплойта. Например, вы можете залочить одну из веток против оппонента со 100% c-бетом — это можно прописать в солвере и высчитать равновесие по Нэшу с учётом ограничения. Так будет близко к эксплойту против конкретного игрока. В некоторых солверах для МТТ (типа ICMizer) вы можете «подкрутить»  оппонентов — указать, кто играет более лузово, а кто более тайтово — но этим функционал для эксплойта ограничивается.

Проблема в том, что эксплойт очень сложно закодировать. Человек может понять, что делает другой человек, смоделировать это и эксплойтить модель, но солвер не способен даже смоделировать.

Мы видим очень мало шоудаунов, но отмечаем частоту действий. Конечно, на основе этого можно попробовать сделать какую-то модель в солвере, но это очень сложно. Есть хороший пример. Ноам Браун разработал ИИ для игры в многопользовательскую настолку «Дипломатия». Он задал боту параметры, чтобы тот вёл себя максимально близко к человеческому поведению. В игре есть момент, когда один игрок становится настолько силён, что остальным приходится объединяться, чтобы противостоять ему. Для этого нужно быть готовым жертвовать своими интересами ради благой цели. Так вот ИИ очень раздражал игроков тем, что даже в союзах пытался в первую очередь извлечь выгоду для себя. В итоге это заканчивалось тем, что игроки объединялись против него и побеждали.

Несмотря на несовершенства, разработчики солверов всё же пытаются научить их эксплойту. Лично мы делаем две вещи: учим солвер высчитывать равновесие по Нэшу с учётом ограничений и процент блефов. Здесь я бы хотел подробнее поговорить про Triple Draw.

Успех солвера Остроумова для Triple Draw

После сделки с Трутеллером по солверу для Холдема, он мне рассказал, что очень много вэлью есть в расчётах для Triple Draw. Тимофей сказал: «Ты можешь заработать миллион, если справишься с этим». Я почувствовал острое желание заняться расчётами, потому что видел, что Трутеллер серьёзен и знает, о чём говорит. Да и миллион долларов выглядел очень соблазнительно — у меня никогда столько не было. Так что я написал подходящую программу и Тимофей с Раулем начали изучать игру по ней. Это был огромный успех. Дело в том, что для солвера по Холдему, который был продан уже успешным игрокам, оценить влияние программы на результаты было сложно. Зато в Triple Draw играть ребята не умели, поэтому солвер фактически помог им обучиться с нуля. И в итоге они стали одними из лучших в мире. Они играли против профи, вроде Гаса Хансена. И где-то через год или полтора пришли к тому, что Рауль сидел в лобби на $2K/4K — и никто больше не хотел с ним играть.

Ситуация сложилась таким образом, потому что в 2014 не было публичных солверов даже для Холдема. А дро во многом куда более сложная игра, поскольку ты меняешь карты и знаешь, какие скинул, но твой оппонент знает только их количество.

Кстати, я в итоге сделал свой миллион. Когда я сделал солвер, мы договорились на непрямую долю — что я буду получать 40% от их экшена. Но они играли $2K/4K, а мой банкролл был около $100K, поэтому я не мог иметь 40%. С другой стороны, мы не могли измерить вэлью, которое солвер им дал, и попросить расчёт с его учётом в размере какой-то фиксированной суммы, из-за дисперсии.

В итоге мы пришли к довольно сложной системе оплаты. Каждые 6 месяцев мы смотрели историю рук, выписывали оппонентов, с которыми играл Трутеллер, и количество рук против каждого из них. Затем высчитывали чистый винрейт. После всех подсчётов мы и пришли к 40% от реализованного вэлью постфактум.

Как успех солверов повлиял на жизнь Остроумова

В 2012 я профессионально играл в покер и мой банкролл был на уровне $20K, а под конец 2014 или даже 2015 у меня было уже около $1,000,000. Я не знал, что делать с этими деньгами — не тратил много, просто жил как раньше в Москве. Из-за того, что у меня было достаточно денег, чтобы больше не работать, я потерял мотивацию трудиться, учиться и делать другие вещи. Я играл в DOTA — за 2014 наиграл около 2,000 часов — и это было невесело.

В итоге я пересмотрел своё отношение к жизни и деньгам и сделал три вывода. Во-первых, когда я получаю оплату за работу — это даёт мне чувство того, что я делаю что-то полезное.

Во-вторых, я научился тратить деньги и извлекать из них пользу для себя. И когда я их трачу — я снова хочу работать, чтобы сделать больше денег.

В-третьих, я осознал, что «тормозил» себя от движения вперёд, потому что не был готов признать наличие более успешных людей в индустрии. Когда я, наконец, принял факт — например, ребята из GTO Wizard имеют классный продукт и зарабатывают очень много денег — это меня отрезвило. Я понял, что даже когда я поднялся над своим прежним уровнем и заработал много денег, я не стал самым умным или самым богатым.

Если твои привычки в плане трат так малы, что твоя жизнь фактически устроена на 30 лет вперёд — тогда в чём смысл какой-либо деятельности? Но если ты тратишь достаточно, чтобы знать — деньги могут кончиться — это даёт сильную мотивацию заниматься чем-то.