1314.33 연속 효과와 이산 효과의 구분

1. 이산 효과의 정의

이산 효과(discrete effect)는 특정 시점에 상태가 불연속적으로 변경되는 효과이다. PDDL의 고전적 액션에서의 모든 효과와 듀레이티브 액션의 at start, at end 효과가 이산 효과에 해당한다. 이산 효과는 적용 시점 전후로 상태가 즉시 변환되며, 중간 상태가 존재하지 않는다.

;; 이산 효과의 예시
:effect (and
    (at start (not (robot_at ?r ?from)))   ;; 시작 시 즉시 위치 변경
    (at end (robot_at ?r ?to))              ;; 종료 시 즉시 위치 설정
)

형식적으로, 이산 효과는 디랙 델타 함수(Dirac delta function)에 비유할 수 있다. 상태 변수의 값이 특정 시점에서 불연속적으로 변화한다:

v(t^+) \neq v(t^-)

여기서 t^-t^+는 각각 시점 t 직전과 직후의 상태를 나타낸다.

2. 연속 효과의 개념

연속 효과(continuous effect)는 시간에 따라 상태 변수가 지속적으로 변화하는 효과이다. 표준 PDDL 2.1에서는 연속 효과를 직접적으로 지원하지 않지만, PDDL+에서 프로세스(:process) 구문을 통해 모델링할 수 있다(Fox & Long, 2006).

연속 효과의 전형적인 예시:

  • 배터리 잔량의 점진적 감소
  • 연료의 지속적 소모
  • 온도의 연속적 변화
  • 위치의 연속적 이동
;; PDDL+의 프로세스 구문 (연속 효과)
(:process battery_discharge
    :parameters (?r - robot)
    :precondition (moving ?r)
    :effect (decrease (battery_level ?r) (* #t 0.5))
)

여기서 #t는 연속적인 시간 변화율을 나타내는 특수 변수이다.

3. PDDL 2.1에서의 연속 효과 근사

PDDL 2.1은 연속 효과를 직접 지원하지 않지만, 듀레이티브 액션의 at end 수치 효과를 통해 근사적으로 모델링할 수 있다:

(:durative-action move
    :parameters (?r - robot ?from - waypoint ?to - waypoint)
    :duration (= ?duration (/ (distance ?from ?to) (speed ?r)))
    :condition (and
        (at start (robot_at ?r ?from))
        (over all (>= (battery_level ?r) 0))
    )
    :effect (and
        (at start (not (robot_at ?r ?from)))
        (at end (robot_at ?r ?to))
        ;; 연속적 배터리 감소를 종료 시점의 이산적 감소로 근사
        (at end (decrease (battery_level ?r)
            (* ?duration (discharge_rate ?r))
        ))
    )
)

이 근사에서 배터리는 이동 종료 시점에 한 번에 감소하지만, 감소량은 지속 시간에 비례하여 계산된다. 실제로는 이동 중 연속적으로 감소하지만, 총 소모량은 동일하다.

이 근사의 한계는 over all 조건에서 배터리 잔량을 정확히 추적할 수 없다는 것이다. 이동 중간에 배터리가 부족해지는 상황을 감지하지 못하고, 종료 시점에서야 감소가 반영된다.

4. 연속 효과와 이산 효과의 비교

특성이산 효과연속 효과
변화 시점특정 시점시간 구간 전체
변화 형태불연속적 전환연속적 변화
PDDL 지원모든 버전PDDL+
상태 변수 유형논리적 술어, 수치 값수치 값
플래너 지원광범위제한적 (SMTPlan 등)
로봇 응용논리적 상태 전환물리적 연속 프로세스

5. 로봇 도메인에서의 구분 기준

5.1 이산 효과로 모델링해야 하는 상태 변화

  • 로봇의 위치 변경 (한 웨이포인트에서 다른 웨이포인트로)
  • 물체의 파지/방출
  • 모드 전환 (대기 → 활성, 자율 → 수동)
  • 태스크의 완료/실패 상태
  • 센서의 활성화/비활성화

5.2 연속 효과가 적합한 상태 변화

  • 배터리 잔량의 변화
  • 연료 소모
  • 온도 변화
  • 로봇의 연속적 위치 변화 (세밀한 모션 수준)
  • 환경 조건의 점진적 변화

5.3 실용적 설계 권장사항

실제 로봇 도메인 설계에서는 연속적인 물리 프로세스를 이산 효과로 적절히 추상화하는 것이 일반적이다. 이 추상화의 수준은 플래닝의 목적과 필요한 정밀도에 따라 결정된다:

;; 추상화 수준 1: 이진 배터리 상태 (매우 추상적)
(battery_sufficient ?r)  ;; 참 또는 거짓

;; 추상화 수준 2: 이산 배터리 레벨
(battery_level_high ?r)
(battery_level_medium ?r)
(battery_level_low ?r)

;; 추상화 수준 3: 수치 플루언트 (PDDL 2.1)
(battery_level ?r)  ;; 실수 값

;; 추상화 수준 4: 연속 프로세스 (PDDL+)
(:process battery_drain ...)

대부분의 PlanSys2 기반 시스템에서는 추상화 수준 1 또는 2가 사용되며, 수치 플루언트가 필요한 경우 추상화 수준 3을 적용한다.

6. 참고 문헌

  • Fox, M. & Long, D. (2003). “PDDL2.1: An Extension to PDDL for Expressing Temporal Planning Domains.” Journal of Artificial Intelligence Research, 20, 61–124.
  • Fox, M. & Long, D. (2006). “Modelling Mixed Discrete-Continuous Domains for Planning.” Journal of Artificial Intelligence Research, 27, 235–297.
  • Haslum, P., Lipovetzky, N., Magazzeni, D., & Muise, C. (2019). An Introduction to the Planning Domain Definition Language. Morgan & Claypool Publishers.