Покерный робот

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

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

Исследование возглавил Майкл Боулинг (Michael Bowling), который также привлёк к сотрудничеству финского разработчика программного обеспечения Оскари Таммелина (Oskari Tammelin). Вместе они повторили подвиг компании IBM, которая в 1997 году выдвинула компьютер Deep Blue против чемпиона мира по игре в шахматы Гарри Каспарова и обыграла его. Только теперь задача оказалась труднее, ведь покер считается более сложной игрой, по крайней мере, для компьютерных алгоритмов, поскольку относится к категории игр с неполной информацией.

В научной статье, опубликованной в журнале Science, Боулинг и его коллеги описывают свою разработку, которая, по словам авторов, "взломала" специфический вариант покера, так называемый холдем HULHE.

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

Основная сложность игры в покер — в данном случае речь идёт о техасском холдеме — заключается в том, что на каждом этапе возникает огромное множество способов продолжения игры. Боулинг и коллеги рассмотрели вариант турнира, в котором участвуют два игрока и имеется фиксированный размер ставок и фиксированное число повышений этих ставок. Таким образом число возможных исходов игры определяются числом 3,16 × 1017, а количество моментов, в которых игрок должен принять решение, определяется числом 3,19 × 1014.

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

Эта стратегия широко известна среди разработчиков как контрфактуальная минимизация сожаления. Она была принята на ежегодном турнире по компьютерному покеру Annual Computer Poker Competition ещё в 2006 году. Теперь же команда доктора Боулинга модернизировала эту стратегию и позволила алгоритму каждый раз заново оценивать решения, которые он счёл проигрышными на ранних этапах обучения игре.

Другим важным нововведением стало сжатие огромных объёмов информации, которые приходится хранить и обрабатывать программе. Так, все возможные стратегии и данные о текущем ходе игры укладываются лишь в 262 терабайта, но математики нашли способ, как можно безопасно сжать все эти данные всего до 11 терабайтов. При этом к общему времени вычислений добавляется всего 5%.

Но самое интересное, что программа, как и профессиональный игрок в покер, отменно умеет блефовать. Ранее блеф считался человеческой психологической составляющей игры, но Боулингу и его коллегам удалось доказать окончательно, что и это не так.

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

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

Авторы исследования отмечают в пресс-релизе, что данный алгоритм может быть использован не только для игры в покер, но и для разрешения реальных жизненных ситуаций, в которых требуется принять одно из множества возможных решений, обладая неполным объёмом информации. К примеру, программа пригодится для управления портфелем инвестиций.

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

 

Источник: http://www.vesti.ru/doc.html?id=2271908