1314.6 전제 조건의 정의와 역할
1. 전제 조건의 형식적 정의
PDDL 액션 스키마에서 전제 조건(precondition)은 해당 액션이 적용 가능(applicable)한 상태를 규정하는 논리식이다. 형식적으로, 액션 a의 전제 조건 \text{pre}(a)는 상태 변수를 포함하는 논리 공식(logical formula)이며, 현재 상태 s에서 이 공식이 참으로 평가될 때에만 액션 a를 해당 상태에 적용할 수 있다:
a \text{가 상태 } s \text{에서 적용 가능} \iff s \models \text{pre}(a)
여기서 \models는 논리적 만족(satisfaction) 관계를 나타낸다. 전제 조건이 만족되지 않는 상태에서 액션을 적용하는 것은 정의되지 않으며, 플래너는 전제 조건을 만족하는 액션만을 탐색 후보로 고려한다.
PDDL 구문에서 전제 조건은 :precondition 절을 통해 명시된다:
(:action move
:parameters (?r - robot ?from - waypoint ?to - waypoint)
:precondition (and
(robot_at ?r ?from)
(connected ?from ?to)
(not (blocked ?to))
)
:effect (...)
)
2. 전제 조건의 역할
전제 조건은 자동화된 플래닝 시스템에서 다음의 네 가지 핵심적 역할을 수행한다.
2.1 액션 적용 가능성의 결정
전제 조건의 가장 기본적인 역할은 특정 상태에서 어떤 액션이 실행될 수 있는지를 결정하는 것이다. 플래너가 상태 공간을 탐색할 때, 각 상태에서 적용 가능한 액션의 집합은 전제 조건 평가를 통해 결정된다:
\text{applicable}(s) = \{a \in \mathcal{A}_{\text{ground}} \mid s \models \text{pre}(a)\}
여기서 \mathcal{A}_{\text{ground}}는 모든 그라운드 액션의 집합이다. 이 집합의 크기가 탐색의 분기 요인(branching factor)을 결정한다.
2.2 계획의 정당성 보장
계획(plan) \pi = \langle a_1, a_2, \ldots, a_n \rangle이 정당(valid)하려면, 각 액션 a_i가 이전 액션들을 순차적으로 적용한 결과 상태에서 적용 가능해야 한다:
s_0 \models \text{pre}(a_1), \quad s_1 \models \text{pre}(a_2), \quad \ldots, \quad s_{n-1} \models \text{pre}(a_n)
여기서 s_i = \gamma(s_{i-1}, a_i)는 상태 전이 함수에 의한 결과 상태이다. 전제 조건은 이 정당성 조건의 핵심 요소로서, 실행 불가능한 액션 시퀀스가 계획으로 채택되는 것을 방지한다.
2.3 도메인 모델의 정확성 확보
전제 조건은 도메인의 물리적, 논리적 제약을 형식적으로 표현하는 수단이다. 로봇 도메인에서 전제 조건은 로봇이 물리적으로 수행 가능한 행동의 조건을 추상적으로 모델링한다:
- 물리적 제약: 로봇이 특정 위치에 있어야 이동할 수 있다, 그리퍼가 비어 있어야 물체를 집을 수 있다.
- 논리적 제약: 두 위치가 연결되어 있어야 이동 가능하다, 물체가 특정 위치에 존재해야 집을 수 있다.
- 안전 제약: 경로가 차단되지 않아야 이동 가능하다, 배터리가 충분해야 작업을 수행할 수 있다.
2.4 휴리스틱 정보의 제공
현대의 플래너들은 전제 조건 정보를 분석하여 탐색을 유도하는 휴리스틱(heuristic)을 구성한다. 대표적인 예로, 삭제 완화 휴리스틱(delete relaxation heuristic)은 효과의 삭제 부분을 무시한 완화 문제(relaxed problem)에서 각 전제 조건 리터럴을 달성하는 데 필요한 비용을 추정한다(Hoffmann & Nebel, 2001). 전제 조건의 구조가 이러한 휴리스틱의 정보성(informativeness)에 직접적으로 영향을 미친다.
3. PDDL 버전별 전제 조건의 표현력
PDDL의 요구사항 체계에 따라, 도메인에서 사용할 수 있는 전제 조건의 논리적 복잡도가 결정된다.
3.1 STRIPS 전제 조건
:strips 요구사항 하에서 전제 조건은 긍정적 리터럴(positive literal)의 접합(conjunction)으로 제한된다:
;; STRIPS 전제 조건: 긍정적 리터럴의 접합만 허용
:precondition (and
(robot_at ?r ?from)
(connected ?from ?to)
)
이 제한에서는 부정(not), 선언(or), 양화사(forall, exists)를 사용할 수 없다. STRIPS 전제 조건은 계산적으로 효율적이며, 상태에서의 만족 여부 판단이 집합 포함(subset) 검사로 단순화된다:
s \models \text{pre}(a) \iff \text{pre}^+(a) \subseteq s
3.2 ADL 전제 조건
:adl(Action Description Language) 요구사항은 다음의 확장된 논리적 구성을 허용한다:
| 구성 요소 | 구문 | 의미 |
|---|---|---|
| 부정 | (not (p ?x)) | 술어 p가 거짓일 것을 요구 |
| 선언 | (or (p ?x) (q ?x)) | 술어 p 또는 q 중 하나 이상이 참 |
| 전칭 양화 | (forall (?x - T) (p ?x)) | 타입 T의 모든 객체에 대해 p가 참 |
| 존재 양화 | (exists (?x - T) (p ?x)) | 타입 T의 객체 중 p를 만족하는 것이 존재 |
| 함축 | (imply (p ?x) (q ?x)) | p가 참이면 q도 참 |
| 동등성 | (= ?x ?y) | 두 변수가 동일한 객체에 바인딩 |
이들 구성 요소는 중첩될 수 있어, 임의의 1차 논리식에 가까운 표현력을 제공한다.
4. 전제 조건의 평가 과정
플래너가 전제 조건을 평가하는 과정은 논리식의 구조에 따라 재귀적으로 수행된다. 그라운드 액션 a의 전제 조건이 상태 s에서 만족되는지의 평가 규칙은 다음과 같다:
- 원자 술어(atomic predicate) (p \ o_1 \ o_2 \ \ldots \ o_n): 해당 술어 인스턴스가 s에 포함되어 있으면 참이다.
- 부정 (\text{not} \ \phi): \phi가 s에서 거짓이면 참이다(닫힌 세계 가정에 의해, s에 포함되지 않은 술어는 거짓으로 간주).
- 접합 (\text{and} \ \phi_1 \ \phi_2 \ \ldots \ \phi_n): 모든 \phi_i가 s에서 참이면 참이다.
- 선언 (\text{or} \ \phi_1 \ \phi_2 \ \ldots \ \phi_n): \phi_i 중 하나 이상이 s에서 참이면 참이다.
- 전칭 양화 (\text{forall} \ (?x - T) \ \phi): 타입 T의 모든 객체 o에 대해 \phi[?x/o]가 s에서 참이면 참이다.
- 존재 양화 (\text{exists} \ (?x - T) \ \phi): 타입 T의 객체 중 적어도 하나의 o에 대해 \phi[?x/o]가 s에서 참이면 참이다.
5. 로봇 도메인에서의 전제 조건 설계
로봇 공학 도메인에서 전제 조건을 설계할 때, 추상 모델과 실제 로봇 시스템 간의 간극을 적절히 관리해야 한다.
5.1 물리적 실행 가능성 조건
로봇의 물리적 능력에 기반한 전제 조건은 실행 가능성을 보장하는 핵심 요소이다:
(:action pick_up
:parameters (?r - robot ?obj - object ?loc - waypoint)
:precondition (and
(robot_at ?r ?loc) ;; 로봇이 해당 위치에 있어야 함
(object_at ?obj ?loc) ;; 물체가 해당 위치에 있어야 함
(gripper_free ?r) ;; 그리퍼가 비어 있어야 함
(reachable ?r ?obj) ;; 물체가 도달 가능 범위 내에 있어야 함
(not (too_heavy ?obj ?r)) ;; 물체가 로봇의 적재 용량 이내여야 함
)
:effect (...)
)
5.2 안전 관련 전제 조건
로봇 시스템의 안전 요구사항을 전제 조건으로 표현하여, 위험한 행동이 계획에 포함되지 않도록 할 수 있다:
(:action enter_zone
:parameters (?r - robot ?zone - restricted_zone)
:precondition (and
(robot_near ?r ?zone)
(zone_cleared ?zone) ;; 구역이 안전 확인됨
(not (human_present ?zone)) ;; 해당 구역에 사람이 없음
(safety_check_passed ?r) ;; 안전 점검 통과
)
:effect (robot_in_zone ?r ?zone)
)
5.3 전제 조건의 과잉 명세와 과소 명세
전제 조건이 과잉 명세(over-specification)되면 플래너가 유효한 계획을 찾지 못하거나 불필요하게 긴 계획을 생성할 수 있다. 반대로 전제 조건이 과소 명세(under-specification)되면 실행 시 실패하는 계획이 생성될 수 있다. 적절한 전제 조건의 수준은 도메인의 추상화 수준과 실행 시스템의 오류 처리 능력에 따라 결정된다.
전제 조건은 PDDL 수준에서 모델링할 수 있는 조건만을 포함해야 한다. 센서 정확도, 조작 정밀도 등 연속적인 물리량에 의존하는 조건은 PDDL의 이산적 술어 모델로 정확히 표현하기 어려우므로, 실행 수준에서의 검증으로 보완해야 한다.
6. 참고 문헌
- Ghallab, M., Nau, D., & Traverso, P. (2004). Automated Planning: Theory and Practice. Morgan Kaufmann.
- Hoffmann, J. & Nebel, B. (2001). “The FF Planning System: Fast Plan Generation Through Heuristic Search.” Journal of Artificial Intelligence Research, 14, 253–302.
- Haslum, P., Lipovetzky, N., Magazzeni, D., & Muise, C. (2019). An Introduction to the Planning Domain Definition Language. Morgan & Claypool Publishers.
- Pednault, E. P. D. (1989). “ADL: Exploring the Middle Ground Between STRIPS and the Situation Calculus.” Proceedings of the 1st International Conference on Principles of Knowledge Representation and Reasoning (KR), 324–332.