1315.9 PDDL 함수의 개념과 정의
1. PDDL 함수의 개념
PDDL 함수(function)는 PDDL 2.1에서 도입된 수치 플루언트(numeric fluent)를 정의하는 구성 요소이다(Fox & Long, 2003). 고전적 PDDL의 술어가 참/거짓의 이진 상태만을 표현하는 것과 달리, 함수는 실수 값을 상태 변수에 부여할 수 있게 한다. 이를 통해 에너지 잔량, 이동 거리, 비용, 시간 등의 정량적 속성을 도메인에서 직접 모델링할 수 있다.
PDDL 함수의 사용에는 :numeric-fluents 또는 :fluents 요구사항의 활성화가 필요하다:
(:requirements :strips :typing :numeric-fluents)
2. 함수의 형식적 정의
PDDL 함수는 매개변수화된 수치 변수로서, 형식적으로 다음과 같이 정의된다:
f: \mathcal{O}^k \rightarrow \mathbb{R}
여기서 \mathcal{O}는 도메인의 객체 집합이고, k는 함수의 인수(arity) 수이다. 함수는 k개의 객체 튜플을 실수 값에 사상하는 전함수이다.
상태 s에서 함수 인스턴스 (f \ o_1 \ \ldots \ o_k)의 값을 s[f(o_1, \ldots, o_k)]로 표기한다.
3. 함수 선언의 구문
함수는 도메인 파일의 :functions 절에서 선언된다:
(:functions
(battery_level ?r - robot)
(distance ?from - waypoint ?to - waypoint)
(speed ?r - robot)
(weight ?obj - object)
(total_cost)
(fuel_capacity ?v - vehicle)
)
각 함수 선언은 함수 이름과 매개변수 목록으로 구성된다. 매개변수에는 술어와 마찬가지로 타입이 지정될 수 있다.
3.1 무매개변수 함수
매개변수가 없는 함수는 전역 수치 변수로 기능한다:
(:functions
(total_cost)
(total_distance)
(mission_time)
)
이러한 함수는 계획 전체의 누적 비용이나 메트릭을 추적하는 데 사용된다.
3.2 다항 함수
두 개 이상의 매개변수를 가진 함수는 객체 쌍(또는 튜플) 간의 수치적 관계를 표현한다:
(:functions
(distance ?from - waypoint ?to - waypoint) ;; 2항: 두 위치 간 거리
(travel_cost ?from - waypoint ?to - waypoint ?r - robot) ;; 3항: 로봇별 이동 비용
)
4. 함수와 술어의 비교
| 특성 | 술어 (Predicate) | 함수 (Function) |
|---|---|---|
| 값 범위 | {참, 거짓} | \mathbb{R} (실수) |
| 상태 표현 | 집합의 멤버십 | 수치 값 할당 |
| 변경 방법 | 추가/삭제 | increase, decrease, assign |
| 전제 조건에서의 사용 | 논리적 평가 | 수치 비교 연산 |
| PDDL 버전 | 1.0 이상 | 2.1 이상 |
| 요구사항 | :strips | :numeric-fluents |
5. 함수의 상태 표현에서의 위치
PDDL 2.1에서 상태는 두 가지 구성 요소로 이루어진다:
- 논리적 상태: 참인 술어 인스턴스의 집합 s_L \subseteq \mathcal{P}
- 수치적 상태: 함수 인스턴스에서 실수 값으로의 사상 s_N: \mathcal{F} \rightarrow \mathbb{R}
여기서 \mathcal{P}는 가능한 술어 인스턴스의 전체 집합, \mathcal{F}는 가능한 함수 인스턴스의 전체 집합이다. 전체 상태는 이 두 구성 요소의 쌍으로 표현된다:
s = (s_L, s_N)
6. 로봇 도메인에서의 함수 활용 범주
로봇 도메인에서 PDDL 함수가 모델링하는 주요 범주는 다음과 같다:
| 범주 | 함수 예시 | 설명 |
|---|---|---|
| 에너지 | (battery_level ?r) | 배터리 잔량 |
| 거리/공간 | (distance ?from ?to) | 두 지점 간 거리 |
| 시간 | (travel_time ?from ?to) | 이동 소요 시간 |
| 비용 | (total_cost) | 누적 실행 비용 |
| 용량 | (current_load ?r), (max_load ?r) | 적재 현황과 한계 |
| 속도 | (speed ?r) | 로봇의 이동 속도 |
| 품질 | (quality_score) | 임무 수행 품질 |
7. 참고 문헌
- Fox, M. & Long, D. (2003). “PDDL2.1: An Extension to PDDL for Expressing Temporal Planning Domains.” Journal of Artificial Intelligence Research, 20, 61–124.
- Hoffmann, J. (2003). “The Metric-FF Planning System: Translating ‘Ignoring Delete Lists’ to Numeric State Variables.” Journal of Artificial Intelligence Research, 20, 291–341.
- Haslum, P., Lipovetzky, N., Magazzeni, D., & Muise, C. (2019). An Introduction to the Planning Domain Definition Language. Morgan & Claypool Publishers.
- Ghallab, M., Nau, D., & Traverso, P. (2004). Automated Planning: Theory and Practice. Morgan Kaufmann.