Motivational Graphs (мотивационные графы)

Материал из xrWiki
Перейти к: навигация, поиск

Motivational Graphs (MG) – сравнительно новый метод принятия решений, описанный в AI Game Programming Wisdom 2, который, по мнению авторов, является чем-то средним между Decision Trees и Neural Networks.

Суть метода заключается в том, что приятие решений основывается на мотивациях NPC, в том числе и взаимопротиворечащих. Пусть есть несколько мотиваций. У каждой мотивации могут быть подмотивации. Все мотивации составляют мотивационный граф. Этот граф является ориентированным и по своей структуре очень похож на дерево. Отличие от дерева состоит в том, что несколько узлов могут иметь одних и тех же детей, кроме того, возможно существования нескольких корней дерева. Листья нашего графа, т.е. узлы, не имеющие подмотиваций, задают цели для NPC. Т.о. задачей MG является выяснить ЧТО делать, в то время как задачей GOAP (о нём читайте далее) является выяснить КАК делать.

Итак, как же MG выбирает, какую цель должен выполнять NPC? Для этого мы проходим по всем корням графа (т.е. узлам, не имеющим входящих рёбер), давая изначально им вес 1. Все остальные узлы имеют начальный вес 0. Далее каждый корень (исходя из каких-то своих соображений) распределяет свой вес на все свои подмотивации (при этом возможна утечка “энергии”, т.е. распределённый вес может быть в сумме меньше, чем изначальный). Мы продолжаем эту процедуру рекурсивно для детей корня до тех пор, пока не доберёмся до листьев графа. Каждый раз, когда по какой-то из веток мотиваций к ним приходит вес, он суммируется. В итоге после завершения процедуры распространения весов, мы выбираем тот лист графа, который набрал максимальный вес.


Дмитрий Ясенев, 2004г.