Q : What does a problem definition in PDDL include?
Initial state and goal state
Q : What is the difference between graph search and Planning?
PDDL은 인공지능 계획 수립 분야에서 사용되는 언어로, 주어진 문제를 기술하는 데 사용됩니다. PDDL에는 액션, 상태, 목표 등이 정의되며 각 액션은 전제조건(precondition)과 결과(effect)를 가집니다. 이러한 액션들을 적절하게 조합하여 목표 상태에 도달하는 계획을 만드는 것이 PDDL의 주요 목적입니다.
그러나 그래프 검색은 일반적인 탐색 알고리즘으로, 노드와 엣지로 구성된 그래프에서 시작 노드부터 목표 노드까지의 경로를 찾는데 사용됩니다. 이때 각 엣지는 특정 조건 변화(예: 비용)를 나타낼 수 있습니다.
따라서 기본적인 차이점 중 하나는 PDDL이 계획 수립에 초점을 맞추고 있는 반면, 그래프 검색은 일반적인 탐색 문제에 대한 해결 방법을 제공한다는 점입니다. 물론, 실제 응용에서 PDDL과 그래프 검색 기법은 서로 연계해서 사용될 수 있습니다.
Forward State-Space Search
Applying best-first search
Backward/Regression Search
We start at the goal and apply actions backward until we reach the start
→ We only look at relevant action
단, Forward state space search는 precondition을 보고 해당 action을 취할 수 있는지를 결정했다면, Backward/Regression Search는 Effect를 보고 해당 action이 취해질 수 있었는지를 결정한다는 점에서 차이가 있다.
→ Backward search는 state를 variable 로 사용하는 것이다. 따라서 대부분의 system은 Forward search를 선호한다.
Other AI Approaches
Planning can be translated as a SAT problem
Planning can also be translated in to a Constraint Programming model (CP)
추가적으로 Naive search는 scale하지 않다.
→ Therefore, we need heuristic
In addition, specifications of actions are very important. It can overcome expressive limitations.
Scheduling
Planning이 What 에 집중된 문제였다면 Scheduling은 When 에 집중된 문제이다.
Assume we have a partial ordering of actions required to achieve our goals
The task of scheduling is to provide an optimal schedule for the performance of the required actions.
There is two approaches to solve a scheduling problem
Resource Free scheduling
Priority based scheduling with resource constraints
Let’s compare them by using a following example.
Resource Free Scheduling
Dynamic Programming Algorithm for Resource-Free Scheduling
Set ES (start) = 0 (ES : Earliest start)
Iteratively set ES times to actions once their predecessors have been set ES times
Set LS(Finish) = ES(Finish)
Iteratively set LS times for actions once their descendants have been set LS times
Priority based scheduling with Resource Constraints
Set T(start) = 0
Select highest priority action from those whose predecessors have had their T scheduled, set its T as early as possible given resource constraints. When doing so, record which resources are used and the effects on consumed resources.
Repeat step 2 until all actions T are scheduled
What should our priority function be?
→ One idea : Minimum slack (i.e. Prioritize actions based on their slack (LS-ES) in the resource free schedule)