Введение
Язык планирования (PDDL) — это попытка стандартизировать языки планирования в области искусственного интеллекта (ИИ). В сети доступно несколько ресурсов, объясняющих, как использовать PDDL, а также есть книга.
The Planning Domain Definition Language (PDDL) is an attempt to standardize Artificial Intelligence (AI) planning languages. Several online resources of how to use PDDL are available, and also a book.
PDDL1.2
Это был официальный язык 1-й и 2-й IPC в 1998 и 2000 годах соответственно. В нем модель задачи планирования разделена на две основные части: (1) описание предметной области и (2) описание соответствующей задачи. Такое разделение модели позволяет интуитивно разделить элементы, которые (1) присутствуют в каждой конкретной задаче в предметной области (эти элементы содержатся в описании предметной области), и те элементы, которые (2) определяют конкретную задачу планирования (эти элементы содержатся в описании задачи). Таким образом, несколько описаний задач могут быть связаны с одним и тем же описанием предметной области (так же, как несколько экземпляров класса могут существовать в ООП (объектно-ориентированное программирование) или в OWL (язык веб-онтологии), например). Таким образом, предметная область и связанное с ней описание задачи формируют PDDL-модель задачи планирования, которая в конечном итоге является входными данными для программного обеспечения планировщика (обычно планировщика ИИ, не зависящего от предметной области), целью которого является решение данной задачи планирования с помощью подходящего алгоритма планирования. Выходные данные планировщика не определены PDDL, но обычно представляют собой полностью или частично упорядоченный план (последовательность действий, некоторые из которых могут выполняться даже параллельно). Теперь рассмотрим содержание описания предметной области и задачи PDDL1.2 в целом: (1) Описание предметной области состояло из определения имени предметной области, определения требований (для объявления планировщику тех элементов модели, которые фактически используются в PDDL-модели), определения иерархии типов объектов (как иерархия классов в ООП), определения константных объектов (которые присутствуют в каждой задаче в предметной области), определения предикатов (шаблонов для логических фактов), а также определения возможных действий (схем операторов с параметрами, которые должны быть конкретизированы/инстанцированы во время выполнения). Действия имели параметры (переменные, которые могут быть инстанцированы объектами), предусловия и эффекты. Эффекты действий могли быть также условными (условные эффекты). (2) Описание задачи состояло из определения имени задачи, определения связанного с ней имени предметной области, определения всех возможных объектов (атомов в логической вселенной), начальных условий (начальное состояние среды планирования, конъюнкция истинных/ложных фактов) и определения целевых состояний (логическое выражение над фактами, которые должны быть истинными/ложными в целевом состоянии среды планирования). Таким образом, PDDL1.2 в конечном итоге отразил "физику" детерминированной дискретной полностью доступной среды планирования с одним агентом.
ПДДЛ2.1
Это был официальный язык 3-й IPC в 2002 году. Он представил числовые флюенты (например, для моделирования небинарных ресурсов, таких как уровень топлива, время, энергия, расстояние, вес), метрики планов (для обеспечения количественной оценки планов, а также планирования, ориентированного не только на достижение целей, но и на полезность, то есть оптимизацию, минимизацию или максимизацию метрик) и длительные/непрерывные действия (которые могли иметь переменную, недискретную продолжительность, условия и эффекты). В конечном итоге PDDL2.1 позволил представлять и решать гораздо больше задач реального мира, чем исходная версия языка.
PDDL2.2
Это был официальный язык детерминированной ветви 4-й IPC в 2004 году. В нём были введены производные предикаты (для моделирования зависимости известных фактов от других фактов, например, если A достижима из B, а B достижима из C, то A достижима из C (транзитивность)), и начальные литералы с временными метками (для моделирования экзогенных событий, происходящих в заданный момент времени независимо от выполнения плана). В конечном итоге PDDL2.2 расширил язык несколькими важными элементами, но не стал радикальной эволюцией по сравнению с PDDL2.1 после PDDL1.2.
PDDL3.0
Это был официальный язык детерминированной ветви 5-й IPC в 2006 году. Он ввел ограничения на траекторию состояния (жесткие ограничения в виде выражений модальной логики, которые должны выполняться для траектории состояния, полученной в процессе выполнения плана, являющегося решением данной задачи планирования) и предпочтения (мягкие ограничения в виде логических выражений, аналогичные жестким ограничениям, но их выполнение не обязательно, хотя их можно было учитывать в метрике плана, например, для максимизации количества выполненных предпочтений или просто для оценки качества плана), чтобы обеспечить возможность планирования с учетом предпочтений. Впоследствии PDDL3.0 расширил выразительные возможности языка, чтобы соответствовать современным важным достижениям в области планирования.
ПДДЛ3.1
Это был официальный язык детерминированной ветви 6-го и 7-го IPC в 2008 и 2011 годах соответственно. Он представил объектные флюенты (то есть область значений функций теперь могла быть не только числовой (целочисленной или вещественной), но и любым типом объектов). Таким образом, PDDL3.1 еще больше адаптировал язык к современным требованиям, внеся синтаксически незначительное, но семантически весьма существенное изменение в выразительность.
Текущая ситуация
Последней версией языка является PDDL3.1. Определение синтаксиса в форме БНФ (Backus-Naur Form) для PDDL3.1 можно найти среди материалов на главной странице IPC 2011 или на главной странице IPC 2014.
PDDL+
Это расширение PDDL2.1, разработанное примерно в 2002–2006 годах, предоставляет более гибкую модель непрерывных изменений посредством использования автономных процессов и событий. Ключевая особенность этого расширения – возможность моделировать взаимодействие между поведением агента и изменениями, инициируемыми его окружением. Процессы выполняются во времени и оказывают непрерывное воздействие на числовые значения. Они запускаются и завершаются либо прямыми действиями агента, либо событиями, происходящими в окружении. Эта трехкомпонентная структура называется моделью «запуск – процесс – остановка». Различают логические и числовые состояния: переходы между логическими состояниями считаются мгновенными, в то время как пребывание в определенном логическом состоянии может длиться во времени. Таким образом, в PDDL+ выражения непрерывного обновления допустимы только в эффектах процессов. Действия и события, являющиеся мгновенными, ограничиваются выражением дискретных изменений. Это вводит вышеупомянутую трехкомпонентную модель периодов непрерывных изменений: (1) действие или событие запускает период непрерывного изменения числовой переменной посредством процесса; (2) процесс реализует непрерывное изменение этой переменной; (3) действие или событие, наконец, останавливает выполнение процесса и прекращает его воздействие на числовую переменную. Примечание: цели плана могут быть достигнуты до остановки активного процесса.
NDDL
NDDL (New Domain Definition Language) – это ответ НАСА на PDDL, появившийся примерно в 2002 году. Его представление отличается от PDDL в нескольких аспектах: 1) он использует представление переменных и значений (временные шкалы/действия), а не пропозициональную или логику первого порядка, и 2) в нём отсутствуют понятия состояний или действий, есть только интервалы (действия) и ограничения между ними. В связи с этим, модели в NDDL больше напоминают схемы для SAT-кодирования задач планирования, чем модели PDDL. Благодаря указанным различиям, планирование и выполнение планов (например, в ходе критически важных космических миссий) могут быть более устойчивыми при использовании NDDL, однако соответствие стандартным представлениям задач планирования, отличным от PDDL, может быть гораздо менее интуитивным, чем в случае PDDL.
МАРП
MAPL (Multi Agent Planning Language, произносится "мэйпл") является расширением PDDL2.1, появившимся примерно в 2003 году. Это достаточно существенная модификация исходного языка. В MAPL вводятся небулевы переменные состояния (которые могут быть n-арными: true, false, unknown или любые другие значения). Также вводится временная модель, задаваемая с помощью модальных операторов (before, after и т.д.). Однако, в PDDL3.0 была представлена более полная временная модель, которая также совместима с оригинальным синтаксисом PDDL (и является лишь необязательным дополнением). MAPL также вводит действия, длительность которых определяется во время выполнения, и явную синхронизацию планов, реализуемую посредством коммуникации между агентами на основе речевых актов. Это предположение может быть искусственным, поскольку агенты, выполняющие планы параллельно, не обязательно должны взаимодействовать для функционирования в многоагентной среде. Наконец, MAPL вводит события (эндогенные и экзогенные) для обработки конкурентности действий. Таким образом, события становятся явной частью планов и назначаются агентам управляющей функцией, которая также является частью плана.
ОПТ
OPT (Ontology with Polymorphic Types) было глубоким расширением PDDL2.1, разработанным Дрю Макдермоттом примерно в 2003–2005 годах (с некоторыми сходствами с PDDL+). Это была попытка создать универсальную нотацию для создания онтологий, определяемых как формализованные концептуальные структуры для доменов планирования, в отношении которых должны рассуждать приложения планирования. Синтаксис OPT был основан на PDDL, но он обладал гораздо более сложной системой типов, позволявшей пользователям использовать конструкции высшего порядка, такие как явные λ-выражения, обеспечивающие эффективный вывод типов (то есть типы имели не только объекты домена (типы уровня 0), но и функции/флюенты, определенные над этими объектами, имели типы в виде произвольных отображений (типы уровня 1), которые могли быть обобщенными, поэтому их параметры (область определения и область значений обобщенного отображения) могли быть определены переменными, которые, в свою очередь, могли иметь тип еще более высокого уровня (тип уровня 2), не говоря уже о том, что сами отображения могли быть произвольными, то есть область определения или область значений функции (например, предиката, числового флюента) могли быть любого типа уровня 0/1/2. Например, функции могли отображать произвольные функции в произвольные функции). OPT изначально разрабатывался с целью (почти) полной обратной совместимости с PDDL2.1. Нотация для процессов и длительных действий была заимствована в основном из PDDL+ и PDDL2.1, но помимо этого OPT предлагал множество других значительных расширений (например, структуры данных, небулевы флюенты, возвращаемые значения для действий, связи между действиями, иерархическое развертывание действий, иерархия определений доменов, использование пространств имен для совместимости с семантической сетью).
PPDDL
PPDDL (Probabilistic PDDL) 1.0 был официальным языком вероятностного трека 4-й и 5-й IPC в 2004 и 2006 годах соответственно. Он расширил PDDL2.1, добавив вероятностные эффекты (дискретные и общие распределения вероятностей для возможных результатов действия), флуенты вознаграждения (для увеличения или уменьшения общего вознаграждения плана в эффектах действий), вознаграждения за достижение целей (для вознаграждения траектории состояния, включающей как минимум одно целевое состояние), и флуенты достижения целей (которые истинны, если траектория состояния включает как минимум одно целевое состояние). В конечном итоге эти изменения позволили PPDDL1.0 реализовать планирование марковского процесса принятия решений (MDP), где возможна неопределенность в переходах между состояниями, но среда полностью наблюдаема для планировщика/агента.
АППЛ
APPL (Abstract Plan Preparation Language) — более новый вариант NDDL, разработанный в 2006 году, который является более абстрактным, чем большинство существующих языков планирования, таких как PDDL или NDDL. Целью этого языка было упрощение формального анализа и спецификации задач планирования, предназначенных для применений, критичных к безопасности, таких как управление энергопотреблением или автоматическая стыковка в будущих пилотируемых космических аппаратах. APPL использовал те же концепции, что и NDDL, с добавлением действий и некоторых других понятий, но при этом его выразительная сила значительно меньше, чем у PDDL (в стремлении сохранить надёжность и возможность формальной верификации).
RDDL
RDDL (Relational Dynamic influence Diagram Language) был официальным языком трека неопределенности 7-го IPC в 2011 году. Концептуально он основан на PPDDL1.0 и PDDL3.0, но на практике это совершенно иной язык как синтаксически, так и семантически. Введение частичной наблюдаемости – одно из наиболее важных отличий RDDL от PPDDL1.0. Он позволяет эффективно описывать марковские процессы принятия решений (MDP) и частично наблюдаемые марковские процессы принятия решений (POMDP), представляя все элементы (состояния, наблюдения, действия) в виде переменных. Таким образом, RDDL существенно отличается от PDDL. Заземленный RDDL соответствует динамическим байесовским сетям (DBNs) подобно PPDDL1.0, но RDDL обладает большей выразительностью, чем PPDDL1.0.
MA-PDDL
MA PDDL (Multi Agent PDDL) – минималистичное, модульное расширение PDDL3.1, представленное в 2012 году (то есть новое требование :multi agent), позволяющее планировать действия для и несколькими агентами. Это расширение совместимо со всеми возможностями PDDL3.1 и решает большинство проблем MAPL. Оно добавляет возможность различать различные действия, доступные разным агентам (то есть разные возможности). Аналогично, разные агенты могут иметь разные цели и/или метрики. Предварительные условия действий теперь могут напрямую ссылаться на одновременно выполняемые действия (например, действия других агентов), что позволяет представлять действия с взаимодействующими эффектами в общем и гибком виде (например, предположим, что для поднятия тяжелого стола в воздух требуется как минимум два агента, иначе стол останется на земле – это пример конструктивной синергии, но деструктивную синергию также можно легко представить в MA PDDL). Более того, в MA PDDL был введен простой механизм наследования и полиморфизма действий, целей и метрик, служащий своего рода синтаксическим сахаром (при условии объявления :typing). Поскольку PDDL3.1 предполагает, что среда детерминирована и полностью наблюдаема, то же самое справедливо и для MA PDDL: каждый агент может получить доступ к значению любого флуента состояния в любой момент времени, наблюдать каждое ранее выполненное действие каждого агента, а также одновременные действия агентов однозначно определяют следующее состояние среды. Позднее это было улучшено за счет добавления частичной наблюдаемости и вероятностных эффектов (опять же, в виде двух новых модульных требований – :partial observability и :probabilistic effects соответственно, последнее из которых вдохновлено PPDDL1.0, и оба совместимы со всеми предыдущими возможностями языка, включая :multi agent).