전제 조건과 효과 기반 행동 표현 (Action Representation Based on Preconditions and Effects)

전제 조건과 효과 기반 행동 표현 (Action Representation Based on Preconditions and Effects)

1. 개요

전제 조건(precondition)과 효과(effect) 기반 행동 표현은 자율 계획에서 행동을 형식적으로 기술하는 핵심 메커니즘이다. 각 행동은 실행을 위해 충족되어야 하는 전제 조건과 실행 후 세계 상태에 미치는 효과로 정의되며, 이 쌍에 의해 계획기가 행동의 적용 가능성과 결과를 추론한다.

2. 전제 조건 (Preconditions)

2.1 정의

전제 조건은 행동이 실행 가능하기 위해 현재 상태에서 참이어야 하는 명제의 집합이다.

\text{pre}(a) = \{p_1, p_2, \ldots, p_j\}

행동 a는 상태 s에서 \text{pre}(a) \subseteq s인 경우에만 적용 가능하다.

PDDL에서의 표현

(:action pick
  :parameters (?r - robot ?o - object ?l - location)
  :precondition (and (at ?r ?l)
                     (on ?o ?l)
                     (not (holding ?r ?o))))

전제 조건의 역할

  1. 행동 필터링: 현재 상태에서 적용 불가능한 행동을 제거한다.
  2. 탐색 공간 축소: 유효하지 않은 행동 시퀀스를 사전에 배제한다.
  3. 도메인 물리학 반영: 로봇의 물리적 제약(예: 물체를 집으려면 해당 위치에 있어야 함)을 인코딩한다.

효과 (Effects)

정의

효과는 행동 실행 후 상태에 적용되는 변화이다. 추가 효과(add effects)와 삭제 효과(delete effects)로 구분된다.

\text{eff}^+(a) = \text{참이 되는 명제의 집합}
\text{eff}^-(a) = \text{거짓이 되는 명제의 집합}

상태 전이

\gamma(s, a) = (s \setminus \text{eff}^-(a)) \cup \text{eff}^+(a)

2.2 PDDL에서의 표현

(:action pick
  :parameters (?r - robot ?o - object ?l - location)
  :effect (and (holding ?r ?o)         ; 추가 효과
               (not (on ?o ?l))))      ; 삭제 효과

3. 전제 조건-효과 체인

계획은 행동의 효과가 후속 행동의 전제 조건을 충족시키는 체인으로 구성된다.

초기: {at(r, A), on(box, B)}

move(r, A, B):
  pre: {at(r, A)} ✓
  eff: {at(r, B), ¬at(r, A)}

pick(r, box, B):
  pre: {at(r, B), on(box, B)} ✓
  eff: {holding(r, box), ¬on(box, B)}

move(r, B, C):
  pre: {at(r, B)} ✓
  eff: {at(r, C), ¬at(r, B)}

place(r, box, C):
  pre: {at(r, C), holding(r, box)} ✓
  eff: {on(box, C), ¬holding(r, box)}

최종: {at(r, C), on(box, C)} → 목표 달성

4. 조건부 효과 (Conditional Effects)

PDDL의 확장 기능인 조건부 효과는 특정 조건이 충족될 때에만 효과가 적용된다.

(:effect (when (fragile ?o) (broken ?o)))

5. 로봇 공학에서의 전제 조건-효과 매핑

로봇 행동전제 조건추가 효과삭제 효과
이동(A→B)at(robot, A), connected(A, B)at(robot, B)at(robot, A)
집기(object)at(robot, loc), on(object, loc)holding(robot, object)on(object, loc)
놓기(object)at(robot, loc), holding(robot, object)on(object, loc)holding(robot, object)
충전at(robot, charger)charged(robot)low_battery(robot)

6. 참고 문헌

  • Ghallab, M., Nau, D., & Traverso, P. (2016). Automated Planning and Acting. Cambridge University Press.
  • Fikes, R., & Nilsson, N. (1971). “STRIPS: A New Approach to the Application of Theorem Proving to Problem Solving.” Artificial Intelligence, 2(3-4), 189-208.

버전날짜변경 사항
v0.12026-04-05초안 작성