: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.1 | 2026-04-05 | 초안 작성 |