:typing 요구사항과 타입 시스템 (:typing Requirement and the Type System)

:typing 요구사항과 타입 시스템 (:typing Requirement and the Type System)

1. 개요

:typing 요구사항은 PDDL에서 객체의 타입(type) 분류 체계를 활성화하여, 행동의 매개변수를 특정 타입의 객체로 제한한다. 이에 의해 인스턴스화(grounding) 시 생성되는 행동의 수를 줄이고, 도메인 모델의 의미론적 명확성을 높인다.

2. 타입 선언

2.1 기본 타입

(:types robot location item)

세 가지 타입이 정의되며, 모든 타입은 암묵적으로 최상위 타입 object의 하위 타입이다.

2.2 계층적 타입

(:types
  robot - object
  location - object
  warehouse office corridor - location    ; location의 하위 타입
  heavy_item light_item - item)            ; item의 하위 타입

하위 타입의 객체는 상위 타입의 매개변수에도 적용 가능하다. warehouse 타입의 객체는 location 타입의 매개변수에 대입될 수 있다.

3. 타입의 활용

3.1 매개변수 타입 제약

(:action move
  :parameters (?r - robot ?from ?to - location)
  ...)

?r에는 robot 타입의 객체만, ?from?to에는 location 타입의 객체만 대입된다.

3.2 술어의 타입 제약

(:predicates
  (at ?r - robot ?l - location)
  (holding ?r - robot ?i - item))

3.3 인스턴스화 축소 효과

:typing이 없으면 모든 객체가 모든 매개변수에 대입될 수 있어, 인스턴스화된 행동의 수가 O(n^k)이다. 타입에 의해 각 매개변수에 대입 가능한 객체가 제한되므로, 인스턴스화 수가 현저히 감소한다.

타입 없음타입 있음
O(n^k)O(n_1 \times n_2 \times \ldots \times n_k)

여기서 n_ii번째 매개변수의 타입에 해당하는 객체 수이다.

4. 설계 지침

  1. 적절한 세분화: 과도하게 세분화된 타입은 유지보수를 어렵게 한다.
  2. 계층 활용: 공통 특성을 상위 타입으로 추상화한다.
  3. PlanSys2 호환: PlanSys2에서 :typing은 거의 필수적으로 사용된다.

5. 참고 문헌

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

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