술어 선언의 문법과 의미 (Syntax and Semantics of Predicate Declaration)
1. 개요
PDDL의 술어(predicate)는 세계 상태를 기술하는 명제의 스키마(schema)이다. 술어는 이름과 타입이 지정된 매개변수로 구성되며, 구체적 객체로 인스턴스화되면 참/거짓 값을 가지는 명��가 된다.
2. 구문
(:predicates
(술��이름 ?변수1 - 타입1 ?변수2 - 타입2 ...)
...)
3. 예시
(:predicates
(at ?r - robot ?l - location) ; 로봇의 위치
(on ?o - item ?l - location) ; 물체의 위치
(holding ?r - robot ?o - item) ; 파지 상태
(gripper_empty ?r - robot) ; 그리퍼 빈 상태
(connected ?l1 ?l2 - location) ; 위치 간 연결
(door_open ?l - location) ; 문 열림 상태
(charged ?r - robot) ; 충전 상태
(visited ?r - robot ?l - location)) ; 방문 여부
4. 술어의 인스턴스화
술어 스키마의 변수를 ���체적 객체로 대치하면 명제(ground atom)가 된다.
술어 스키마: (at ?r - robot ?l - location)
인스턴스: (at robot1 room_A) → 참 또는 거짓
(at robot1 room_B) → 참 또는 거짓
5. 술어의 의미
상태 s에서 명제 (at robot1 room_A)가 s에 포함되면 참, 포함되지 않으면 거짓이다(폐쇄 세�� 가정).
6. 술어의 유형
| 유형 | 인자 �� | 예시 | 설명 |
|---|---|---|---|
| 단항 (Unary) | 1 | (charged ?r) | 단일 객���의 속성 |
| 이항 (Binary) | 2 | (at ?r ?l) | 두 객체 간의 관계 |
| 삼항 (Ternary) | 3 | (between ?l ?l1 ?l2) | 세 객체 간의 관계 |
| 영항 (Zero-ary) | 0 | (emergency) | 전역 상태 플래그 |
7. 로봇 도메인에서의 핵심 술어 패턴
| 패턴 | 술어 | 의미 |
|---|---|---|
| 위치 | (at ?r ?l) | 로봇의 현재 위치 |
| 소유 | (holding ?r ?o) | 로봇이 물체를 파지 중 |
| 연결 | (connected ?l1 ?l2) | 위치 간 이동 가능 |
| 상태 | (gripper_empty ?r) | 그리퍼 상태 |
| 완료 | (delivered ?o ?l) | 배달 완료 |
8. 설계 지침
- 명확한 명명: 술어 이름이 ��미��� 직관적으로 전달
- 최소 인자: 필요한 인자만 포함
- 타입 제약: 모든 매개변수에 타입 지정
- 중복 방지: 유사한 의미의 술어 중복 정의 방지
9. 참고 문헌
- McDermott, D., et al. (1998). “PDDL — The Planning Domain Definition Language.”
- Ghallab, M., Nau, D., & Traverso, P. (2016). Automated Planning and Acting. Cambridge University Press.
| 버전 | 날짜 | 변경 사항 |
|---|---|---|
| v0.1 | 2026-04-05 | 초안 작성 |