Введение - Разработка покерного робота

Сегодня автоматизированные системы применяются практических во всех сферах нашей жизни. В связи с этим в качестве темы выпускной квалификационной работы была выбрана именно разработка одной из таких систем, а именно - разработка покерного робота. Покерный робот - это компьютерная программа, принимающая решения для одного из игроков при игре в каком-либо покер руме Покер рум - проект, предоставляющий возможность игры в онлайн покер с людьми со всего мира. Покер рум по своей сути является виртуальным аналогом покерных клубов, только с большим количеством игровых столов и виртуальными дилерами [1]. онлайн. Обычно подобные системы состоят из следующих частей:

    1. Модуль, получающий необходимую информацию из покерного клиента; 2. Модуль, принимающий решения.

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

Первые покерные роботы появились в 80-х годах прошлого века. В 1984 году, известный покерный игрок Майк Каро Майк Каро. Родился 16 мая 1944 года. Специалист по стратегии, психологии и статистике. Так же известен как специалист по азартным играм. Автор и соавтор множества книг. Работал как консультант или менеджер во многих казино и покерных онлайн комнатах[1]. разработал первую подобную систему под названием "Орак". Данная программа в 1985 году показала достаточно хорошие результаты при игре с одними из лучших игроков того времени. Покерные роботы стали достаточно популярны в связи с огромным число людей, начавших играть в покер в интернете. Однако не стоит забывать об одной очень примечательной вещи - покер является игрой с неполной информацией. Вы не знаете карты противника, противник не знает ваших карт. Кроме того, никто не знает какие карты выйдут следующими на стол, поскольку они достаются из колоды случайным образом. Более того, покер является игрой, с огромным числом возможных состояний, который не то что человеку, а компьютеру обработать достаточно непросто.

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

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

В связи с этим разработка данной системы предполагает выполнение следующих задач:

    1. Поиск покер рума, из клиента которого возможно получить нужную информацию. Сегодня существует несколько крупных покерных компаний предоставляющих своим игрокам возможность играть онлайн при помощи клиента. Проблема состоит в том, что большинство из них имеет достаточно серьезную систему безопасности, которая следит за пользователем и в случае появления подозрений блокирует его аккаунт без каких-либо разбирательств. 2. Получение данных из покерного клиента. Извлечение информации является также достаточно непростой задачей. Для получения информации о текущей раздаче, положении за столом и карт можно использовать сканирование картинки. Однако данный способ является достаточно неустойчивым, поскольку при малейших изменениях в интерфейсе клиента или каких-либо отдельных элементов стола этот метод будет предоставлять не совсем корректную информацию. Второй способ заключается в извлечении информации непосредственно из процесса клиента запущенного в системе. Данный подход позволяет получать наиболее точную информацию. 3. Интерпретация данных. После получения данных из клиента "в сыром виде" необходимо их каким-то образом преобразовать, для того чтобы дальше их можно было анализировать и работать с ними. Данная задача является одной из ключевых, поскольку точность полученных данных напрямую влияет на точность принимаемых решений, и даже малейшая ошибка, может привести к неправильной работе всей системы. 4. Произведение необходимых вычислений для дальнейшего принятия решений. Этот пункт является основной научной составляющей данной работы. Сегодня существует несколько подходов и способов к оценке шансов игрока и силы комбинации. В данной работе планируется объединить некоторые из этих подходов и оценить их эффективность при игре с реальными игроками онлайн. 5. Принятие решения на основе полученных данных. Принятие решений системой будет осуществляться на основе данных полученных с игрового стола и конкретными значениями, необходимыми для принятия решения. 6. Оценка и анализ результатов работы. Чтобы оценить эффективность применения искусственного интеллекта для принятия решений в играх с неполной информацией, необходимо каким-то образом проанализировать и оценить полученные результаты игры. Предполагается оценка результатов игры без использования данной системы (мной и возможно еще кем-то), и с использованием данной системы и сравнение полученных результатов.

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

Похожие статьи




Введение - Разработка покерного робота

Предыдущая | Следующая