:equality 요구사항과 동등성 검사 (:equality Requirement and Equality Checking)
1. 개요
:equality 요구사항은 PDDL에서 전제 조건 내에서 두 객체의 동등성(equality) 또는 비동등성(inequality)을 검사할 수 있도록 한다. 이는 동일 타입의 복수 매개변수가 서로 다른 객체를 참조하여야 하는 경우에 필수적이다.
2. 구문
2.1 동등성 검사
(= ?x ?y)
두 변수가 동일한 객체를 참조하는지를 검사한다.
2.2 비동등성 검사
(not (= ?x ?y))
두 변수가 서로 다른 객체를 참조하는지를 검사한다.
3. 활용 예시
3.1 서로 다른 위치 보장
(:action move
:parameters (?r - robot ?from ?to - location)
:precondition (and
(at ?r ?from)
(connected ?from ?to)
(not (= ?from ?to))) ; 출발지와 도착지가 다름을 보장
:effect ...)
3.2 서로 다른 로봇 참조
(:action transfer
:parameters (?r1 ?r2 - robot ?item - object ?loc - location)
:precondition (and
(not (= ?r1 ?r2)) ; 두 로봇이 서로 다름을 보장
(at ?r1 ?loc)
(at ?r2 ?loc)
(holding ?r1 ?item))
:effect ...)
4. :equality 없이의 대안
:equality를 사용하지 않는 경우, 동일 객체 참조를 방지하기 위해 별도의 술어(different ?x ?y)를 정의하고 초기 상태에서 모든 서로 다른 쌍에 대해 이를 선언하여야 한다. 이는 비효율적이며 :equality 사용이 권장된다.
5. 참고 문헌
- McDermott, D., et al. (1998). “PDDL — The Planning Domain Definition Language.”
| 버전 | 날짜 | 변경 사항 |
|---|---|---|
| v0.1 | 2026-04-05 | 초안 작성 |