:negative-preconditions 요구사항 (:negative-preconditions Requirement)

:negative-preconditions 요구사항 (:negative-preconditions Requirement)

1. 개요

:negative-preconditions 요구사항은 행동의 전제 조건에서 부정(negation) 표현을 허용한다. 기본 :strips에서는 양��� 명제만 전제 조건에 사용할 수 있으나, 이 요구사항을 추가하면 (not (p ?x)) 형태의 부정 전제 조건을 사용할 수 있다.

2. 구문

(:requirements :strips :typing :negative-preconditions)

3. 부정 전제 조건의 사용

3.1 양의 전제 조건만 (:strips)

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

3.2 부정 전제 조건 포함

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

(not (blocked ?from ?to))는 “경로가 차단되지 ���았음“을 ���제 조건으로 요구한다.

4. 로봇 도메인에서의 활용

부정 전제 조건의미
(not (blocked ?from ?to))경로가 차단되지 않음
(not (holding ?r ?any))로봇이 아무것도 잡고 있지 않음
(not (occupied ?loc))위치가 점유되지 않음
(not (battery_low ?r))배터리가 부족하지 않음

5. 폐쇄 세계 가정과의 관계

폐쇄 세계 가정(CWA)에 의해, 초기 상태에 명시적으로 선언되지 않은 명제는 거��이다. 따라서 (not (blocked A B))는 초기 상태에 (blocked A B)가 선언되지 않았으면 참이다.

6. 대안: 부정 술어의 도입

:negative-preconditions를 사용하지 않고, 부정 의미를 가지는 별도 술어를 도입하는 방법이 있다.

; 대안: 별도 술어 사용
(:predicates (path_clear ?l1 ?l2 - location))

; negative-preconditions 사용
(not (blocked ?l1 ?l2))

전자는 초기 상태에서 (path_clear A B)를 명시적으로 선언하여야 하므로 번거롭다. :negative-preconditions가 더 간결하다.

7. 참고 문헌

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

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