В искусственном интеллекте планирование на основе предпочтений представляет собой форму автоматизированного планирование и планирование, которое фокусируется на создании планов, которые дополнительно удовлетворяют как можно большему количеству заданных пользователем предпочтений. Во многих проблемных областях задача может быть выполнена с помощью различных последовательностей действий (также известных как планы). Эти планы могут различаться по качеству: может быть много способов решения проблемы, но обычно предпочтительнее, например, рентабельный, быстрый и безопасный.
Планировщики, основанные на предпочтениях, принимают эти предпочтения во внимание при составлении плана решения данной проблемы. Примеры программного обеспечения для планирования на основе предпочтений включают PPLAN и HTNPlan-P (планирование на основе предпочтений HTN ).
Предпочтения можно рассматривать как мягкие ограничения на план. Качество плана повышается, когда удовлетворяется больше предпочтений, но может оказаться невозможным удовлетворить все предпочтения в одном плане. Это отличается от жестких ограничений, которые должны соблюдаться во всех планах, создаваемых программой планирования. Эти жесткие ограничения являются частью знаний предметной области, в то время как мягкие ограничения (или предпочтения) отдельно задаются пользователем. Это позволяет повторно использовать одни и те же знания предметной области для разных пользователей, у которых могут быть разные предпочтения.
Использование предпочтений может также увеличить длину плана, чтобы удовлетворить больше предпочтений. Например, планируя поездку из дома в школу, пользователь может предпочесть купить чашку кофе по пути. Теперь программа для планирования может планировать сначала посещение Starbucks, а затем продолжение учебы. Это увеличивает длину плана, но предпочтения пользователя удовлетворяются.
Язык определения домена планирования (начиная с версии 3.0) поддерживает спецификацию предпочтений с помощью операторов preference
. Например, выражение
(предпочтение (всегда (чистая комната1)))
указывает, что пользователь предпочитает, чтобы комната1
была чистой в каждом состоянии плана. Другими словами, планировщик не должен планировать действие, которое приводит к загрязнению room1
. Как показывает этот пример, предпочтение оценивается в отношении всех состояний плана (если требуется семантически ).
В дополнение к всегда
, также поддерживаются другие конструкции, основанные на линейной временной логике, например когда-нибудь
(хотя бы один раз в течение плана), когда-нибудь после
(планируется после определенного состояния) и не более одного раза
(предпочтение сохраняется не более чем в одной последовательности состояний в плане).
Помимо определения того, удовлетворено ли предпочтение, нам также необходимо вычислить качество плана на основе того, сколько предпочтений выполнено. Для этой цели PDDL 3.0 включает выражение под названием нарушено
, которое равно «количеству различных предпочтений с данным именем, которые не удовлетворены в плане». Для плана значение теперь может быть вычислено с использованием метрической функции, которая задается с помощью : metric
:
(: metric minim (+ (* 5 (is-Violated pref1)) (* 7 (is-Violated pref2))))
Этот пример метрической функции указывает, что вычисленное значение плана должно быть минимизировано (т. е. план со значением v1 и план со значением v2 таким образом, что v1 < v2, the former plan is strictly preferred). The value of a plan is computed by the given function, which is expressed in польская нотация. В этом случае нарушение второго предпочтения, pref2
, было подвергнуто большему наказанию, чем первое предпочтение, pref1
.
В области проблемы удовлетворения ограничений, существуют гибкие варианты, которые работают с мягкими ограничениями аналогично предпочтениям при планировании на основе предпочтений.