PDDL 버전의 발전 과정 (Evolution of PDDL Versions)
1. 개요
PDDL은 1998년 초기 버전(1.2)에서 시작하여, IPC의 요구와 로봇 공학을 포함한 실세계 응용의 필요에 따라 시간적 계획, 수치적 기능, 선호도, 파생 술어 등의 기능을 점진적으로 확장하여 왔다. 본 절에서는 각 버전의 주요 특징과 추가 기능을 정리한다.
2. 버전별 핵심 기능
2.1 PDDL 1.2 (1998)
기본 STRIPS와 ADL 기능을 통합한 최초 표준이다.
| 기능 | :requirements |
| STRIPS | :strips |
| 타입 | :typing |
| 등호 | :equality |
| 부정 전제 조건 | :negative-preconditions |
| 조건부 효과 | :conditional-effects |
| 양화사 | :universal-preconditions, :existential-preconditions |
2.2 PDDL 2.1 (2003)
시간적 계획과 수치적 기능을 도입하여, 로봇 공학에서의 실용적 활용을 크게 확장하였다.
| 추가 기능 | :requirements | 설명 |
| 수치 함수 | :fluents | 수치적 상태 변수 (거리, 배터리 등) |
| 듀레이티브 액션 | :durative-actions | 시간 지속이 있는 행동 |
| 시간적 계획 | :timed-initial-literals | 시간 종속 사실 |
(:durative-action move
:duration (= ?duration (/ (distance ?from ?to) (speed ?robot)))
...)
2.3 PDDL 2.2 (2004)
| 추가 기능 | 설명 |
파생 술어 (:derived-predicates) | 다른 술어로부터 도출되는 술어 |
시간 제한 목표 (:timed-initial-literals) | 특정 시점에서만 유효한 사실 |
2.4 PDDL 3.0 (2006)
| 추가 기능 | 설명 |
선호도 (:preferences) | “가능하면” 충족하는 연성 제약 |
경로 제약 (:constraints) | 계획 경로에 대한 제약 |
2.5 PDDL 3.1 (2008)
| 추가 기능 | 설명 |
객체 함수 (:object-fluents) | 객체를 값으로 가지는 함수 |
3. PlanSys2에서의 PDDL 지원
PlanSys2는 주로 PDDL 2.1 수준을 지원하며, POPF 계획기를 통해 듀레이티브 액션과 수치 함수를 처리한다. :strips, :typing, :durative-actions, :fluents가 가장 빈번히 사용되는 :requirements이다.
4. 참고 문헌
- McDermott, D., et al. (1998). “PDDL — The Planning Domain Definition Language.”
- Fox, M., & Long, D. (2003). “PDDL2.1.” JAIR, 20, 61-124.
- Gerevini, A., & Long, D. (2006). “Preferences and Soft Constraints in PDDL3.”
| 버전 | 날짜 | 변경 사항 |
| v0.1 | 2026-04-05 | 초안 작성 |