Preference-based planning
In artificial intelligence, preference-based planning is a form of automated planning and scheduling which focuses on producing plans that achieve outcomes in a way that also satisfies user-specified preferences insofar as possible. In many problem domains, a task can be accomplished by various sequences of actions (also known as plans). These plans can however vary in quality: there can be many ways to solve a problem but one generally prefers a way that is, e.g., cost-effective, quick and safe.
Preference-based planners take these preferences into account when producing a plan for a given problem. Examples of preference-based planning software include PPLAN[1] and HTNPlan-P[2] (preference-based HTN planning).
Overview
Preferences can be regarded as soft contraints on a plan. The quality of a plan increases when more preferences are satisfied but it may not be possible to satisfy all preferences in a single plan. This differs from hard constraints which must be satisfied in all plans produced by the planning software.
The use of preferences may also increase the length of a plan in order to satisfy more preferences. For example, when planning a journey from home to school, the user may prefer to buy a cup of coffee along the way. The planning software could now plan to visit Starbucks first and then continue to school.
Planning Domain Definition Language
The Planning Domain Definition Language supports the specification of preferences through preference
statements: for example, the statement (preference (always (clean room1)))
indicates that the user prefers that room1
should be clean at each state of the plan. In other words, the planner should not schedule an action that causes room1
to become dirty.