В искусственном интеллекте реактивное планирование обозначает группу методов выбора действий автономными агентами . Эти методы отличаются от классического планирования в двух аспектах. Во-первых, они работают своевременно и, следовательно, могут справляться с высокодинамичными и непредсказуемыми средами . Во-вторых, они вычисляют только одно следующее действие в каждый момент времени, основываясь на текущем контексте. Реактивные планировщики часто (но не всегда) используют реактивные планы , которые представляют собой сохраненные структуры, описывающие приоритеты и поведение агента. Термин реактивное планирование восходит как минимум к 1988 году и является синонимом более современного термина динамическое планирование .
Существует несколько способов представления реактивного плана. Все они требуют базовой репрезентативной единицы и средства для составления этих единиц в планы.
Правило действия условия или правило if-then — это правило в форме: if condition then action . Эти правила называются productions . Значение правила следующее: если условие выполняется, выполнить действие. Действие может быть как внешним (например, поднять что-то и переместить), так и внутренним (например, записать факт во внутреннюю память или оценить новый набор правил). Условия обычно являются булевыми, и действие либо может быть выполнено, либо нет.
Правила производства могут быть организованы в относительно плоские структуры, но чаще организованы в иерархию некоторого вида. Например, архитектура подчинения состоит из слоев взаимосвязанных поведений , каждый из которых на самом деле является конечным автоматом , который действует в ответ на соответствующий ввод. Затем эти слои организуются в простой стек, при этом более высокие слои подчиняют цели более низких. Другие системы могут использовать деревья или могут включать специальные механизмы для изменения того, какая цель/подмножество правил в данный момент наиболее важны. Плоские структуры относительно легко построить, но они позволяют описывать только простое поведение или требуют чрезвычайно сложных условий для компенсации недостающей структуры.
Важной частью любого распределенного алгоритма выбора действия является механизм разрешения конфликтов. Это механизм разрешения конфликтов между предлагаемыми действиями, когда в данный момент выполняется более одного условия правил. Конфликт может быть разрешен, например, с помощью
Экспертные системы часто используют другие, более простые эвристики, такие как новизна, для выбора правил, но гарантировать хорошее поведение в большой системе с помощью простых подходов сложно.
Разрешение конфликтов необходимо только для правил, которые предполагают взаимоисключающие действия (см. Blumberg 1996).
Некоторые ограничения такого рода реактивного планирования можно найти в работе Брома (2005).
Конечный автомат (FSM) — это модель поведения системы. FSM широко используются в информатике. Моделирование поведения агентов — лишь одно из их возможных применений. Типичный FSM, используемый для описания поведения агента, состоит из набора состояний и переходов между этими состояниями. Переходы на самом деле являются правилами действия условий. В каждый момент времени активно только одно состояние FSM, и его переходы оцениваются. Если выполняется переход, он активирует другое состояние. Это означает, что в общем случае переходы — это правила в следующей форме: если условие, то активировать-новое-состояние . Но переходы также могут подключаться к состоянию «self» в некоторых системах, чтобы разрешить выполнение действий перехода без фактического изменения состояния.
Существует два способа создания поведения с помощью FSM. Они зависят от того, что связывает с состояниями конструктор — это могут быть либо «акты», либо сценарии. «Акт» — это атомарное действие, которое должен выполнить агент, если его FSM находится в заданном состоянии. Это действие выполняется на каждом временном шаге. Однако чаще встречается последний случай. Здесь каждое состояние связано со сценарием, который описывает последовательность действий, которые агент должен выполнить, если его FSM находится в заданном состоянии. Если переход активирует новое состояние, предыдущий сценарий просто прерывается, и запускается новый.
Если сценарий более сложный, его можно разбить на несколько сценариев и использовать иерархический FSM. В таком автомате каждое состояние может содержать подсостояния. Только состояния на атомарном уровне связаны со сценарием (который не является сложным) или атомарным действием.
С вычислительной точки зрения иерархические FSM эквивалентны FSM. Это означает, что каждый иерархический FSM может быть преобразован в классический FSM. Однако иерархические подходы лучше облегчают проектирование. См. статью Дамиана Ислы (2005) для примера ASM компьютерных игровых ботов , которая использует иерархические FSM.
И правила if-then, и FSM могут быть объединены с нечеткой логикой . Условия, состояния и действия больше не являются булевыми или "да/нет" соответственно, а являются приблизительными и плавными. Следовательно, результирующее поведение будет переходить более плавно, особенно в случае переходов между двумя задачами. Однако оценка нечетких условий намного медленнее, чем оценка их четких аналогов.
Познакомьтесь с архитектурой Алекса Шампандара.
Реактивные планы могут быть выражены также сетями-коннекционистами, такими как искусственные нейронные сети или иерархии свободного потока. Базовая репрезентативная единица — это единица с несколькими входными связями, которые питают единицу «абстрактной активностью», и выходными связями, которые распространяют активность на следующие единицы. Каждая единица сама по себе работает как преобразователь активности. Обычно единицы соединены в слоистую структуру.
Положительные стороны коннекционистских сетей, во-первых, заключаются в том, что полученное поведение более гладкое, чем поведение, создаваемое четкими правилами if-then и FSM, во-вторых, сети часто адаптивны, и, в-третьих, можно использовать механизм торможения, и, следовательно, поведение может быть описано также предписывающе (с помощью правил можно описать поведение только предписывающе). Однако эти методы также имеют несколько недостатков. Во-первых, для проектировщика гораздо сложнее описать поведение сетью по сравнению с правилами if-then. Во-вторых, можно описать только относительно простое поведение, особенно если необходимо использовать адаптивные возможности.
Типичный алгоритм реактивного планирования просто оценивает правила «если-то» или вычисляет состояние коннекционистской сети. Однако некоторые алгоритмы имеют особые функции.
Рулевое управление — это специальная реактивная техника, используемая в навигации агентов. Простейшая форма реактивного рулевого управления используется в транспортных средствах Braitenberg , которые напрямую отображают входные сигналы датчиков на выходные сигналы эффекторов и могут следовать или избегать. Более сложные системы основаны на суперпозиции сил притяжения или отталкивания, которые воздействуют на агента. Этот вид рулевого управления основан на оригинальной работе Крейга Рейнольдса о боидах . С помощью рулевого управления можно достичь простой формы:
Преимущество рулевого управления в том, что оно вычислительно очень эффективно. В компьютерных играх сотни NPC могут управляться с помощью этой техники. Однако в случаях более сложной местности (например, здания) рулевое управление должно сочетаться с поиском пути (как, например, в Milani [1]), что является формой планирования .