상수 선언과 도메인 수준 객체 (Constants Declaration and Domain-Level Objects)
1. 개요
PDDL의 :constants 절은 도메인 수준에서 존재하는 고정 객체를 선언한다. 상���는 모든 문제 인스턴스에서 ���통으로 사용되는 객체로, 문제 파일의 :objects에�� ��복 선언할 ���요가 없다.
2. ��문
(:constants
dock - location ; 도킹 스테이션은 모든 문제에 존재
charger - location ; 충전기는 모든 문제에 존재
default_gripper - tool) ; 기본 그리퍼는 모든 문제에 존재
3. 상수와 객체의 차이
| 특성 | 상수 (:constants) | 객체 (:objects) |
|---|---|---|
| 선언 위치 | 도메인 파일 | 문제 파일 |
| 유효 범위 | 모든 문제 인스턴스 | 특정 문제 인스턴스 |
| 변경 가���성 | 도메인 수정 시에만 변경 | 문���마다 다르게 설정 |
| 용도 | 도메인에 고유한 고정 객체 | 임무별 가변 객체 |
4. 활용 예시
4.1 고정 위치
(:constants
home_base charging_station - location)
모든 임무에서 기지(home_base)와 충전 스테이션은 존재하므로 상수로 선언한다.
4.2 고정 도구
(:constants
standard_gripper vacuum_gripper - tool)
5. 문제 파일에서의 사용
상수는 문제 파일에서 별도로 선언하지 않아도 자동으로 사용 가능하다.
(:init
(at robot1 home_base) ; home_base는 도메인 상수
(tool_available standard_gripper))
6. 설계 지침
- 모든 문제에 공통적인 ��체만 상수로 선언한다.
- 임무���다 변경될 수 있는 객체는 문제 파일의
:objects에 선언한다. - 과도한 상수 사용은 도메인의 유연성을 제한한다.
7. 참고 문헌
- McDermott, D., et al. (1998). “PDDL — The Planning Domain Definition Language.”
| 버전 | 날짜 | 변경 사항 |
|---|---|---|
| v0.1 | 2026-04-05 | 초안 작성 |