Софт, которого нет
Сегодня в статье я хочу немного снизить градус сложности рассуждений, но при этом дать хоть что-то работающее, что можно скачать. Надеюсь теперь кто-то выдохнет с фразой "ну вот, наконец-то всё понятно". Но ещё я хотел порассуждать на тему покерного софта - почему он такой? почему в нём всё именно так? Почему в нём нет каких-то очевидных вещей? Почему сейчас уже можно найти open source солвер или бота, но нет flopzilla для омахи? Или почему никто до сих пор никто не придумал в омахе удобный способ манипулировать диапазонами также легко как в холдеме или хотябы близко? Почему UI дорогого софта настолько всратый и нелогичный, и неужели нельзя было сделать нормально в за 500 бакcов? Если вы себе тоже задаёте такие вопросы, то мы с вами на одной волне :) А ещё на этой же волне есть много других людей, о которых вы можете никогда не узнать. И я хотел бы поделиться своим мнением почему так.
На мой взгляд в программировании оказываются люди двух типов. Или вернее мотиваций.
1. Всё более набирающий обороты осознанный тип, который выбрал этот путь собственного развития как карьеру и работу, за которую хорошо платят.
2. Те, кому программировать просто по-приколу. И даже если их работа напрямую не связана с программированием, это всё равно остаётся значимым хобби.
Понятно, что каждый жизненный маршрут сугубо индивидуален, и я максимально упростил ситуацию специально для иллюстрации. Так вот, оба типа программистов имеют семьи, детей сопливых, ипотеки, кризис среднего возраста, контролируемый алкоголизм и прочие вещи требующие их времени и ресурсов. И вот, у людей первого типа может вообще никогда не возникать мысли написать что-то "для себя". Ну примерно также, как у землекопа не возникает идеи пойти копать ямы для души. Но при этом этот же первый тип скорее всего будет больше зарабатывать, т.к. будет осознанно прокачивать свои навыки, проходить курсы, получать бейджики сертификатов в linkedin и т.д. У второго же класса людей программирование даёт в жизни полярный эффект. Если им везёт и они что-то крутое делают, то это может быть похоже на опыт Undertale (Да, я восхищаюсь Тоби Фоксом), а если не срослось, то ну... типа это время ушло куда-то в лимб, денег и известности не принесло, удовольствия тоже не факт, могут возникать мысли "нахер я с этим вожусь и лучше бы пошёл работать в банк, давно бы купил себе мазду в кредит".
А также существует естественный Байес с положительной выборкой. То что как-то выстреливает и зацепляется за аудиторию это всегда меньшая часть, чем работы в стол, неудачные работы, черновики, учебные программы и т.д. Когда мы видим крутую программу вроде FlopZilla (а я до сих пор считаю её топовым софтом в покере из когда-либо написанных), то мы понятия не имеем о том, сколько кода Гарет Джеймс отправил в мусорку, и в каком количестве проектов он поучавствовал прежде чем создал свой шедевр. И так вот, программисты первого типа делают ошибки и набивают руку под мудрым и небдящим руководством тех, кто им за это платит. В них вкладывают немалые ресурсы не чтобы они создали что-то, что удивит мир, а чтобы поезда ходили по расписанию, налоги начислялись со всеми пенями, а орки бегали в игре по правильным траекториям. Т.е. чтобы вы увидели принципиально новый покерный софт вам необходимо чтобы его написал программист второго типа. Скорее всего распиздяй троечник, вероятно не столь хорошо знающий свой стек технологий и уж точно не желающий тратить время на UI. Покер же в принципе полудохлая индустрия с точки зрения денег для программиста. Профессионалы первой категории сюда просто не заходят, либо приходят уже ковырять что-то и без них работающее вроде клиента покерстарз. Извините если кого обидел. Я сам такой, я с любовью :)
Card removal
Этот блок содержит краткий пересказ мои статей написанных ранее на английском. (ссылка)
Когда мы смотрим какой-то сим-пак решений популярный, то мы должны понимать степень его приближенности "к реальности". А реальность такова что солверы в массе своей воспроизводят модель игры, а не саму игру. И когда у нас где-то перед открытим с баттона на столе 6-макс изначально в солвере задан 100% диапазон, то это систематическая ошибка. Которая дальше протягивается в остальные решения постфлоп. Где-то она небольшая, а где-то просто огроменная и игнорировать её совсем означает, что вы просто не шарите в том, что изучаете. Например разница в холдеме 6макс в GTO открытии с баттона от реального открытия с учётом влияния предыдущих фолдов будет отличаться на 5% (солверный расчёт по-умолчанию завышает). И реальный диапазон с учётом card removal будет значительно сильнее. В омахе это не так сказывается на общем %, но точно также заставляет задуматься в адекватности постфлоп решений, построенных на таких диапазонах. И если для расчёта префлопа в холдеме мы можете использовать MCCFR в солвере HRC, то в для омахи в манкере вам придётся очень сильно ухищряться. Для того чтобы мне приходилось ухищряться чуть меньше, я написал себе тулзу, которая корректирует диапазоны на основе предыдущих. По ссылке выше вы можете прочитать более детально как я это делаю. Здесь опишу коротко, я корректирую веса всех карт в колоде по мере принятых решений игроков. Изначально у нас в колоде 52 карты и все веса равны единице.

