and, or, not 논리 연산자의 활용 (Usage of and, or, not Logical Operators)

and, or, not 논리 연산자의 활용 (Usage of and, or, not Logical Operators)

1. 개요

PDDL의 전제 조건과 목표 조건에서 and, or, not 논리 연산자를 사용하여 복합 조건을 표현한다. 각 연산자의 사용 가능 여부는 :requirements에 의해 결정된다.

2. and 연산자

모든 하위 조건이 참이어야 전체가 참이다. :strips에서 기본 지원된다.

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

3. not 연산자

하위 조건의 부정이다. :negative-preconditions 요구.

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

효과에서의 not은 삭제 효과를 나타내며, :strips에서도 사용 가능하다.

:effect (and
  (at ?r ?to)
  (not (at ?r ?from)))  ; 이전 위치에서 제거

4. or 연산자

하위 조건 중 하나 이상이 참이면 전체가 참이다. :disjunctive-preconditions 요구.

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

5. 중첩 사용

:precondition (and
  (at ?r ?from)
  (or (connected ?from ?to)
      (and (has_teleporter ?r)
           (teleport_pad ?from)
           (teleport_pad ?to)))
  (not (blocked ?from ?to)))

6. 연산자 요약

연산자의미:requirements
(and ...)논리 AND:strips (기본)
(not ...)논리 NOT (전제 조건):negative-preconditions
(not ...)삭제 효과:strips (기본)
(or ...)논리 OR:disjunctive-preconditions

7. 참고 문헌

  • McDermott, D., et al. (1998). “PDDL — The Planning Domain Definition Language.”

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