전제 조건의 논리적 표현 (Logical Representation of Preconditions)

전제 조건의 논리적 표현 (Logical Representation of Preconditions)

1. 개요

PDDL 액션의 :precondition 절은 행동이 실행 가능하기 위해 현재 상태에서 충족되어야 하는 논리적 조건을 정의한다. 사용 가능한 논리 연산자는 :requirements에 선언된 기능 수준에 의해 결정된다.

2. 기본 전제 조건 (:strips)

양의 명제의 결합(conjunction)만 허용한다.

:precondition (and
  (at ?r ?from)
  (connected ?from ?to)
  (gripper_empty ?r))

3. 확장된 전제 조건

3.1 부정 (:negative-preconditions)

:precondition (and
  (at ?r ?from)
  (not (blocked ?from ?to)))

3.2 분리 (:disjunctive-preconditions)

:precondition (and
  (at ?r ?room)
  (or (door_open ?room)
      (has_key ?r ?room)))

3.3 양화사

; 전칭 양화사: 모든 위치에 대해 조건 확인
:precondition (forall (?l - location) (not (danger ?l)))

; 존재 양화사: 어떤 물체에 대해 조건 확인
:precondition (exists (?o - item) (on ?o ?shelf))

3.4 수치 비교 (:fluents)

:precondition (and
  (at ?r ?from)
  (>= (battery-level ?r) (distance ?from ?to)))

4. 전제 조건의 평가

현재 상태 s에서 전제 조건 \text{pre}(a)가 충족되면 행동 a가 적용 가능하다.

a \text{ is applicable in } s \iff s \models \text{pre}(a)

참고 문헌

  • McDermott, D., et al. (1998). “PDDL — The Planning Domain Definition Language.”
  • Ghallab, M., Nau, D., & Traverso, P. (2016). Automated Planning and Acting. Cambridge University Press.

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