:disjunctive-preconditions 요구사항 (:disjunctive-preconditions Requirement)
1. 개요
:disjunctive-preconditions 요구사항은 행동의 전제 조건에서 분리(disjunction, OR) 표현을 허용한다. 이에 의해 “조건 A 또는 조건 B가 충족되면“이라는 대안적 전제 조건을 표현할 수 있다.
2. 구문
(:requirements :strips :typing :disjunctive-preconditions)
3. 분리 전제 조건의 사용
(:action enter_room
:parameters (?r - robot ?room - location)
:precondition (and
(adjacent ?r ?room)
(or (door_open ?room) ; 문이 열려 있거나
(has_key ?r ?room))) ; 열쇠를 가지고 있는 경우
:effect (at ?r ?room))
(or ...) 표현에 의해 두 조건 중 하나만 충족되어도 행동이 적용 가능하다.
4. 로봇 도메인에서의 활용
| 분리 전제 조건 | 의미 |
|---|---|
(or (door_open ?r) (has_key ?r)) | 문이 열려 있거나 열쇠가 있음 |
(or (charged ?r) (near_charger ?r)) | 충전되었거나 충전기 근처 |
(or (gripper_empty ?r) (can_dual_hold ?r)) | 그리퍼가 비었거나 이중 파지 가능 |
5. 계획기 호환성
대부분의 현대 계획기(FF, Fast Downward, LAMA, POPF)가 :disjunctive-preconditions를 지원한다. 그러나 분리 전제 조건은 계획기의 휴리스틱 정확도를 저하시킬 수 있으므로, 가능하면 별도의 행동으로 분리하는 것이 효율적일 수 있다.
6. 참고 문헌
- McDermott, D., et al. (1998). “PDDL — The Planning Domain Definition Language.”
| 버전 | 날짜 | 변경 사항 |
|---|---|---|
| v0.1 | 2026-04-05 | 초안 작성 |