Подтвердить что ты не робот

Построение Техасского Холдема, играющего AI..из нуля

Я заинтересован в создании механизма Texas Hold 'Em AI на Java. Это долгосрочный проект, в который я планирую инвестировать не менее двух лет. Я все еще учился в колледже, пока не строил ничего честолюбивого и не хотел решать проблему, которая удержит мой интерес в долгосрочной перспективе. Я новичок в области ИИ. Из моего класса структур данных в колледже я знаю базовые строительные блоки, такие как BFS и DFS, backtracking, DP, деревья, графики и т.д. Я изучаю регулярное выражение, изучая SCJP и SCJD, и в скором времени я возьму (плотный).

Вопросы:

-Какой ли я начинаю? Какие книги я должен выбрать? Какого рода ИИ играют в покерные программы? С какого проекта с открытым исходным кодом я могу взять страницу? Любые хорошие ресурсы ИИ в Java? Я заинтересован в изучении Lisp, хорошо ли Jatha?

4b9b3361

Ответ 2

Покерные AI, как известно, трудно получить правильно, потому что люди делают ставку непредсказуемо. Он обычно разбивается на две части.

1) Вычислите шансы вашей руки быть победителем.

2) Сформулируйте стратегию ставок на основе 1.

Я бы рекомендовал начать с большого количества статистических чтений для части 1. Кажется, сначала легко румяна, но на самом деле это очень сложно (и ошибиться, обрекает ваш ИИ). Затем переходите к генетическим алгоритмам для части 2. Стратегии ставок - это в основном генетические алгоритмы. Они корректируют себя на основе прошлых успехов и неудач + рандомизации, чтобы не стать предсказуемыми.

Ответ 3

Я написал механизм Texas Hold'em Video Poker в Java

Этот код является основным движком для Texas Hold'em без просмотров и других.

http://github.com/phstc/javapokertexasholdem

Ответ 4

Кроме того, позволяя генетическому алгоритму корректировать веса нейронной сети, которая определяет логику решения. Этот подход очень подходит для покера AI.

Я сделал свой собственный ИИ подобным образом. Сначала я создал ~ 1000 игроков, которые вообще не знали, как играть в игру. Основываясь на их первоначальной удаче во время рук, их фитнес был взвешен и создано новое поколение. Новые "мозги" играли лучше, чем предыдущее поколение.

В конце концов, лучшие люди играли очень хорошо.

Ответ 5

Как уже рекомендовалось, книга Theory of Poker - поистине бесценный источник информации для игры, а также для создания ИИ. Вероятно, вы должны купить его, поскольку это не так дорого.

Университет Альберты, рекрех группа, делает современное состояние на данный момент, хотя время от времени они сталкиваются с жесткой конкуренцией. (Не все покер-боты и исследования ИИ в этой области являются общедоступными из-за соблазна использовать одни результаты в интернет-покере, хотя это запрещено).

Сначала вы должны решить, какой покер вы собираетесь решать в первую очередь. два игрока hold'em в значительной степени решены, хотя лучшие люди по-прежнему проводят настоящий бой с лучшим доступным AI. ИИ имеет основные преимущества перед людьми, имея неограниченную безупречную память о прошлых руках, безупречный анализ моделей, основанных на этом, и поскольку они являются машинами, они не наклоняются, как это обычно делают почти все люди.

Фиксированный Холдем, вероятно, самый легкий для взлома, поэтому вы можете начать с фиксированного холдема 1-1, а затем решить, что вы хотите сделать дальше.

Вот некоторые аспекты, которые изменяют правильную стратегию (и ваш AI):

  • Кассовая игра отличается от турнир Количество игроков делает решения разными.
  • Hold'em это не единственный покер. Омаха, Стад и другие существуют и широко распространены играл.
  • Фиксированный лимит отличается от Pot Limit, который отличается от No Ограничить.
  • Чтобы побить лучшее, вам нужно покрыть много очень тонких вещей, о которых думают лучшие игроки, когда они играют. Чтобы победить любительскую игру с низкой ставкой, ни одна из этих вещей не считается.

Если вы решите пойти на No Limit Hold'em, вы можете проверить три книги серии Harrington on Hold'em и книгу No Limit Poker - Теория и практика. Прочитав довольно много книг по покеру, я могу сказать, что этих книг в сочетании с Теорией Покера достаточно.

Ответ 6

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

Однако существуют некоторые общедоступные базы кода, которые представляют собой полную реализацию. Один из лучших - Fell Omen:

http://www.deducer.org/pmwiki/pmwiki.php?n=Main.ArtificialIntelligencePoker

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

Если вы заинтересованы в развитии покерного AI, я бы предложил прочитать все с 2007 года, а также из покерной группы UA и студентов Tuomas Sandholm:

http://www.cs.cmu.edu/~sandholm/

http://poker.cs.ualberta.ca/publications.html

Ответ 7

Я написал AI Hold'Em в моем подходе. Это не было особенно продвинутым, я использовал машину Q-Value, которая пересекала несколько состояний и обновляла значения Q для каждого состояния.

Я нашел проект Университета Альберты AI Poker бесценным источником информации для избежания подводных камней.

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

Одна ловушка, в которую я упал, раньше не строилась в реконфигурации. Например, способность переключать уровень обучения/игры.

Мне было бы интересно услышать, как вы попадаете мне на почту stevekeogh на gmail.com

Ответ 8

Чтобы добавить к ссылкам выше, одна из важных вещей для реализации будет http://en.wikipedia.org/wiki/Kelly_criterion, которая поможет выяснить оптимальный размер ставок, учитывая ожидаемые коэффициенты в серии ставок. С людьми могут возникать ошибки в оценке шансов, но если ваша программа AI может плюнуть на некоторые ожидаемые нормированные коэффициенты, основываясь на любом алгоритме, то этот метод определения ставок, который уравновешивает как риск, так и вознаграждение за преимущество игрока, будет хорошим дешевым решением.

Ответ 9

Один интересный результат, который я слышал, заключается в том, что если вы ограничите варианты ставок, чтобы сбросить карты, проверить и олл-ин, вы можете написать AI, который выигрывает один на один с вероятностью не менее 49% и 49,5%, если он (IIRC) не идет первым.

Я не знаю, что этот ИИ легче написать тот, который знает, сколько делать ставки, но это пища для размышлений: выбор суммы на ставку составляет только 1,5% от вероятности выигрыша.