도메인 파일의 구조와 역할 (Structure and Role of the Domain File)
1. 개요
PDDL 도메인 파일은 로봇이 수행할 수 있는 행동(actions)과 세계의 구조(types, predicates, functions)를 기술하는 파일이다. 특정 문제 인스턴스에 독립적이며, 다양한 문제에 재사용된다.
2. 도메인 파일의 완전한 구조
(define (domain 도메인이름)
; 1. 요구사항 선언
(:requirements :strips :typing :durative-actions :fluents)
; 2. 타입 선언
(:types
robot - object
location - object
item - object)
; 3. 상수 선언 (선택)
(:constants
dock - location)
; 4. 술어 선언
(:predicates
(at ?r - robot ?l - location)
(on ?i - item ?l - location)
(holding ?r - robot ?i - item)
(gripper_empty ?r - robot)
(connected ?l1 ?l2 - location))
; 5. 함수 선언 (선택)
(:functions
(battery-level ?r - robot)
(distance ?l1 ?l2 - location))
; 6. 행동 선언
(:action move ...)
(:action pick ...)
(:action place ...)
; 7. 듀레이티브 행동 (선택)
(:durative-action navigate ...))
3. 각 구성 요소의 역할
3.1 :requirements
도메인이 사용하는 PDDL 기능을 선언한다. 계획기가 해당 기능을 지원하는지를 사전에 확인하는 역할을 한다.
3.2 :types
객체의 분류 체계를 정의한다. 타입에 의해 행동의 매개변수가 어떤 종류의 객체에 적용 가능한지를 제한한다.
(:types
robot location item - object ; 상위 타입: object
warehouse office - location) ; location의 하위 타입
3.3 :predicates
세계 상태를 기술하는 명제 스키마(proposition schema)를 정의한다. 각 술어는 이름과 타입이 지정된 매개변수를 가진다.
3.4 :functions
수치적 상태 변수를 정의한다. 거리, 배터리 잔량, 속도 등을 표현한다.
3.5 :action / :durative-action
로봇이 수행할 수 있는 행동을 전제 조건과 효과로 정의한다.
4. 도메인 파일의 역할
| 역할 | 설명 |
|---|---|
| 능력 기술 | 로봇이 “무엇을 할 수 있는가“를 정의 |
| 물리학 인코딩 | 행동의 전제 조건과 효과로 세계의 규칙을 표현 |
| 재사용 단위 | 동일 도메인을 다양한 문제에 적용 |
| 계획기 입력 | 계획기가 유효한 행동을 탐색하는 기반 |
5. 참고 문헌
- 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 | 초안 작성 |