Дерево поведения (искусственный интеллект, робототехника и управление) - Behavior tree (artificial intelligence, robotics and control)

А дерево поведения это математическая модель из строить планы исполнение используется в Информатика, робототехника, Системы управления и видеоигры. Они описывают переключение между конечным набором задач в модульном виде. Их сила заключается в их способности создавать очень сложные задачи, состоящие из простых задач, не беспокоясь о том, как простые задачи реализуются. Деревья поведения имеют некоторое сходство с иерархические машины состояний с той ключевой разницей, что основным строительным блоком поведения является задача, а не состояние. Простота понимания человеком делает деревья поведения менее подверженными ошибкам и очень популярными в сообществе разработчиков игр. Было показано, что деревья поведения обобщают несколько других архитектур управления.[1][2] Математически они ориентированные ациклические графы.

Дерево поведения, моделирующее план поиска и захвата двурукого робота.

Фон

Деревья поведения появились в индустрии компьютерных игр как мощный инструмент для моделировать поведение из неигровые персонажи (NPC).[3][4][5][6]Они широко использовались в громких видеоиграх, таких как Гало, Биошок, и Споры. Недавние работы предлагают деревья поведения в качестве основы управления несколькими задачами для БПЛА, сложные роботы, роботизированные манипуляции и системы с несколькими роботами.[7][8][9][10][11][12]Деревья поведения теперь достигли зрелости, чтобы их можно было рассматривать в учебниках по игровому ИИ,[13][14] а также общие игровые среды, такие как Pygame и Unreal Engine (см. ссылки ниже).

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

На протяжении многих лет различные реализации деревьев поведения продолжали улучшаться как по эффективности, так и по возможностям для удовлетворения требований отрасли, пока они не превратились в событийный деревья поведения.[15][5] Управляемые событиями деревья поведения решили некоторые проблемы масштабируемости классических деревьев поведения, изменив способ внутренней обработки дерева своим выполнением и введя новый тип узла, который может реагировать на события и прерывать работу узлов. В настоящее время концепция дерева поведения, управляемого событиями, является стандартом и используется в большинстве реализаций, хотя для простоты они по-прежнему называются «деревьями поведения».

Ключевые идеи

Дерево поведения графически представлено в виде ориентированного дерево в котором узлы классифицируются как корневые, узлы потока управления или узлы выполнения (задачи). Для каждой пары подключенных узлов исходящий узел называется родительским, а входящий узел - дочерним. У корня нет родителей и ровно одного дочернего элемента, у узлов потока управления есть один родительский элемент и хотя бы один дочерний элемент, а у исполнительных узлов есть один родительский элемент и нет дочерних элементов. Графически дочерние элементы узла потока управления расположены под ним в порядке слева направо.[16]

Выполнение дерева поведения начинается с корня, который с определенной частотой отправляет тики своему дочернему элементу. Галочка - это разрешающий сигнал, позволяющий казнить ребенка. Когда выполнение узла в дереве поведения разрешено, он возвращает родительскому статусу Бег если его выполнение еще не завершено, успех если он достиг своей цели, или отказ иначе.

Узел потока управления

Узел потока управления используется для управления подзадачами, из которых он состоит. Узел потока управления может быть либо узлом селектора (резервным), либо узлом последовательности. Они по очереди выполняют каждую из своих подзадач. Когда подзадача завершена и возвращает свой статус (успех или неудача), узел потока управления решает, выполнять следующую подзадачу или нет.

Селекторный (резервный) узел

Рисунок I. Графическое представление резервной композиции из N задач.

Резервные узлы используются для поиска и выполнения первого исправного дочернего элемента. Резервный узел немедленно вернется с кодом состояния успеха или выполнения, когда один из его дочерних узлов возвращает успех или выполнение (см. Рисунок I и псевдокод ниже). Дети отмечены в порядке важности слева направо.

В псевдокоде алгоритм резервной композиции:

1 за я от 1 до n делать2 childstatus ← Отметьте (ребенок (i)) 3 если childstatus = running4 возвращаться бег 5 иначе если childstatus = success6 возвращаться успех7 конец8 возвращаться отказ

Узел последовательности

Рисунок II. Графическое представление последовательной композиции N задач.

Узлы последовательности используются для поиска и выполнения первого дочернего элемента, который еще не завершился успешно. Узел последовательности немедленно вернется с кодом состояния сбоя или выполнения, когда один из его дочерних узлов вернет сбой или выполнение (см. Рисунок II и псевдокод ниже). Дети отмечены галочками слева направо.

В псевдокоде алгоритм композиции последовательности:

1 за я от 1 до n делать2 childstatus ← Отметьте (ребенок (i)) 3 если childstatus = running4 возвращаться бег 5 иначе если childstatus = failure6 возвращаться отказ7 конец8 возвращаться успех

Математическое определение пространства состояний

Чтобы применить инструменты теории управления к анализу деревьев поведения, их можно определить как трехкортежные.[17]

