Самообучение ИИ - Разработка игр -
Навигация по сайту
Сайт:

Дополнительно:

Файловый архив:

Каталог статей:

Форум:


Категории раздела
Конструкторы игр, системы разработки игр [64]
Статьи по использованию и программированию в конструкторах игр, систем разработки игр
Программирование [31]
Программирование на ЯП и все что с ними связано.
Игровые движки [11]
Статьи по использованию и программированию в игровых движках.
Разработка игр [11]
Все что связано с разработкой игр, их продажей, распространением, созданием диз. документа и т.д.
Остальное [6]
Все остальное, что не попадает ни под одну категорию.

Мини-Опрос
Какова Ваша специальность?
Всего ответов: 1058

Партнеры сайта
....

 Главная » Статьи » Разработка игр » Самообучение ИИ

Самообучение ИИ

10:09
Философия ИИ

Первое что в современном обществе приходит на ум при словосочетании «самообучение ИИ» это словосочетание «Нейронные сети» - что в корне неверное мнение.
Вспомним основы философии, и посмотрим, так уже необходимы нейронные сети к каком-либо обучении:
Процесс познания делится на две ступени, которые порождают одна другую.
1. Теория.
2. Практика.
Теория в ИИ это его умение делать предположения на основе имеющейся у него информации.
Практика это не что иное как сбор информации.

Поясню это на шашках.
Допустим вы садитесь играть с ИИ который еще вообще не обучался.
На момент начала игры ИИ должен знать лишь основные правила: как ходить можно, как нельзя, и при каких условиях засчитывается поражение.

Партия 1:
ИИ за черных.
Вы за белых.

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

Партия 2:
ИИ за белых.
Вы за черных.

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

Партия 3:
ИИ за черных.
Вы за белых.

Вы начинаете стратегию использованную в Партии 1.
ИИ обрывает эту стратегию вашим же ходом из Партии 2.
Вы выбираете новую стратегию.
ИИ еще не знает эту стратегию, поэтому ходит рандомно.

Думаю вы уже поняли в чем дело. Пока ИИ ходит рандомно, он одновременно учится вашей стратегии, которую вы ему невольно показываете.

У ИИ в отличии от человека идеальная память, он не забудет не одной партии.

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

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

Алгоритм ИИ

ИИ должен прежде всего знать какое положение для какой стороны выгодно.

То есть у него должны быть конкретные записи:

...
Три шашки черных там то.
Одна шашка белых там то.

Белые из этого положения выиграли 0 раз.
Ничья : 0 раз.
Черные выиграли 10 раз.
---------------------------------------
Три шашки черных там то.
Две шашки белых там то.

Белые выиграли 1 раз.
Ничья 2 раза.
Черные выиграли 6 раз.


Имея такие записи написать алгоритм выбора хода легче легкого.

ИИ просто оценит на основе имеющихся у него ходов, какой из них его приведет к наиболее выгодному положению.
Для него нет «хороших» ходов, есть лишь переходы между положениями шашек.
Чем больше этих положений он «знает», тем сильнее он играет.

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

Постепенно радомных ходов у ИИ будет все меньше, а записанных положений все больше.
Он будет явно избегать уже известных проигрышных положений.
И с каждой партией все больше приближаться к Полному знанию всех положений в шашках.

Нюансы
 

Первое на что мы бы хотели повлиять, это естественно на скорость обучения ИИ.
Для этого можно сделать как две вещи:
1. Заставить ИИ всегда выбирать те ходы которые приводят к неизвестным ранее положениям.
2. Заставить ИИ играть самого с собой.
Если использовать оба метода одновременно то мы получим так называемый «режим обучения».
В этом режиме ИИ посредственно играет, но быстро учится.
Но как только ИИ переберет все положения в шашках, используется первый метод или нет, это потеряет всякое значение.

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

Или сделать следующий шаг.
Научить ИИ находить в положениях шашек закономерности, и постепенно переводить его решения на основу закономерностей.

Или наоборот его ограничить, запрещая создавать более некоторого количества записей.

Послесловие
Этим я хотел прежде всего сказать что не стоит бояться использовать даже в самых простых играх ИИ. Ведь чем проще игра тем проще написать ИИ для нее! Сложность ИИ прежде всего зависит от количество вариантов выбора. И если у самого игрока всего три варианта выбора, насколько же сложен будет ИИ для такой игры? Вообщем дерзайте!

Категория: Разработка игр | Просмотров: 6192 | Добавил: Ellementul (07.10.2015) | Рейтинг: 5.0/1 Автор: Иван Суров | |
HTML ссылка на материал:
BB ссылка на материал:
Похожие материалы :
Возможно вам будет интересно:
3D Rad - небольшая статья. (2)
Поиск файлов на винчестере в Delphi (0)
статьи по Yogurt3D (0)
Blitz 3D - полезная дипломная работа (часть 1) (0)
Функция LIST (0)
PHP - Базовые понятия (0)
Blitz 3D - полезная дипломная работа (часть 2) (0)
startDrag или как заставить объект двигаться за мышью? (0)
Начинаем изучать PHP (4)
Статья к теме "Психоделика" (9)
Пингуем (Ping) под Delphi (1)
PHP и MySQL – Теоретический курс. Введение. (2)
Моя первая страница на PHP (0)
Создаем танчики (Урок 2) (0)
Создание многопользовательской(online) игры на Game Maker. (часть 1) (0)
Всего комментариев: 1
1 solon-press   (27.05.2016 21:36) [Материал]
Круто

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск
Поиск по всему сайту:
Поиск по разделу:

Панель пользователя
Здравствуйте, Гость


Ник:
Пароль:
Запомнить :

Ваш IP: 3.141.21.106

Случайные конструкторы

Случайные движки

Случайные статьи

Статистика
Онлайн всего: 1
Гостей: 1
Пользователей: 0

На сайте были:

При полном или частичном копировании материалов сайта ссылка на Make-Games.ru обязательна. Make-Games.ru © 2008 - 2024 Хостинг от uCoz
Топ Разработка игр