Search
Write a publication
Pull to refresh
3
0
Send message

Крестики-Нолики (Tic Tac Toe) с компьютером на Python. Часть 2: шаг к ML

Level of difficultyEasy
Reading time8 min
Views4.8K

Всем привет. Я любитель Python и совсем недолго осваиваю язык всеми доступными способами. Моя цель - понять принципы машинного обучения и его взаимосвязь с нейросетью. Никакого опыта в IT не имел, тем не менее постараюсь излагать общепринятой терминологией, не судите строго. Моя основная профессия не менее сложная (оперирующий травматолог, кандидат наук), далека от IT, но для упрощения работы в нее все больше внедряются AI и ML.

Хотел бы присоединиться к какому-то проекту на границе практической медицины и машинного обучения. Для этого решил публиковать оригинальные статьи, чтобы как-то начать IT портфолио в дополнение к аналогичному "из операционной".

В первой части статьи рассказывалось о новом программном алгоритме игры человека с компьютером в качестве «Х» или «О» игрока, избегая классического «дерева для конечного числа ходов». Цель - ситуационный анализ только текущего поля и выбор "лучшего следующего хода".

Во второй части "лучший ход" будет взят на основе нейросети из базового файла .csv с результатами 50000 случайных игр компьютера с самим собой. Причем все последующие игры пользователя и машины будут также продолжать вноситься в файл, если ранее их там не было. Этот принцип я взял из ML шахматных движков, основанных на записи в DB результатов игр профессионалов за полтора века. Контроль качества провел, сыграв 100 игр с web Tic-Tac-Toe от Google, выбрав роль посредника между ним и моей программой на Python. 

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

Читать далее

Крестики-Нолики (Tic Tac Toe) с компьютером на Python. Мой первый шаг к Machine Learning. Часть 1

Level of difficultyEasy
Reading time10 min
Views20K

Всем привет. Я любитель Python и совсем недолго осваиваю язык всеми доступными способами. Моя цель - понять принципы машинного обучения и его взаимосвязь с нейросетью. Никакого опыта в IT не имел, тем не менее постараюсь излагать общепринятой терминологией, не судите строго. Моя основная профессия (оперирующий травматолог, кандидат наук) не менее сложная и далека от IT, но для упрощения работы в нее все больше внедряются AI и ML. Мною движет лишь интерес к современным технологиям, программированию.

В первой части покажу только основные этапы создания игры, где пользователь выбирает роль (Х или О), играя с компьютером. Поиск в сети Python аналогов дал только несколько вариантов игры с рандомным ответом компьютера. Мой целью в этой части стало самостоятельно научиться оценивать текущую позицию на поле "Крестики-Нолики" и подбирать оптимальный вариант следующего хода компьютера. К слову, уже перед окончанием статьи нашел готовую web-игру в google, где уже реализован такой подход. Тем интереснее было проверить себя и поделиться "изобретением колеса, но по-своему".

Во второй части попробую прикрутить к игровой логике другой подход - машинное обучение на основе большого числа сыгранных партий компьютером с самим собой.

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

Крестики-Нолики с компьютером на Python

Information

Rating
Does not participate
Registered
Activity

Specialization

Specialist
From 1,000 $
Python
English
Algorithms and data structures
Game Development