куда это индекс дерева, - векторное поле, представляющее правую часть обыкновенного разностного уравнения, это временной шаг и - это статус возврата, который может быть равен либо «Работает» ,Успех , или Отказ .

Примечание: Задача - это вырожденное дерево поведения без родителя и без дочернего элемента.

Выполнение дерева поведения

Выполнение дерева поведения описывается следующими стандартными обыкновенными разностными уравнениями:

куда представляют собой дискретное время, а - пространство состояний системы, моделируемой деревом поведения.

Состав последовательности

Два дерева поведения и могут быть составлены в более сложное дерево поведения с помощью оператора последовательности.

Затем вернуть статус и векторное поле связана с определены (для [необходимо определение ]) следующее:

Смотрите также

Рекомендации

  1. ^ Colledanchise, Микеле; Огрен, Петтер (2017). «Как деревья поведения модулируют гибридные системы управления и обобщают последовательности последовательного поведения, архитектуру подчинения и деревья решений». IEEE Transactions по робототехнике. 33 (2): 372–389. Дои:10.1109 / TRO.2016.2633567. S2CID  9518238.
  2. ^ Colledanchise, Микеле; Огрен, Петтер (2018). Деревья поведения в робототехнике и искусственном интеллекте: введение. CRC Press. arXiv:1709.00084. Дои:10.1201/9780429489105. ISBN  978-1-138-59373-2. S2CID  27470659.
  3. ^ Исла, Д. (2005). «Управление сложностями в Halo 2 AI». Конференция разработчиков игр (том 12).
  4. ^ Исла, Д. (2008). Halo 3: создание лучшей битвы. Конференция разработчиков игр 2008 г..
  5. ^ а б Agis, Ramiro A .; Готтифреди, Себастьян; Гарсия, Алехандро Х. (2020). «Расширение деревьев поведения, управляемого событиями, для облегчения координации нескольких агентов, не связанных с игроками, в видеоиграх» (PDF). Экспертные системы с приложениями. 155 (1): 113457. Дои:10.1016 / j.eswa.2020.113457.
  6. ^ Lim, C.U .; Baumgarten, R .; Колтон, С. (2010). «Развивающиеся деревья поведения для коммерческой игры DEFCON» (PDF). Приложения эволюционных вычислений. Берлин: Springer. С. 100–110. Дои:10.1007/978-3-642-12239-2_11. ISBN  978-3-642-12238-5.
  7. ^ Огрен, Петтер (2012). «Повышение модульности систем управления БПЛА с использованием деревьев поведения компьютерных игр» (PDF). Конференция AIAA по руководству, навигации и управлению, Миннеаполис, Миннесота. С. 13–16.
  8. ^ Colledanchise, Микеле; Марзинотто, Алехандро; Огрен, Петтер (2014). «Анализ производительности стохастических БТ» (PDF). Робототехника и автоматизация (ICRA), Международная конференция IEEE 2014 г.. Дои:10.1109 / ICRA.2014.6907328. S2CID  14719083.
  9. ^ Марзинотто, Алехандро; Colledanchise, Микеле; Смит, Кристиан; Огрен, Петтер (2014). «На пути к единой платформе BT для управления роботами» (PDF). Робототехника и автоматизация (ICRA), Международная конференция IEEE 2014 г..
  10. ^ Клёкнер, Андреас. «Сопряжение ТТ с миром с помощью логики описания». На конференции AIAA по руководству, навигации и управлению, Бостон, Массачусетс. 2013.
  11. ^ Клёкнер, Андреас (2013). "Деревья поведения для управления полетами БПЛА". GI-Jahrestagung. С. 57–68.
  12. ^ Багнелл, Дж. Эндрю; Кавальканти, Фелипе; Цуй, Лей; и другие. (2012). «Интегрированная система для автономного манипулирования робототехникой» (PDF). Интеллектуальные роботы и системы (IROS), Международная конференция IEEE / RSJ 2012 г.. IEEE. С. 2955–2962. Дои:10.1109 / IROS.2012.6385888. HDL:20.500.11937/14608. ISBN  978-1-4673-1736-8. S2CID  419179.
  13. ^ Миллингтон; Funge (2009). Искусственный интеллект для игр. CRC Press. ISBN  978-0-12-374731-0.
  14. ^ Рабин, С. (2014). Игра AI Pro. CRC Press. ISBN  978-1-4665-6596-8.
  15. ^ Champandard, Alex J .; Дунстан, Филипп (2012). "Стартовый набор" Дерева поведения " (PDF). Game AI Pro: сборник мудрости профессионалов игрового AI. С. 72–92.
  16. ^ Крафт ИИ (2015). "BT 101 - Основы грамматики Behavior Trees".
  17. ^ Colledanchise, Микеле; Огрен, Петтер (2014). «Как деревья поведения модулируют надежность и безопасность в гибридных системах» (PDF). In Intelligent Robots and Systems (IROS), Международная конференция IEEE / RSJ 2014 г.. IEEE.

внешняя ссылка