LINUX.ORG.RU
ФорумGames

Artificial Intelligence для игры в крестики-нолики

 , , , ,


0

1

Вторая итерация разработки самообучающейся нейронной сети для игры в Tic Tac Toe (на основе рубиновой обертки библиотеки FANN), которую и хочу сегодня представить вашему вниманию.

Круто прозвучало, аж самому понравилось. Но, помнится, в бытность первого релиза были на Хабре и иронические реплики, типа хаха, из пушки по воробьям. Сходу предупреждая подобного рода - «можно было и на if-ах склепать» - аффекты: можно-то оно, знамо дело, многое, в том числе Яндекс открыть и поиграть, но практического опыта разработки игровой логики у вас не будет, да и к пониманию основ нейронных сетей не приблизитесь никоим образом. А, самое главное - вай нот, почему нет? - практика моей когда-то офисной карьеры ехидно напоминает, увы, что значительно большие, нежели в контексте данной разработки, человеческие ресурсы сплошь и рядом у нас тратятся на достижение гораздо менее значимых целей, чем написание программы, призванной проиллюстрировать не только опыт разработчика, создающего полностью эксклюзивный (#аналаговнет) алгоритм Artificial Intelligence, но и некоторую его склонность к юмору.

ОК, с этим разобрались. Теперь - коротко по сабжу. И да, если заинтересовал, позвольте адресовать к подробным докам на тему, здесь же - ремарка короткой строкой и ссылка на гитхаб для тех, кто пожелает попробовать обучить и обыграть нейронку (вам понадобится установить Ruby, далее ровно никаких технических проблем и плясок с бубнами). Итак:

gem install csv ruby-fann progress_bar tty-pie
git clone https://github.com/cmirnow/Tic-Tac-Toe-AI-with-Neural-Network-Resurrections.git
cd Tic-Tac-Toe-AI-with-Neural-Network-Resurrections
ruby start.rb

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

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

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



Последнее исправление: rishard (всего исправлений: 1)

Ответ на: комментарий от paddlewan

А зачем матом. В моём вопросе нет ничего, кроме желания быть толерантным к меньшинствам. Итак? Понятно ведь, что говоришь ты с собой или о своём, это я тебе как человек, который давно не считает командную разработку своей профессиональной областью. Не вопрос; если хочешь поговорить об этом, почему нет. Ты это мамку свою эдак вожделеешь, бедолага, или сестрёнку? Расскажи, коли столь сильно будоражит. Ручаюсь, терапевтический эффект не заставит себя ждать.

rishard
() автор топика
Ответ на: комментарий от rishard

Окончание игры в крестики-нолики (tic tac tie) способно иметь, с точки зрения каждого из двух игроков, любое из трёх состояний: выигрыш, проигрыш, ничья. Точка. Вся остальная демагогия суть следствие невысокой теоретической подготовки, что не позволяет адекватно интерпретировать статью вики, ссылка на которую приведена выше, плюс, вероятно, плохое знание английского.

Я ж и пишу: «Почитайте про игру с нулевой суммой», там все написано :) Без как раз демагогии.

P.S. Just to mention, I don’t really care for the opinion of a random prick on the internet as to my ability to read in English and interpret what I have read :) Just cool down a bit :)

paddlewan
()
Ответ на: комментарий от paddlewan

заюша?

Любитель заюш в лице своих родственников, ты уходишь от ответа. Не нужно переключаться, стиль общения выбрал ты сам, ну и я никоим образом не против, почему нет. IT для тебя некая психологическая компенсация данной семейной коллизии, насколько я понял? Ты правда хочешь поговорить об этом? Не вопрос. Могу даже сеанс гипноза устроить в офлайне, ежели есть желание. Не хочу пиариться, тем более на техническом форуме, но не ты первый не ты последний, результаты у меня неплохи, многим помогло. И эффект стойкий, не на пару дней. А?

Расскажи, ты педик или би? Исходя из нашего общения, я пока что не сумел определить.

rishard
() автор топика
Ответ на: комментарий от paddlewan

Just to mention, I don’t really care for the opinion of a random prick on the internet as to my ability to read in English and interpret what I have read :) Just cool down a bit :)

Ну, вот видишь. А говоришь, вскрылся. Это ты ещё не вскрылся, любитель мамок @paddlewan . Но надежда у меня уже есть. Особенно, если сумеешь повторить мне эту сентенцию в офлайне, на психотерапевтическом сеансе, на любом языке; - в этом случае, уверяю, есть недюжинные шансы на излечение. У меня не как у коллеги Фрейда, у которого психоанализ годами длился, и он в каждой своей книжке уверял, что иначе не получается; нифига. Практикую эксклюзивный, опять же, метод, буквально зараз возвращаю заблудших фриков-*удаков навроде тебя в лоно родной на всё времена РПЦ.

Очень советую согласиться на индивидуальную психотерапию. Кажется, ты уже и вправду готов, я прав? а, заюша мой сладенький @paddlewan ?

rishard
() автор топика
Ответ на: комментарий от paddlewan

Невосполнимым убытком, @paddlawan , твои несчастные папа-мама считали покупку средств контрацепции, насколько я понял. И результат налицо: ходячий анамнез, нашедший пристанище в it. Трусливенький и крайне недалёкий. Взялся троллить в чужой теме, а как заговорили с ним на том же языке, мигом поджал хвостик и улепетнул. Жаль. Психотерапия моя тебе б реально помогла, это твой единственый шанс. Надумаешь, обращайся. Пидорков врачевать я не любитель, но клятва Гиппократа превыше всего: ноблесс оближ.

rishard
() автор топика
Ответ на: комментарий от xDShot

Ха-ха. Конечные автоматы видимо не дают понимания.

Интересно отметить, что из двух страниц комментов лишь считанные единицы представляют интерес и не являются офтопом. 90%, как видите - сказал, что в лужу два пальца окунул. Никто из «айтишников» здесь не в состоянии сказать ни слова о логике кода, плюсах его и минусах; по большей части прозвучали попытки неумелого троллинга и реплики в стиле «ни о чем, но просто я вот так крут». Про ООП, динамическое программирование и тому подобные никому ненужные частности услышать на ЛОРе, видимо, априори невозможно: каждый настолько занят своей навек возлюбленной персоной и её комплексами, что ни о чем другом здесь попросту не заходит. Видимо, я не очень сильно ошибаюсь, рассматривая ИТ-отрасль как способ трепетно лелеять детские свои фиксации; все то, что по природе своей должно сгореть в беспощадном огне суперэго (гуглим), принеся положенные плоды - здесь бережно сохранено, как мошки в куске янтаря. И, как следствие - огромное количество тупой, беспросветно позорной ваты в среде российских айтешнегов. Наобщался, благодарю. До сих пор тошнит.

Всё это вполне коррелирует, как и было сказано, с Касталией Германа Гессе: искусственный, изначально мёртвый мир, «печеньки, фруктики, пуфики», цель которого - попытка сохранить, как в целлофане, то, что сохранено быть не может просто по природе человеческой. Читайте Игру в Бисер, айтишники: вне своего приторно-рафинированного мира, который не является даже синтаксическим сахаром - вы, подобно персонажу Гессе, не протянете и трёх дней.

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

rishard
() автор топика