:equality 요구사항과 동등성 검사 (:equality Requirement and Equality Checking)

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