1315.33 파생 술어와 일반 술어의 차이
1. 핵심 차이점
파생 술어(derived predicate)와 일반 술어(base predicate)는 PDDL 도메인에서 모두 상태의 논리적 속성을 표현하지만, 정의 방식, 값 결정 메커니즘, 사용 가능한 위치에서 근본적인 차이가 있다.
2. 비교 분석
| 특성 | 일반 술어 (Base Predicate) | 파생 술어 (Derived Predicate) |
|---|---|---|
| 정의 | :predicates 절에서 선언 | :predicates 선언 + :derived 규칙 |
| 초기값 설정 | :init 절에서 명시적 설정 | 규칙에 의해 자동 추론 |
| 값 변경 방식 | 액션의 효과 (추가/삭제) | 기반 술어 변경 시 자동 재계산 |
| 효과에서의 사용 | 추가/삭제 가능 | 사용 불가 |
| 전제 조건에서의 사용 | 사용 가능 | 사용 가능 |
| 직접 제어 | 가능 | 불가 (간접 제어만 가능) |
| 상태 표현에서의 위치 | 상태 집합의 원소 | 규칙 평가 후 추론됨 |
| 프레임 가정 적용 | 적용됨 | 적용되지 않음 (매번 재계산) |
3. 값 결정 메커니즘의 차이
3.1 일반 술어
일반 술어의 값은 명시적으로 결정된다:
- 초기 상태:
:init절에 포함되면 참, 미포함이면 거짓 (CWA) - 액션 적용: 추가 효과에 의해 참으로, 삭제 효과에 의해 거짓으로 전환
- 프레임 가정: 효과에 명시되지 않으면 이전 값 유지
;; 초기: (robot_at robot1 wp1) → 참
;; move 적용: (not (robot_at robot1 wp1)) → 거짓으로 전환
;; (robot_at robot1 wp2) → 참으로 전환
3.2 파생 술어
파생 술어의 값은 규칙에 의해 자동으로 결정된다:
- 초기 상태: 설정 불필요 (규칙이 결정)
- 액션 적용: 직접 변경 불가. 기반 술어가 변경되면 자동 재계산
- 프레임 가정: 적용되지 않음. 매 상태에서 규칙 평가로 재결정
;; zone_safe는 기반 술어에 의해 자동 결정
(:derived (zone_safe ?z - zone)
(and (not (hazard_present ?z)) (emergency_system_active ?z)))
;; hazard_present가 삭제되면 zone_safe가 자동으로 참이 됨
;; 별도의 "zone을 안전하게 만드는" 액션이 필요 없음
4. 사용 가능한 위치의 차이
4.1 전제 조건
두 유형 모두 전제 조건에서 사용 가능하다:
;; 일반 술어: 전제 조건에서 사용
:precondition (robot_at ?r ?loc)
;; 파생 술어: 전제 조건에서 사용
:precondition (zone_safe ?loc)
4.2 효과
일반 술어만 효과에서 사용 가능하다:
;; 일반 술어: 효과에서 변경 가능
:effect (and (not (robot_at ?r ?from)) (robot_at ?r ?to))
;; 파생 술어: 효과에서 사용 불가 (오류)
;; :effect (zone_safe ?loc) ← 오류
파생 술어의 값을 변경하려면 해당 파생 술어의 규칙이 참조하는 기반 술어를 변경해야 한다:
;; zone_safe를 참으로 만들려면:
;; (not (hazard_present ?z))를 달성해야 함
(:action clear_hazard
:parameters (?r - robot ?z - zone)
:effect (not (hazard_present ?z))
;; → zone_safe가 자동으로 참이 될 수 있음
)
5. 설계 선택 기준
어떤 속성을 일반 술어로 정의할지, 파생 술어로 정의할지의 판단 기준:
5.1 일반 술어로 정의해야 하는 경우
- 액션의 직접적인 효과로 변경되어야 하는 속성
- 초기 상태에서 명시적으로 설정해야 하는 속성
- 독립적으로 참/거짓이 결정되는 원자적 사실
5.2 파생 술어로 정의해야 하는 경우
- 다른 술어들의 논리적 조합으로 결정되는 속성
- 여러 액션의 전제 조건에서 반복적으로 사용되는 복합 조건
- 이행적 폐쇄나 도달 가능성 같은 재귀적 속성
- 기반 술어가 변경될 때 자동으로 갱신되어야 하는 속성
6. 참고 문헌
- Thiébaux, S., Hoffmann, J., & Nebel, B. (2005). “In Defense of PDDL Axioms.” Artificial Intelligence, 168(1–2), 38–69.
- Haslum, P., Lipovetzky, N., Magazzeni, D., & Muise, C. (2019). An Introduction to the Planning Domain Definition Language. Morgan & Claypool Publishers.