1315.18 수치 전제 조건에서의 함수 활용

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. 설계 지침

  1. 비교 방향을 일관되게 사용하라. “자원 >= 요구량” 형태를 표준으��� 사용한다.
  2. 복합 산술 표현식을 과도하게 사용하지 말라. 비선형 표현식은 일부 플래너에서 지원되지 않는다.
  3. 임계값을 상수가 아닌 함수로 정의하라. 환경이나 로봇에 따라 임계값이 달라질 수 있으므로, 함수로 매개변수화하는 것이 유연하다.

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.