Как подойти к написанию ИИ игры Tic Tac Toe пять в ряд? - PullRequest
0 голосов
/ 22 февраля 2012

Я попросил коллегу создать игровой ИИ Tic Tac Toe, который будет играть в игры пять-в-ряд (не традиционные 3). Мои первые мысли заключаются в том, что я создаю «табло», то есть каждая ячейка в игре получает оценку от 0 до бесконечности. ИИ находит фигуры и определяет, какие места содержат сколько ценностей и дают оценку клеткам. В конце концов, ячейка с наивысшей оценкой является выбором.

Есть ли лучший способ решить эту проблему?

1 Ответ

1 голос
/ 22 февраля 2012

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

Как кодировать простой ИИ для настольной игры для Windows Phone?

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

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

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

...