PDDL 문법의 기본 구조 (Basic Syntax Structure of PDDL)

PDDL 문법의 기본 구조 (Basic Syntax Structure of PDDL)

1. 개요

PDDL의 문법은 Lisp의 S-Expression(S-표현식)에 기반하며, 괄호로 구분된 중첩 리스트 구조를 사용한다. 모든 PDDL 파일은 (define ...) 최상위 표현식으로 시작하며, 키워드 접두어 :를 통해 각 구성 요소를 식별한다.

2. S-Expression 기반 구문

2.1 기본 형태

(키워드 인자1 인자2 ...)

모든 PDDL 요소는 괄호로 감싸진 리스트이며, 첫 번째 요소가 키워드 또는 연산자이다.

2.2 중첩 구조

(and
  (at ?robot ?from)
  (not (blocked ?from ?to))
  (or (has_key ?robot)
      (door_open ?from ?to)))

논리 연산(and, or, not)은 중첩된 S-Expression으로 표현된다.

3. 도메인 파일의 문법 구조

(define (domain 이름)
  (:requirements ...)
  (:types ...)
  (:constants ...)
  (:predicates ...)
  (:functions ...)
  (:action 이름 ...)
  (:durative-action 이름 ...))

3.1 순서 규약

도메인 파일 내의 선언 순서는 일반적으로 :requirements:types:constants:predicates:functions:action이다.

4. 문제 파일의 문법 구조

(define (problem 이름)
  (:domain 도메인이름)
  (:objects ...)
  (:init ...)
  (:goal ...)
  (:metric ...))

5. PDDL 명명 규칙

요소규칙예시
도메인 이름소문자, 하이픈 구분robot-delivery
변수? 접두어?robot, ?from, ?to
타입소문자robot, location, object
술어소문자, 하이픈 구분at, gripper-empty
행동소문자, 하이픈 구분move, pick-up
키워드: 접두어:requirements, :action

6. 주석

PDDL에서 주석은 세미콜론(;)으로 시작한다.

; 이 행동은 로봇을 한 위치에서 다른 위치로 이동시킨다
(:action move
  :parameters (?r - robot ?from ?to - location)
  ...)

7. 참고 문헌

  • McDermott, D., et al. (1998). “PDDL — The Planning Domain Definition Language.”
  • Ghallab, M., Nau, D., & Traverso, P. (2016). Automated Planning and Acting. Cambridge University Press.

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