술어의 매개변수와 타입 제약 (Predicate Parameters and Type Constraints)
1. 개요
PDDL 술어의 매개변수(parameter)는 술어가 참조하는 객체를 나타내는 변수이며, 타입 제약(type constraint)에 의해 특정 타입의 객체만 해당 위치에 대입될 수 있도록 제한한다.
2. 매개변수 구문
(술어이름 ?변수1 - 타입1 ?변수2 - 타입2)
2.1 단일 타입 매개변수
(at ?r - robot ?l - location)
?r에는 robot 타입의 객체만, ?l에는 location 타입의 객체만 대입 가능하다.
2.2 동일 타입의 복수 매개변수
(connected ?l1 ?l2 - location)
?l1과 ?l2 모두 location 타입이다. 동일 타입의 변수를 - 앞에 나열하여 간결하게 표현한다.
2.3 상위 타입 매개변수
(near ?e1 ?e2 - object)
object는 모든 타입의 상위 타입이므로, 어떤 객체든 대입 가능하다.
3. 타입 제약의 효과
3.1 인스턴스화 축소
3개의 robot 객체, 5개의 location 객체, 4개의 item 객체가 있을 때:
| 술어 | 타입 없음 | 타입 있음 |
|---|---|---|
(at ?r ?l) | 12^2 = 144개 인스턴스 | 3 \times 5 = 15개 |
(holding ?r ?o) | 12^2 = 144개 | 3 \times 4 = 12개 |
(connected ?l1 ?l2) | 12^2 = 144개 | 5 \times 5 = 25개 |
타입에 의해 인스턴스 수가 현저히 감소한다.
3.2 의미론적 오류 방지
타입 제약이 없으면 (at room_A robot1)과 같은 의미론적으로 무효한 인스턴스가 생성될 수 있다. 타입에 의해 이러한 오류가 사전에 방지된다.
4. 설계 지침
- 모든 매개변수에 타입을 명시한다.
- 과도하게 일반적인 타입(
object)을 피하고, 의미에 맞는 구체적 타입을 사용한다. - 동일 타입의 ��수 매개변수는 의미를 구분할 수 있는 변수 이름을 사용한다 (예:
?from,?to).
5. 참고 문헌
- McDermott, D., et al. (1998). “PDDL — The Planning Domain Definition Language.”
| 버전 | 날짜 | 변경 사항 |
|---|---|---|
| v0.1 | 2026-04-05 | 초안 작성 |