Создание искусственного интеллекта для игры в Техасский холдем .. с нуля [закрыто]

StackOverflow https://stackoverflow.com/questions/506167

Вопрос

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

Вопросы:

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

Другие советы

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

1) Рассчитайте шансы на то, что ваша рука окажется выигрышной.

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

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

Я написал движок для видеопокера Texas Hold'em на Java

Этот код является основным движком для Техасского холдема без просмотров и других

http://github.com/phstc/javapokertexasholdem

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

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

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

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

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

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

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

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

  • Кэш-игра отличается от турнира -Количество игроков принимает разные решения.
  • Холдем это не единственный вид покера.Омаха, Стад и другие существуют и широко используются в них играют.
  • Фиксированный лимит отличается от Пот-лимита, который отличается от отсутствия Лимита.
  • Чтобы победить лучших, вам нужно учитывать множество очень тонких вещей, о которых думают лучшие игроки, когда они играют.Чтобы победить в любительской игре с низкими ставками, ни одна из этих вещей не имеет значения.

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

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

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

http://www.deducer.org/pmwiki/pmwiki.php?n=Main .Искусственный интеллект в покере

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

Если вы заинтересованы в разработке искусственного интеллекта для покера, я бы посоветовал прочитать все, начиная с 2007 года, от UA poker group и учеников Туомаса Сандхольма:

http://www.cs.cmu.edu /~сандхольм/

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

Я написал искусственный интеллект для игры в Холдем, когда был студентом.Это не было особенно продвинутым, я использовал Q-Value machine, который пересек несколько состояний и обновил Q-значения для каждого состояния.

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

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top