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 start | over all | at 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.