1315.18 수치 전제 조건에서의 함수 활용
1. 수치 전제 조건의 개요
수치 전제 조건(numeric precondition)은 PDDL 함수의 값에 대한 비교 조건을 액션의 전제 조건에 포함하여, 정량적 상태에 따른 액션의 적용 가���성을 판단하는 ���커니즘이다. 이를 통해 자원 충분성, 용량 제한, 임계값 검사 등의 정량적 제약을 플래닝 수준에서 모델링할 수 있다.
2. 함수 참조 구문
전제 조건��서 함수를 참조하는 구문은 다음과 같다:
(<comparison-operator> <numeric-expression> <numeric-expression>)
비교 연산자: <, <=, >, >=, =
수치 표현식: 함수 인스턴스, 상수, 또는 산술 연산의 조합
3. 함수 값과 상수의 비교
;; 함수 값과 상수 비교
:precondition (and
(>= (battery_level ?r) 20) ;; 배터리 20 이상
(< (current_load ?r) 50) ;; 적재량 50 미만
(> (fuel_level ?v) 0) ;; 연료 잔량 양수
(= (error_count ?r) 0) ;; 오류 없음
)
4. 두 함수 값의 비교
;; 두 함수 간 비교
:precondition (and
(>= (battery_level ?r) (energy_cost ?from ?to)) ;; 배터리 >= 필요 에너지
(<= (current_load ?r) (max_load ?r)) ;; 현재 적재 <= 최대 적재
(< (battery_level ?r) (max_battery ?r)) ;; 배터리 < 최대 (충전 필요)
(>= (speed ?r) (min_speed_required ?zone)) ;; 속도 >= 구역 최소 요구
)
5. 산술 표현식을 포함하는 비교
;; 적재 후 총 무게가 제한 이내인지 확인
:precondition (<= (+ (current_load ?r) (weight ?obj)) (max_load ?r))
;; 왕복에 충분한 배터리 확인
:precondition (>= (battery_level ?r) (* 2 (energy_cost ?from ?to)))
;; 남은 시간이 이동 + 작업 시���보다 큰지 확인
:precondition (>= (remaining_time)
(+ (/ (distance ?from ?to) (speed ?r)) (task_duration ?task)))
6. 로봇 도메인에서의 활용 패턴
6.1 자원 충분성 검사 패턴
가장 빈번하게 사용되는 패턴으로, 행동에 필요한 자원이 충분한지 확인한다:
(:action move
:parameters (?r - robot ?from ?to - waypoint)
:precondition (and
(robot_at ?r ?from)
(connected ?from ?to)
(>= (battery_level ?r) (* (distance ?from ?to) (energy_per_meter ?r)))
)
:effect (...)
)
6.2 용량 제한 검사 패턴
물체를 적재할 때 최대 용량을 초과하지 않는지 확인한다:
(:action load_cargo
:parameters (?r - robot ?cargo - object ?loc - waypoint)
:precondition (and
(robot_at ?r ?loc)
(object_at ?cargo ?loc)
(<= (+ (current_load ?r) (weight ?cargo)) (max_load ?r))
)
:effect (...)
)
6.3 임계값 기반 모드 전환 패턴
(:action enter_low_power_mode
:parameters (?r - robot)
:precondition (and
(robot_active ?r)
(< (battery_level ?r) 15) ;; 임계값 이하
)
:effect (...)
)
(:action exit_low_power_mode
:parameters (?r - robot)
:precondition (and
(low_power_mode ?r)
(>= (battery_level ?r) 50) ;; 회복 임계값 이상
)
:effect (...)
)
6.4 듀레이티브 액션에서의 수치 조건
(:durative-action move
:parameters (?r - robot ?from ?to - waypoint)
:duration (= ?duration (/ (distance ?from ?to) (speed ?r)))
:condition (and
(at start (>= (battery_level ?r) (* ?duration (discharge_rate ?r))))
(over all (> (battery_level ?r) 0))
)
:effect (...)
)
7. 수치 전제 조건과 휴리스틱
수치 전제 조건은 플래너의 휴리스틱 추정에 도전적인 요소이다. Metric-FF(Hoffmann, 2003)는 삭제 완화를 수치 플루언트에 확장하여, 수치 조건의 달성 비용을 추정한다. LPRPG(Coles et al., 2008)는 선형 프로그래밍을 활용하여 수치 전제 조��의 달성 가능성을 더 정밀하게 분석한다.
8. 설계 지침
- 비교 방향을 일관되게 사용하라. “자원 >= 요구량” 형태를 표준으��� 사용한다.
- 복합 산술 표현식을 과도하게 사용하지 말라. 비선형 표현식은 일부 플래너에서 지원되지 않는다.
- 임계값을 상수가 아닌 함수로 정의하라. 환경이나 로봇에 따라 임계값이 달라질 수 있으므로, 함수로 매개변수화하는 것이 유연하다.
9. 참고 문헌
- 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.