Планирование с частичным порядком
Планирование с частичным порядком (англ. partial-order planning) — подход к автоматическому планированию, при котором поддерживается частичный порядок между действиями и упорядочение действий задаётся только по необходимости, то есть порядок выполнения действий остаётся частичным. Такой подход не требует заранее определять, какое из двух действий выполнится первым, если они независимы. В отличие от этого, планирование с полным порядком (англ. total-order planning) использует полное упорядочение всех действий на каждом этапе планирования. Когда для решения задачи требуется последовательность действий, план с частичным порядком определяет все необходимые действия, но задаёт порядок выполнения только там, где это критично[1].
Например, человек должен пройти полосу препятствий, состоящую из моста, качелей и карусели. Пройти мост нужно раньше, чтобы стать способным добраться до качелей и карусели. После этого качели и карусель можно проходить в любом порядке, затем становится доступен финиш. В плане с частичным порядком отношения между действиями задаются только там, где это необходимо: сначала — мост, затем (в произвольном порядке) качели и карусель, после чего доступен конец маршрута. Планирование с частичным порядком основывается на принципе минимальных обязательств, что способствует его эффективности[2].
План с частичным порядком
План с частичным порядком (или частичный план) — это план, в котором перечислены все необходимые действия, но порядок между ними определяется только там, где это обязательно. Такой план формируется с помощью планировщика с частичным порядком. Он содержит четыре основных компонента:
- Множество действий (операторов).
- Частичный порядок для действий — определяет условия порядка между некоторыми действиями.
- Множество каузальных связей — показывает, какие действия удовлетворяют предусловия других. Альтернативно, это множество связок между переменными в действиях.
- Множество открытых предусловий — описывает предусловия, не выполненные ни одним действием в данном плане.
Чтобы оставить максимальное количество вариантов поочерёдности действий, число условий порядка и каузальных связей должно быть минимальным.
План считается решением, если множество открытых предусловий пусто.
Линеаризация плана с частичным порядком — это получение плана с полным порядком на его основе: оба плана содержат те же действия, но порядок действий в линеаризации представляет собой линейное расширение исходного частичного порядка.
План по приготовлению пирога может выглядеть так:
- сходить в магазин
- взять яйца; взять муку; взять молоко
- оплатить все покупки
- вернуться на кухню
Это частичный план, потому что порядок покупки яиц, муки и молока не задан — агент может собирать необходимые продукты в любом порядке, пока не завершит список[3].
Планировщик с частичным порядком
Планировщик с частичным порядком (англ. partial-order planner) — это алгоритм или программа, которая строит план с частичным порядком и ищет решение. Входные данные включают описание первоначального состояния, цели и возможных действий.
Задача формулируется как поисковая задача, где пространство поиска составляют возможные планы с частичным порядком. Начальное состояние — это план, открытые предусловия которого совпадают с целевыми условиями. Конечное состояние — любой план без открытых предусловий, то есть искомое решение[3].
Начальное состояние определяет исходные условия (например, пустой стол для задачи сервировки). Цель — это результат, который требуется получить, например сервированный стол. Операторами называются действия, с помощью которых достигается цель (в приведённом примере — разложить скатерть и расставить бокалы, тарелки и приборы).
Пространство планов алгоритма ограничено начальным и конечным состояниями. Алгоритм начинается с формирования начального состояния и завершается, когда выполнены все части цели. Для задачи сервировки стола есть, например, такие действия: разложить скатерть, разложить тарелки, приборы и бокалы. Возникает ‘‘угроза’’, если разложить тарелки, приборы или бокалы до скатерти. В этом случае предусловие, что стол пуст, больше не выполнено. Поэтому алгоритм должен ввести ограничение: все действия после разложения скатерти. После всех этих шагов задача считается решённой[4].
Планирование с частичным порядком может сталкиваться с ‘‘угрозами’’: это такие порядки действий, при которых нарушается связь между предусловием и действием, что может разрушить весь план. Для устранения угроз применяются два подхода:
- Повышение
- Понижение
Повышение означает размещение действия-угрозы после связанного события; понижение — до него.
Алгоритмы такого типа считаются корректными и полными: корректность гарантирует, что все действия можно полностью упорядочить, а полнота — что решение будет найдено, если оно существует[5].
Сравнение с планированием с полным порядком
Планирование с частичным порядком противопоставляется планированию с полным порядком, при котором все действия полностью упорядочиваются для решения задачи. Вопрос эффективности двух подходов изучен в работе Энтони Барретта и Даниэла Уэлда (1993); они показали, что планирование с частичным порядком быстрее и, следовательно, эффективнее. Используя таксономию Корфа для подцелей, исследователи показали, что такие алгоритмы эффективнее за счёт большей ‘‘тривиальной сериализуемости’’ (trivial serializability) по сравнению с полным порядком. ‘‘Тривиальная сериализуемость’’ облегчает быстрый поиск решений, если цель состоит из подцелей; затруднения возникают при ‘‘трудной сериализации’’ (laboriously serializable) или ‘‘несериализуемости’’ (nonserializable subgoals) целей[6].
Аномалия Сассмана
Планы с частичным порядком легко и эффективно решают аномалию Сассмана — хорошо известную проблему в области автоматического планирования. Эта особенность таких планировщиков сыграла значимую роль в их развитии[7].
Недостатки планирования с частичным порядком
Главный недостаток таких методов — высокий вычислительный расход на каждый узел поиска: алгоритм сложнее, и на каждый шаг требуется больше вычислительных ресурсов. Это важно учитывать в области искусственного интеллекта: если, например, требуется реализовать задачу для робота, нужно учитывать энергозатраты. Хотя такие планы сокращают время поиска, иногда они неоправданно увеличивают потребление энергии[4].
Примечания
Литература
- Russell, S., Norvig, P. Artificial Intelligence: A Modern Approach. Pearson, 2009. ISBN 978-0-13-604259-4.
- Weld, D. An Introduction To Least Commitment Planning (англ.). University of Washington. Дата обращения: 13 июня 2024. Архивировано 17 октября 2016 года.
- Kambhampati, S.; Knoblock, C.A.; Yang, Q. Planning as Refinement Search: A Unified Framework for Evaluating Design Tradeoffs in Partial-Order Planning (англ.). Elsevier Science (1994). Дата обращения: 13 июня 2024.
- Poole, D.; Mackworth, A. Partial-Order Planning in Artificial Intelligence Foundations of Computational Agents (англ.). artint.info (1 января 2010). Дата обращения: 13 июня 2024. Архивировано 30 сентября 2015 года.
- Dyer, C. R. Partial-Order Planning (Chapter 11) (англ.). CS 540. University of Wisconsin-Madison (22 февраля 2003). Дата обращения: 13 июня 2024. Архивировано 16 апреля 2014 года.
- Barrett, A.; Weld, D. Partial-Order Planning: Evaluating Possible Efficiency Gains (англ.). University of Washington (1993). Дата обращения: 13 июня 2024. Архивировано 24 сентября 2021 года.
- Simmons, R. Planning, Execution & Learning 1. Partial Order Planning (англ.). Carnegie Mellon University (2001). Дата обращения: 13 июня 2024. Архивировано 8 апреля 2016 года.
- Partial-Order Planning: Evaluating Possible Efficiency Gains (англ.). AMiner. Дата обращения: 13 июня 2024.
- Decomposition and Causality in Partial Order Planning (англ.). AMiner. Дата обращения: 13 июня 2024.
- Partial-order planning with concurrent interacting actions (англ.). ACM Digital Library. Дата обращения: 13 июня 2024.
- Partial-order causal link planning: An overview (англ.). arXiv. Дата обращения: 13 июня 2024.
- Partial order planning (англ.). grastien.net. Дата обращения: 13 июня 2024.