Вы можете попытаться решить крестики-нолики, используя симуляцию Монте-Карло. Если один (или оба) из игроков является машинным игроком, он может просто использовать следующие шаги (эта идея взята из одного из мини-проектов в coursera course Принципы вычислений 1 , который является частью Основ специализации вычислительной техники, преподаваемой в университете RICE.):
Каждый игрок машины должен использовать симуляцию Монте-Карло, чтобы выбрать следующий ход из заданной позиции на доске TicTacToe. Основная идея состоит в том, чтобы сыграть в набор игр со случайными ходами, начиная с позиции, а затем использовать результаты этих игр, чтобы вычислить хороший ход.
Когда игрок с точным автоматом выигрывает одну из этих случайных игр, он хочет отдать предпочтение клеткам, в которых он играл (в надежде выбрать выигрышный ход), и избегать площадок, на которых играл противник. И наоборот, когда он проигрывает одну из этих случайных игр, он хочет отдать предпочтение клеткам, в которых играл противник (чтобы заблокировать своего противника), и избегать площадок, в которых он играл.
Короче говоря, квадраты, в которых выигравший игрок играл в этих случайных играх, должны иметь преимущество перед клетками, в которых играл проигравший игрок. Оба игрока в этом случае будут игроками машины.
Следующая анимация показывает игру между двумя игроками машины (которая завершилась ничьей ) с использованием 10 испытаний MC в каждом состоянии доски для определения следующего хода.
Он показывает, как каждый из игроков машины учится играть в игру, просто используя симуляцию Монте-Карло с 10 испытаниями (небольшое количество испытаний) в каждом состоянии доски, оценки показаны в правом нижнем углу каждого квадрата сетки используются каждым из игроков на их соответствующих ходах, чтобы выбрать свой следующий ход (более яркие ячейки представляют лучшие ходы для текущего игрока, согласно результатам моделирования).
Вот мой блог об этом для более подробной информации.