What is AI Planning (Automated Planning & Scheduling)?

by Stephen M. Walker II, Co-Founder / CEO

What is AI Planning (Automated Planning & Scheduling)?

AI Planning, also known as Automated Planning and Scheduling, is a branch of artificial intelligence that focuses on the development of strategies or sequences of actions to achieve specific goals. It is typically used for execution by intelligent agents, autonomous robots, and unmanned vehicles.

AI Planning involves finding a procedural course of action for a system described declaratively to reach its goals while optimizing overall performance measures. It is a process of decision-making where the system starts from an initial state and aims to transform it into a desired goal state through the application of a set of actions.

Automated planning systems streamline the process of task allocation, scheduling, and prioritization by leveraging advanced planning algorithms. These systems take into account dependencies, constraints, predefined rules, and business policies to ensure the accuracy of scheduling outcomes.

In known environments with available models, planning can be done offline, with solutions found and evaluated prior to execution. In dynamically unknown environments, the strategy often needs to be revised online, with models and policies adapted.

Automated planning and scheduling have a wide range of applications, including customer service, task management, and resource allocation. For instance, in customer service, automated planning can be used to schedule appointments, optimize queuing systems, and allocate resources efficiently.

In the context of programming, the planning process includes an initial state, a goal state, and some actions defined in a domain. A plan enables an AI system to perform a series of actions that turn the initial state into the goal state.

Algorithms for planning

In the field of Artificial Intelligence (AI), planning algorithms are used to devise strategies or actions for execution by intelligent agents, autonomous robots, and unmanned vehicles. These solutions are complex and must be discovered and optimized in multidimensional space.

There are several types of planning algorithms used in AI:

  1. Forward chaining state space search — This approach starts from the initial state and uses actions to reach the goal state. It can be enhanced with heuristics to improve efficiency.

  2. Backward chaining search — This method starts from the goal state and works backward to find a path to the initial state. It can be enhanced by the use of state constraints.

  3. Partial-order planning — This approach does not commit to a total order of actions, allowing for more flexibility in the order of action execution.

  4. Classical Planning — This type of planning creates a series of actions to accomplish a goal in a predetermined setting. It assumes that everything is static and predictable.

  5. Hierarchical planning — This approach divides large problems into smaller ones, making planning more effective. It involves establishing a hierarchy of plans.

  6. Constraint Programming — This technique models and solves complicated planning issues with a variety of constraints.

  7. Machine Learning — Techniques like Reinforcement Learning can be used to enhance planning.

Planning algorithms are used in various applications, including dialog systems, cybersecurity, transportation, logistics, and more. However, the application of these algorithms can be challenging due to the complexity and scale of planning problems. Therefore, it's crucial to have a clear formulation of the problem and understand the components of the planning system in AI.

In practice, planning algorithms are compared based on their ability to solve the same problem and their output capabilities. For example, some algorithms only output the goals of the actor, while others output the goal and a prediction about future actions.

It's also worth noting that recent research efforts have introduced Intelligent Personal Agents that utilize Natural Language Understanding (NLU) modules and Machine Learning (ML) in planning.

Planning domain modelling languages

Planning domain modelling languages are used to define and standardize the problems that artificial intelligence (AI) planning systems aim to solve. The most notable of these languages is the Planning Domain Definition Language (PDDL), which was first developed in 1998 to standardize AI planning languages. PDDL has evolved over time with each competition, and its standardization has made research more reusable and easily comparable, albeit at the cost of some expressive power compared to domain-specific systems.

PDDL is designed to be capable of specifying any planning or scheduling problem. It forms the basis of the model for a planning problem, which is then input into a planner software. This software aims to solve the given planning problem via an appropriate planning algorithm. The output of the planner is usually a totally or partially ordered plan, although the output is not specified by PDDL.

There are several versions of PDDL, each introducing new features to address the evolving needs of AI planning. For example, PDDL2.1 introduced time and numbers, which were previously difficult to express in AI planning syntax.

Other planning domain modelling languages include NDDL, ANML, HTN, and Picat. These languages, like PDDL, are used to define planning problems for AI systems to solve.

In addition to these languages, there are also tools available for domain-specific modelling. These tools allow users to create and manipulate models of software systems using concepts that are specific to a particular domain. These tools can be used in conjunction with planning domain modelling languages to design and implement AI planning systems.

Domain independent planning

Domain-independent planning is a system that addresses problems without specific knowledge of the domain, as opposed to domain-dependent planners, which use domain-specific knowledge. This approach is built into many planners, including PDDL (Planning Domain Definition Language), and the techniques applied to solving a problem should know nothing about the problem they are solving. This means that the same techniques used to solve a logistics problem could also be applied to a manufacturing problem, for example.

One of the advantages of domain-independent planning is that it can use local search methods that have been successful in scaling to large problems. This approach can generate high-quality plans efficiently. Furthermore, the search occurs in the space of solution plans, which is generally much smaller than the space of partial plans explored by planners based on refinement search.

Domain-independent planning also allows for the possibility of trading off planning effort and plan quality. For instance, in query planning, the quality of a plan is its execution time, and it may not make sense to keep planning if the cost of the current plan is small enough, even if a cheaper one could be found.

Domain-independent heuristics can be used to aid search algorithms in solving domain-independent planning problems. These heuristics provide an estimate of the minimum cost from a state, helping to reduce the number of nodes the search algorithm has to explore to find a solution plan. This can potentially reduce the runtime of the search algorithm and find an optimal plan.

However, it's important to note that while domain-independent planning has made significant gains in recent years, these advances have not yet translated into many new applications or an understanding of what constitutes the best technique. There is still a need for research to understand the strengths and weaknesses of different planners and to develop predictive models of planner performance.

More terms

What is a graph?

A graph is a mathematical structure that consists of nodes (also called vertices) and edges connecting them. It can be used to represent relationships between objects or data points, making it useful in various fields such as computer science, social networks, and transportation systems. Graphs can be directed or undirected, weighted or unweighted, and cyclic or acyclic, depending on the nature of the connections between nodes.

Read more

Mathemical Optimization Methods

Mathematical optimization, or mathematical programming, seeks the optimal solution from a set of alternatives, categorized into discrete or continuous optimization. It involves either minimizing or maximizing scalar functions, where the goal is to find the variable values that yield the lowest or highest function value.

Read more

It's time to build

Collaborate with your team on reliable Generative AI features.
Want expert guidance? Book a 1:1 onboarding session from your dashboard.

Start for free