Если игрок из UTG (EP) фолдит, то после его действия в колоде остаётся уже 50 карт

Я здесь вычел встречаемость каждой карты в диапазоне фолда UTG. У нас из вожных 1326 комбинаций, осталось 1225,96. Это общий весь комбинаций. Сильнее всего фолд повлял на двойки, слабее всего на тузы. Т.е. в следующем за ним диапазоном тузы становятся более вероятны чем двойки. И т.д. можно проделать эту операцию сколько надо раз. например вот так

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

Обратите внимание, что комбинаций после трёх вычитаний стало в 2.5 раза меньше, и что отставание двойки от туза стало ещё сильнее. В омахе card removal даёт диапазоны чуть более нагруженные тузами и старшими картами чем холдем. Поверьте, оно влияет :) Вернее лучше не верьте, а попробуйте. Отдаю уважаемому комьюнити эту тулзу на шару вместе с кодом. Сборка ссылка на программу. Исходники CardRemovalTool, можете просто форкнуть себе и играться. Если чего не понятно, задавайте вопросы.
Хорошие люди, живущие программированием
В процессе написания статьи и просмотра своего кода, я увидел куски, которые тянутся мной из проекта в проект уже лет 10. И я с настальгией вспомнил как написал свой "первый в мире самый лучший софт", который не взлетел и не получил вообще никакого интереса аудитории. Бэкграунд такой. Зима 2012 года, я делаю одно работку, в которой мне надо сравнивать быстро 2 или 3 диапазона между собой и я понимаю, что ни один софт мне этого не даёт. Более того, я нуждаюсь в инструменте, который будет все карты хранить как вероятности, а не просто есть\нет в диапазоне. Сейчас это стандарт де-факто, но ребята, на дворе конец 2012, piosolver увидел свет только в 2015, simple holdem и monker вроде как 2017. Т.е. Мы всё ещё в досолверной эре покера.
Запустил его сейчас, и всё разумеется работает. Но очень сложный интерфейс :) я уже давно таких не делаю. и хранение диазонов в xml, т.е. нельзя сделать тупо копипаст из пио. ну потому что пио тогда ещё не было. Но я подналёг и таки набил руками диапазоны для теста. извините за хулиганство
и эквити посчиталось со скоростью нажатия кнопки. Это не монте-карло, это точные значения сразу. ну не совсем точные, а скорее до точности хранения пар в словаре, я там округлил до двух знаков. Попытался посчитать такие же диапазоны в эквилабе
Для него это оказывается сложная задача. кто бы мог подумать... И да, если кто-то спросит зачем я изобретал велосипед - в 2012 не было нормальных калькуляторов, самый топовый был pokerstove.
Угадайте, сколько людей проявило интерес к моей разработке в далёком 12 году?
Собственно только Никита, который и сейчас есть на нашем сайте под ником NewPokerSoft. Мы с ним общались меньше, чем мне бы хотелось, но это определённо человек моего Карасса. Вы можете ничего не знать про него и его софт, он очень скромный человек, но вообще он для меня пример на который стоит ровняться. И надеюсь у него сейчас всё хорошо с контрактами и есть время на творчество. Почему я на это надеюсь? потому что я понимаю сколько этот человек написал в стол. если даже опубликованных тулз у него штук 20 http://www.newpokersoft.ru/index.php/soft . Я например помню как он писал свой трекер, потому что pokertracker говёно работал с теми играми, которые он играл. Ну да типа, если в этом мире нет для меня инструментов, то я создам себе свой собственный мир :) Вот такого масштаба человек.
SnowBeaver @ 18.08.23Card removal
Забавно будет посчитать эквити АК vs низкая пара SB vs BB в стеках 10-15 бб, с эффектом картремува в 8макс
Многие сильно удивятся
Я писал подобный софт чтобы проверить решение gto wizarda))) где то валяется в архиве на зеркальном RAID, ценный код и не нужный )
Пс а по теме, не хватает человека который бы собрал все эти параметры в одном большом софте каком то грандиозном. С названием типа Holdem solution
Пиосолвер быстро поникли, не заработав миллионы, я их лично не знаю, но через знакомого который их знает ситуацию мониторю. Gtowizard посмотрим во что превратится, пока что это самый денежный проект в мире ГТО и самый противоречивый.
SnowBeaver, В поисках информации про язык Rust(хочу в след году освоить), наткнулся на красивую статью по продаже курсов по Rust :
"Как я создал курс по программированию на Rust, вышел на мировой рынок и увеличил прибыль в десятки раз"
Красивое
Помню, что смотрел видос с канала ГТО визарда о префлопе и там объяснялся card removal. Ссылку на видео легко найти. Называется это bunching effect. ГТО визард в своих префлоп симуляциях его учитывает.
Я до сих пор смотрю на hand2note, и думаю вы в HM2 никогда не заглядывали?
хотя разработчики HM3 наверное никогда HM2 не видели так что какие тут могут быть вопросы.
ну то есть там так много полезных фич, которые в h2n просто отсутствуют.
Просто в моем понимании если что-то новое современное появляется на свет то оно должно учитывать опыт предыдущих, и создать доработки и модернизировать. А не взять просто выкинуть половину функционала. Причем базового.
Иногда кажется что это делали чисто программисты и рег с уровнем понимания покера нл50, ну то есть вообще никакой обратной связи от человека который реально шарит в аналитическом софте.
Я уже даже сам подумывал собрать какую-то команду и начать пилить аналитический софт для покера. Миллион идей на миллион.
Если даже не для масс то может хотя бы для себя.
5% префлоп опена за счет ремувал эффекта это все таки больше к академическим изыскам, нежели практической пользе. Для сравнения если за нами оппонент чуточку проигрывает в скилле и мы на пару процентов подымем реализацию всему ренджу это окажет куда большее влияние.
А за софт и труды спасибо
ГТО визард вроде как утверждает что их префлоп посчитан с учетом данного эффекта
c00l0ne @ 19.08.23SnowBeaver, В поисках информации про язык Rust(хочу в след году освоить), наткнулся на красивую статью по продаже курсов по Rust :
"Как я создал курс по программированию на Rust, вышел на мировой рынок и увеличил прибыль в десятки раз"
Красивое
ну вот как освоишь, то сможешь поизучать реализацию солвера на расте https://github.com/b-inary/postflop-solver У него надо UI неплохой есть, на нашем форуме вроде у этого солвера отдельная ветка
c00l0ne @ 18.08.23Пс а по теме, не хватает человека который бы собрал все эти параметры в одном большом софте каком то грандиозном.
Что бы это случилось, кто-то должен ввалить бабла в это дело (времени). И есть вариант, что результат будет не особо окупаем здесь и сейчас. У каждой разработки есть своя экономика. Просто так по приколу что-то появляется очень редко и это всегда надо "полюбить как есть".
BlueSky @ 19.08.23Помню, что смотрел видос с канала ГТО визарда о префлопе и там объяснялся card removal. Ссылку на видео легко найти. Называется это bunching effect. ГТО визард в своих префлоп симуляциях его учитывает.
gto wizard в своём софте использует (по крайней мере раньше использовал) 2 солвера. monkersolver и HRC. Собственно у них там даже скрины есть из HRC. Этот солвер использует card removal просто по факту своего метода. Он типа рандомного много раз раздаёт игрокам карты и смотрит эффект. Тоже самое происходит и в софте типа poker snowie, где типа сама симуляция приближена к игровой. Monkersolver же никак не позволяет принять в рассмотрение card removal, просто алгоритм другой и ничего с этим не поделать. Есть трюки, но они дорогие. Насколько я помню, у визардов в HRC посчитаны всякие длинные столы вроде 8-9 макс. Ну и собственно в своей статье они пишут тоже самое что я чёрным по белому
"Luckily, HRC supports full bunching using the Monte Carlo mode. We've recommended Monte Carlo mode", но при этом всегда есть инфа по симуляциям и можно спросить в дискорде в каком из солверов посчитано. Там большинство пока что monkersolver. ну или те симы что я смотрел все из манкерсолвера. Не знаю их планов по переходу на HRC. И да, этот солвер он только для префлопа.
А в омахе вообще нет нихрена :)
RSGRain @ 19.08.23Я уже даже сам подумывал собрать какую-то команду и начать пилить аналитический софт для покера. Миллион идей на миллион.
Если даже не для масс то может хотя бы для себя.
ну вот, в итоге сможешь работать в некотором элитном секторе и делать что-то для школ и фондов. Ну или сможешь родить что-то прикольное и новое в виде софта, но это не точно :) При этом нужны энтузиасты работающие за бесплатно, а там не такой уж высокий уровень обычно. Всё идёт от экономики, на чистом энтузиазме слишком далеко не выедешь. У меня есть мёртвые проекты длинной в несколько месяцев. Это было больно :)
BootieInUFace @ 19.08.235% префлоп опена за счет ремувал эффекта это все таки больше к академическим изыскам, нежели практической пользе.
Это утверждение в большей мере соответствует холдему и в меньшей омахе. Я тестировал расхождения стратегий по омахе, они существенные. О них хотелось бы знать. Но понятно, что людям, которые в принципе считают постфлоп на основе гто префлопа это может показаться слишком тонкой материей....типа мы тут общие принципы анализируем, ага :)
c00l0ne @ 19.08.23Так bottleneck в современных вычислениях достигается, для пяти карт вообще наверное не считается
всё норм считается, и для 5ти карточной омахи есть солвер. Вопрос наличия достаточно компетентных людей, которые могут это сделать. Вообще для MCCFR нужно меньше ресурсов и этот метод хорошо параллелится на кластере. Вообще технически покер это не бог весть что, сейчас в мире люди существенно сложнее комбинаторные задачи решают нормально на существующих мощностях.
SnowBeaver, а почему на видеокартах не считают , ведь это автоматически буст? Там тысячи потоков, там быстрее память ... Просто не хватает квалыфыкацыы создателям солверов? Чтобы адаптировать алгоритм cfr или это mission impossible?
И вот опять мне все интересно, но мало что понятно, дачтожтакое :(
SnowBeaver, значит ли написанное тобой, что в нлх мы можем открыть двойки с катофа? А колдколить их можем при наличии одного ор? А открыть в омашке с ранней , получается, совсем грустная история? Черт возьми, я все время так делаю :фейспалм:
Кажется, я скоро скачаю себе и твой вышеобозначенный софт и ещё кучу всего лишь по причине адского интереса к игре :)
c00l0ne @ 19.08.23SnowBeaver, а почему на видеокартах не считают , ведь это автоматически буст? Там тысячи потоков, там быстрее память ... Просто не хватает квалыфыкацыы создателям солверов? Чтобы адаптировать алгоритм cfr или это mission impossible?
Кому надо тот считает. Но в этом мире нет ничего автоматического. Покерный мирок крохотный, как и рынок софта. Нахера париться если у тебя купят полтора калеки? У всех трудозатрат должен быть определеный способ окупаться. Вот визард типа свой солвер миру предложили, а мне он не нужен, т.к. их у меня уже десяток. Они конкурируют тем, что сделали классный маркетинг, красивую обёртку и т.д. Т.е. делают солвер более доступным для массового игрока. Следующий солвер должен будет объяснить чем он лучше тех что есть и опять бороться за крохотную аудиторию. Ну я так вижу. Я б не стал сейчас делать ещё один солвер. Лучше уж флопзиллу для Омахи.
Омаха 5 считается на абстракциях точно также как стандартное пло и не требует серьёзных усложнений в алгоритмах.
annjett @ 19.08.23SnowBeaver, значит ли написанное тобой, что в нлх мы можем открыть двойки с катофа?
Чтобы ответить на этот вопрос мне нужен хрустальный шар :)
А открыть в омашке с ранней , получается, совсем грустная история?
да, самая грустная история с чем ты можешь открыться из ранней будет с 2222, не грустные истории начинаются где-то с
SnowBeaver @ 19.08.23
да, самая грустная история с чем ты можешь открыться из ранней будет с 2222, не грустные истории начинаются где-то с
Я полезла посмотреть, что будет, если открыться с грустной историей. Против и (оптимистичный вариант выбрала без бубны у оппов) вышло около 30% и на флопе с фд подросло до приятных моему оку 49%
Значит ли это, что все дело просто в слабости двоек? И будут лучше? (что это тоже грустная история мне понятно, интересно именно чем плоха рука с фд и микропарой 22-33)
Я к чему вообще веду эти весьма дурацкие в серьёзном блоге вопросы... На моих микролимитах никто (вообще, йолки, никто) не сбрасывает руки с потенциалом на натс флеш (слабое исключение: 4бетпот) и при этом ещё и плохо сбрасывают неполные ряды в духе . Ну и я на волне такого подхода тож открываю все тузы с мастью, а что делать. Не то чтобы я хотела зарабатывать покером, совсем нет. Но игра мне нравится, а под поле приходится делать подстройки :вздыхаю:
неа :) вообще публичного софта чтобы манипулировать диапазонами в омахе не существует насколько я знаю. Я имел в виду выгрузить, удалить как-то, потом загрузить обратно и посчитать матрицу.