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

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

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

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

Форум:


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

Мини-Опрос
Какой ОС Вы пользуетесь?
Всего ответов: 1208

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Алгоритм ИИ

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

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

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

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

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


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

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

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

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

Нюансы
 

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

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

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

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

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

Категория: Разработка игр | Просмотров: 5888 | Добавил: Ellementul (07.10.2015) | Рейтинг: 5.0/1 Автор: Иван Суров | |
HTML ссылка на материал:
BB ссылка на материал:
Похожие материалы :
Возможно вам будет интересно:
Полезные функции и процедуры: часть 1 (0)
Поиск файлов на винчестере в Delphi (0)
Blitz 3D - полезная дипломная работа (часть 1) (0)
Работа с файлами. Открытие файла и чтение из него (0)
Синтаксис GML в сравнении с Pascal (1)
Инветарь на Game Maker (0)
Создание наземного врага в платформере (2)
Задротство - основа MMO игр (10)
[Статья] Создаем дополнительное оружие (2)
Наглядный пример использования переменных (0)
Пишем модуль для работы с системным таймером (0)
То, что нужно знать всем, кто движется в сфере геймдева. (1)
Полиморфизм, Инкапсуляция и Наследование (0)
Гоночное авто (0)
Создание базового движка для игры. Часть 2. Анимация, Столкновения и воспроизведения музыки (0)
Всего комментариев: 1
1 solon-press   (27.05.2016 21:36) [Материал]
Круто

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

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


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

Ваш IP: 54.85.255.74

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

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

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

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

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

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