
- •Филиал федерального государственного бюджетного образовательного учреждения высшего профессионального образования «Национальный исследовательский университет «Московский энергетический институт»
- •Нейросеть
- •Алгоритмы обучения с надзором и без надзора
- •Продукционные правила и базы знаний
- •Автоматы
- •Одномерная табличная схема «стимул-реакция»
- •Марковские цепи дискретного времени
Одномерная табличная схема «стимул-реакция»
В первом приближении простейшая модель поведения животного может быть рассмотрена как совокупность стимулов – внешних или внутренних механизмов и раздражителей, оказывающих влияние на внутреннее состояние его нервной системы – и непосредственных ответных реакций на них. Так, испытывающее сильный голод животное займётся поисками пищи, чем-то испуганное – примет меры для защиты или бегства - и так далее. Если животное находится под воздействием нескольких стимулов одновременно – например, хочет есть и спать – будет выбран имеющий высший приоритет или просто наиболее сильный.
Подобным образом может принимать решение и несложный искусственный интеллект. В рамках данной схемы предположим, что ИИ управляет действиями некоего персонажа или существа, противостоящего игроку – например, дракона.
Для осуществления работы данной схемы составим набор стимулов, которые могли бы руководить классическим сказочным драконом:
Интерес
Агрессия
Осторожность
Голод
Усталость
Страх
Чтобы как-то охарактеризовать степень (силу) воздействия того или иного стимула на дракона, введём характеризующий его численный показатель, значение которого будет изменяться от 0 (стимул отсутствует) до 1 (максимальная сила воздействия).
Составим таблицу, характеризующую дракона на момент встречи с игроком:
Стимул |
Интерес |
Агрессия |
Осторожность |
Голод |
Усталость |
Страх |
Сила воздействия |
0.53 |
0.15 |
0.08 |
0.33 |
0.29 |
0.11 |
По данной таблице видно, что наиболее мощным стимулом здесь является Интерес – дракон ещё не встречал игрока на своём жизненном пути, и потому, в силу малости остальных стимулов (пороговые значения для срабатывания тут должен установить опытным путём сам разработчик), приблизится к игроку. По мере уменьшения расстояния до игрока значение Интереса будет снижаться, и, когда дракон достаточно подробно изучит игрока (при условии того, что игрок не будет осуществлять в это время никаких активных действий), таблица станет выглядеть вот так:
Стимул |
Интерес |
Агрессия |
Осторожность |
Голод |
Усталость |
Страх |
Сила воздействия |
0.02 |
0.15 |
0.12 |
0.33 |
0.29 |
0.11 |
(для простоты предполагаем, что вид игрока не оказал на дракона никакого эффекта, однако вид его оружия заставил дракона несколько насторожиться)
В таком случае, наиболее сильным стимулом для дракона становится Голод, и игрок, являющийся для дракона потенциально съедобным, будет им атакован:
Стимул |
Интерес |
Агрессия |
Осторожность |
Голод |
Усталость |
Страх |
Сила воздействия |
0.02 |
0.85 |
0.12 |
0.33 |
0.29 |
0.11 |
В том случае, если игрок, обороняясь, наносит дракону заметный урон, сила воздействия Страха и Усталости будет расти с каждым полученным ранением, а Агрессия будет снижаться:
Стимул |
Интерес |
Агрессия |
Осторожность |
Голод |
Усталость |
Страх |
Сила воздействия |
0.02 |
0.31 |
0.12 |
0.33 |
0.47 |
0.54 |
Когда стимулы Усталость или Страх станут преобладающими, то дракон прекратит бой и попытается спастись бегством.
Скорость изменения силы воздействия стимулов, в свою очередь, задаётся разработчиком в соответствии с характеристиками и даже с характером конкретного противника: задав высокую скорость роста Страха, можно легко создать оппонента-труса, предпочитающего спасаться бегством при первом же ранении; установив скорость небольшой или нулевой, можно создать полную его противоположность. Также, населяя виртуальный мир животными, можно, к примеру, заранее задать самке кабана, охраняющей своё потомство, заведомо завышенную Агрессию (при встрече с нею игрок будет сразу же атакован), а лесному оленю – высокое значение Осторожности (чуть заслышав игрока, тот бросится бежать, забыв о прочих своих делах). Подобная гибкость даёт возможность разработчику достаточно легко и свободно настраивать поведение персонажей, управляемых ИИ. К тому же, список стимулов можно расширять почти неограниченно, а сами значения сил их воздействия – связать между собой определёнными закономерностями или внести некую произвольно изменяющуюся поправку, что заметно разнообразит поведение даже, казалось бы, одинаковых существ.
Важное допущение, на котором целиком основана работа данной схемы – ИИ в каждый момент времени находится в единственном состоянии. Так, в описанном выше примере дракон, обнаружив игрока, стал исследовать его, после чего вступил в бой, а в конце спасался бегством. Все эти состояния должны быть чётко регламентированы на этапе разработки поведения ИИ и прописаны в коде самой игры.