:conditional-effects 요구사항 (:conditional-effects Requirement)

:conditional-effects 요구사항 (:conditional-effects Requirement)

1. 개요

:conditional-effects 요구사항은 행동의 효과가 특정 조건에 따라 선택적으로 적용되도록 하는 (when ...) 표현을 허용한다. 이에 의해 동일한 행동이 상태에 따라 다른 결과를 생성할 수 있다.

2. 구문

(:requirements :strips :typing :conditional-effects)

3. 조건부 효과의 사용

3.1 기본 형태

:effect (and
  (on ?obj ?dest)
  (not (holding ?r ?obj))
  (when (fragile ?obj)
        (damaged ?obj)))         ; 깨지기 쉬우면 손상됨

(when 조건 효과) 구조에서, 조건이 참인 경우에만 효과가 적용된다.

3.2 전칭 조건부 효과

:effect (forall (?x - item)
         (when (in ?x ?container)
               (not (in ?x ?container))))  ; 컨테이너 내 모든 물체 제거

4. 로봇 도메인에서의 활용

조건부 효과의미
(when (fragile ?o) (damaged ?o))깨지기 쉬운 물체면 손상
(when (heavy ?o) (decrease (battery ?r) 2))무거운 물체면 배터리 추가 소모
(when (at_charger ?r) (charged ?r))충전기 위치면 충전

5. 조건부 효과 없이의 대안

조건부 효과를 사용하지 않으면, 조건에 따라 별도의 행동을 정의하여야 한다.

; 조건부 효과 대안: 별도 행동
(:action place-fragile ...)
(:action place-robust ...)

이는 행동의 수를 증가시키므로, :conditional-effects가 더 간결하다.

6. 참고 문헌

  • McDermott, D., et al. (1998). “PDDL — The Planning Domain Definition Language.”
  • Pednault, E. (1989). “ADL: Exploring the Middle Ground Between STRIPS and the Situation Calculus.” KR 1989.

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