:typing 요구사항과 타입 시스템 (:typing Requirement and the Type System)
1. 개요
:typing 요구사항은 PDDL에서 객체의 타입(type) 분류 체계를 활성화하여, 행동의 매개변수를 특정 타입의 객체로 제한한다. 이에 의해 인스턴스화(grounding) 시 생성되는 행동의 수를 줄이고, 도메인 모델의 의미론적 명확성을 높인다.
2. 타입 선언
2.1 기본 타입
(:types robot location item)
세 가지 타입이 정의되며, 모든 타입은 암묵적으로 최상위 타입 object의 하위 타입이다.
2.2 계층적 타입
(:types
robot - object
location - object
warehouse office corridor - location ; location의 하위 타입
heavy_item light_item - item) ; item의 하위 타입
하위 타입의 객체는 상위 타입의 매개변수에도 적용 가능하다. warehouse 타입의 객체는 location 타입의 매개변수에 대입될 수 있다.
3. 타입의 활용
3.1 매개변수 타입 제약
(:action move
:parameters (?r - robot ?from ?to - location)
...)
?r에는 robot 타입의 객체만, ?from과 ?to에는 location 타입의 객체만 대입된다.
3.2 술어의 타입 제약
(:predicates
(at ?r - robot ?l - location)
(holding ?r - robot ?i - item))
3.3 인스턴스화 축소 효과
:typing이 없으면 모든 객체가 모든 매개변수에 대입될 수 있어, 인스턴스화된 행동의 수가 O(n^k)이다. 타입에 의해 각 매개변수에 대입 가능한 객체가 제한되므로, 인스턴스화 수가 현저히 감소한다.
| 타입 없음 | 타입 있음 |
|---|---|
| O(n^k) | O(n_1 \times n_2 \times \ldots \times n_k) |
여기서 n_i는 i번째 매개변수의 타입에 해당하는 객체 수이다.
4. 설계 지침
- 적절한 세분화: 과도하게 세분화된 타입은 유지보수를 어렵게 한다.
- 계층 활용: 공통 특성을 상위 타입으로 추상화한다.
- PlanSys2 호환: PlanSys2에서
:typing은 거의 필수적으로 사용된다.
5. 참고 문헌
- McDermott, D., et al. (1998). “PDDL — The Planning Domain Definition Language.”
| 버전 | 날짜 | 변경 사항 |
|---|---|---|
| v0.1 | 2026-04-05 | 초안 작성 |