Суббота, 04 февраля 2023 04:23

Tic-Tac-Toe with a Neural Network. Resurrections

Оцените материал
(11 голосов)

Очередная итерация разработки самообучающейся нейронной сети для игры в крестики-нолики.

 

Tic-Tac-Toe with a Neural Network. Resurrections.
Tic-Tac-Toe with a Neural Network. Resurrections.

 

За подробностями, если реплика заинтересовала, позвольте адресовать к давнишним материалам на тему, ссылки в левом сайдбаре (сам, не поверите, очень внимательно читал и перечитывал, пытаясь по прошествии времени вспомнить подробности алгоритма AI, приданного в помощь нейронной сети и являющегося, без ложной скромности, эксклюзивной разработкой автора). В любой момент вы можете найти эту игрушку в моем гитхабе, она носит легко запоминающееся название Tic-Tac-Toe-AI-with-Neural-Network-Resurrections.

 

Увидеть на гитхабе.

 

Здесь же кратко напомню внешнюю фабулу приложения, написанного в шутку, но всерьез выстраивающего нейронную сеть на основе Ruby-обертки библиотеки FANN, играя в крестики-нолики: после первого запуска программа, абсолютно не умеющая играть в tic-tac-toe - проигрывает рандомно несколько десяткой тысяч партий (определено в настройках, меняйте и экспериментируйте, при желании), что занимает, в зависимости от ресурсов вашего рабочего компьютера, одну-две минуты. В качестве итога будет создан расширенный лог-файл в формате csv, о чем приложение известит соответствующим мессаджем консоли, пригласив к игре.

 

Fast Artificial Neural Network Library is a free open source neural network library, which implements multilayer artificial neural networks in C with support for both fully connected and sparsely connected networks. Cross-platform execution in both fixed and floating point are supported. It includes a framework for easy handling of training data sets. It is easy to use, versatile, well documented, and fast.

 

Tic-Tac-Toe with a Neural Network. Resurrections.
Tic-Tac-Toe with a Neural Network. Resurrections.

 

Следующий запуск (также все последующие, пока в директории приложения находится единожды сформированный лог) начнется, как это делают любые компьютерные игрушки - с загрузки данных (здесь все значительно быстрее) в оперативную память, что визуально сопровождено бегущей строкой вашего терминала. В скобках: логика программки исправно отрабатывает в консолях Linux и Windows, но в винде процесс игры способен выглядеть несколько хуже. И вот теперь Artificial Intelligence готов играть с вами: после окончания каждой партии тут же начинается новая, очередность ходов (нейронка умеет играть как первым, так и вторым номером) выбирается случайным образом.

 

Build Your Own Tic-Tac-Toe Robot. Article on Medium.com.

 

Алгоритм AI был несколько изменен по сравнению с предыдущим релизом, что позволило ощутимо улучшить уровень игры виртуального оппонента. На самом деле, мне практически не удается обыграть своего маленького франкенштейна, который всегда сводит игру как минимум к ничьей, если не всегда к выигрышу. Если вы сумеете выиграть, либо же программка откажется продолжить игру - это явно нештатная ситуация, вам необходимо выйти из приложения (q + Enter), удалить лог и запустить процесс обучения заново.

 

27.03.2023. Теперь нет необходимости вручную удалять лог. Если Artificial Intelligence проигрывает, все необходимые действия будут совершены автоматически. То же самое происходит, если AI попадает в ловушку, взгляните: любой ход ведет к поражению, стало быть: 

Human, choose a position between 1-9: 7

 O | X | X 
 ---------- 
 4 | X | 6 
 ---------- 
 O | O | 9 

Unacceptable moves: ["4", "6", "9"]

Sorry. TimeOut. AI will rebuild the game log now. Please wait...
The Artificial Intelligence training process works: [*****]
Done. You can start playing.

 

Последнее изменениеВоскресенье, 26 марта 2023 22:26

Оставить комментарий

Добавьте ваш комментарий

Tic-Tac-Toe with a Neural Network

ReactJS