1314.30 듀레이티브 액션의 시작, 진행, 종료 조건

1314.30 듀레이티브 액션의 시작, 진행, 종료 조건

1. 시간 조건의 세 가지 유형

PDDL 2.1의 듀레이티브 액션에서 조건(condition)은 시간 주석(temporal annotation)에 따라 at start, over all, at end의 세 가지 유형으로 분류된다. 각 유형은 액션의 생명 주기에서 서로 다른 시점에 평가되며, 이를 통해 액션 실행의 시간적 제약을 정밀하게 명세할 수 있다(Fox & Long, 2003).

2. at start 조건

at start 조건은 액션의 시작 시점 t_s에서만 평가되는 조건이다. 이 조건이 시작 시점에 참이어야 액션이 개시될 수 있다:

s(t_s) \models \phi_{\text{start}}

:condition (and
    (at start (robot_at ?r ?from))        ;; 시작 시 로봇이 출발지에 있어야 함
    (at start (connected ?from ?to))       ;; 시작 시 경로가 연결되어 있어야 함
    (at start (gripper_free ?r))           ;; 시작 시 그리퍼가 비어 있어야 함
)

at start 조건은 고전적 액션의 전제 조건과 가장 유사한 역할을 수행한다. 액션의 시작 여부를 결정하는 게이트(gate) 조건으로 기능하며, 시작 이후에는 더 이상 확인되지 않는다.

at start 효과가 동시에 적용되므로, at start 조건에서 확인한 술어가 at start 효과에 의해 즉시 변경될 수 있다:

:condition (at start (robot_at ?r ?from))
:effect (at start (not (robot_at ?r ?from)))
;; 시작 시점에서 조건 확인 후 즉시 효과 적용

3. over all 조건

over all 조건은 액션의 전체 실행 구간 [t_s, t_e] 동안 지속적으로 유지되어야 하는 불변 조건(invariant condition)이다:

\forall t \in [t_s, t_e]: s(t) \models \phi_{\text{overall}}

:condition (and
    (over all (battery_sufficient ?r))     ;; 이동 중 배터리가 충분해야 함
    (over all (not (emergency_stop)))       ;; 실행 중 비상 정지가 아니어야 함
    (over all (robot_operational ?r))       ;; 실행 중 로봇이 작동 상태여야 함
)

over all 조건의 핵심적 의미는, 다른 병렬 실행 중인 액션의 효과에 의해 이 조건이 위반되면 안 된다는 것이다. 예를 들어, 로봇이 이동 중(over all (battery_sufficient ?r))일 때 다른 액션이 배터리를 소모하여 (battery_sufficient ?r)을 삭제하면, 이동 액션의 불변 조건이 위반된다.

실제 플래너에서 over all 조건의 연속적 유지를 정확히 검증하는 것은 비자명한 문제이다. 대부분의 시간 플래너는 이산적 시점(다른 액션의 시작/종료 시점)에서만 불변 조건을 검사하는 근사적 방법을 사용한다.

4. at end 조건

at end 조건은 액션의 종료 시점 t_e에서만 평가되는 조건이다. 이 조건이 종료 시점에 참이어야 액션이 성공적으로 완료된다:

s(t_e) \models \phi_{\text{end}}

:condition (and
    (at end (path_clear ?to))              ;; 종료 시 도착지가 장애물 없어야 함
    (at end (docking_ready ?station))       ;; 종료 시 도킹 스테이션이 준비 상태여야 함
)

at end 조건은 액션 실행 중에 다른 액션의 효과에 의해 달성될 수 있다. 이는 병렬 실행되는 액션 간의 동기화(synchronization)를 가능하게 한다.

5. 세 조건 유형의 비교

특성at startover allat end
평가 시점시작 시점 t_s전 구간 [t_s, t_e]종료 시점 t_e
역할시작 허가실행 유지완료 허가
위반 시 결과액션 시작 불가액션 중단액션 완료 불가
병렬 액션의 영향시작 전 상태에 의존실행 중 상태에 의존종료 시 상태에 의존

6. 조건 유형 선택의 설계 지침

6.1 at start에 배치해야 하는 조건

액션 개시에 필수적이며, 시작 효과에 의해 즉시 변경될 수 있는 조건이다:

  • 로봇의 현재 위치 (이동 시작과 동시에 변경)
  • 그리퍼의 가용 상태 (파지 시작과 동시에 변경)
  • 자원의 가용성 (사용 시작과 동시에 잠금)

6.2 over all에 배치해야 하는 조건

액션 실행 전 구간에 걸쳐 유지되어야 하는 안전 및 운영 조건이다:

  • 배터리 충분성 (이동 중 지속 확인)
  • 통신 연결 상태 (원격 조작 중 지속 확인)
  • 비상 정지 부재 (모든 작업 중 지속 확인)
  • 환경 안전 조건 (위험 물질 작업 중 지속 확인)

6.3 at end에 배치해야 하는 조건

액션 완료 시점에 성립해야 하며, 실행 중 다른 액션에 의해 준비될 수 있는 조건이다:

  • 도착지의 수용 가능성 (다른 로봇이 이동 중 비켜줌)
  • 수신 장치의 준비 상태 (병렬로 준비 작업 진행)

7. 실용적 예시: 다중 로봇 협력 시나리오

(:durative-action transport_object
    :parameters (?r - robot ?obj - object ?from - waypoint ?to - waypoint)
    :duration (= ?duration (travel_time ?from ?to))
    :condition (and
        ;; 시작 조건: 로봇과 물체가 같은 위치
        (at start (robot_at ?r ?from))
        (at start (holding ?r ?obj))
        (at start (connected ?from ?to))
        ;; 지속 조건: 운송 중 안전
        (over all (not (emergency_stop)))
        (over all (battery_sufficient ?r))
        ;; 종료 조건: 도착지 수용 가능
        (at end (not (occupied ?to)))
    )
    :effect (and
        (at start (not (robot_at ?r ?from)))
        (at start (occupied_path ?from ?to))
        (at end (robot_at ?r ?to))
        (at end (not (occupied_path ?from ?to)))
    )
)

8. 참고 문헌

  • Fox, M. & Long, D. (2003). “PDDL2.1: An Extension to PDDL for Expressing Temporal Planning Domains.” Journal of Artificial Intelligence Research, 20, 61–124.
  • Coles, A. J., Coles, A. I., Fox, M., & Long, D. (2010). “Forward-Chaining Partial-Order Planning.” Proceedings of the International Conference on Automated Planning and Scheduling (ICAPS), 42–49.
  • Haslum, P., Lipovetzky, N., Magazzeni, D., & Muise, C. (2019). An Introduction to the Planning Domain Definition Language. Morgan & Claypool Publishers.