1314.38 메트릭 기반 최적화 목표 설정
1. 메트릭 구문의 정의
PDDL에서 메트릭(metric)은 문제 파일의 :metric 절을 통해 계획의 최적화 기준을 명시하는 구문이다. 이 구문이 없으면 플래너는 기본적으로 계획의 길이(액션 수)를 최소화하며, :metric 절이 명시되면 지정된 수치 표현식을 최적화 대상으로 사용한다.
기본 구문:
(:metric <optimization-direction> <numeric-expression>)
여기서 <optimization-direction>은 minimize 또는 maximize이며, <numeric-expression>은 수치 플루언트 또는 산술 표현식이다.
2. 최소화 메트릭
가장 일반적인 형태로, 지정된 수치 표현식의 최종 값을 최소화하는 계획을 탐색한다:
;; 총 비용 최소화
(:metric minimize (total_cost))
;; 총 이동 거리 최소화
(:metric minimize (total_distance))
;; 총 에너지 소모 최소화
(:metric minimize (total_energy_consumed))
;; 계획 길이 최소화 (각 액션에서 total_cost를 1씩 증가)
(:metric minimize (total_cost))
3. 최대화 메트릭
수익, 보상, 품질 등을 최대화하는 계획을 탐색한다:
;; 총 보상 최대화
(:metric maximize (total_reward))
;; 수집 데이터량 최대화
(:metric maximize (data_collected))
4. 복합 메트릭 표현식
산술 연산자를 사용하여 여러 수치 플루언트를 결합한 복합 메트릭을 정의할 수 있다:
;; 에너지와 시간의 가중 합 최소화
(:metric minimize (+ (* 0.6 (total_energy)) (* 0.4 (total_time))))
;; 비용 대비 보상 최소화
(:metric minimize (- (total_cost) (total_reward)))
;; 다중 페널티 요소의 합
(:metric minimize (+ (total_distance) (* 10 (total_risk)) (* 5 (total_delay))))
가중 합 방식은 다중 목표 최적화(multi-objective optimization)를 단일 스칼라 목표로 변환하는 표준적 방법이다. 각 가중치는 해당 목표의 상대적 중요도를 반영한다.
5. 로봇 도메인에서의 메트릭 설정 사례
5.1 물류 로봇: 총 이동 비용 최소화
(:functions
(move_cost ?from - waypoint ?to - waypoint)
(total_move_cost)
)
(:init (= (total_move_cost) 0))
(:metric minimize (total_move_cost))
5.2 순찰 로봇: 커버리지 최대화
(:functions (coverage_score))
(:metric maximize (coverage_score))
5.3 다중 로봇 시스템: 완료 시간 최소화
(:functions (makespan))
(:metric minimize (makespan))
5.4 에너지-시간 트레이드오프
(:functions
(total_energy)
(total_time)
)
;; 에너지 70%, 시간 30% 가중
(:metric minimize (+ (* 0.7 (total_energy)) (* 0.3 (total_time))))
6. 메트릭과 플래너의 상호 작용
6.1 만족 플래닝과 최적 플래닝
메트릭이 명시되더라도, 플래너의 유형에 따라 최적성 보장 수준이 다르다:
- 최적 플래너: 메트릭 값이 수학적으로 최소(또는 최대)인 계획을 보장한다. 허용 가능 휴리스틱(admissible heuristic)과 A* 등의 완전 탐색이 필요하다.
- 만족 플래너: 유효한 계획을 빠르게 찾되, 메트릭을 참고하여 품질을 개선한다. 최적성은 보장하지 않지만, 실용적인 시간 내에 합리적인 품질의 계획을 생성한다.
- 반복적 개선 플래너: 초기 계획을 생성한 후, 반복적으로 개선하여 메트릭 값을 점진적으로 향상시킨다.
6.2 PlanSys2에서의 메트릭 처리
PlanSys2는 문제 파일에 :metric 절을 포함하여 플래너에 전달한다. POPF 플래너는 시간적 메트릭(makespan 최소화)을 기본적으로 지원하며, 사용자 정의 메트릭도 처리할 수 있다.
7. total-cost 패턴
계획 길이가 아닌 액션별 비용의 합을 최적화하기 위한 표준적 패턴이다:
;; 도메인 파일
(:functions (total-cost) - number)
(:action move
:parameters (?r - robot ?from ?to - waypoint)
:precondition (...)
:effect (and
(...)
(increase (total-cost) (move-cost ?from ?to))
)
)
;; 문제 파일
(:init (= (total-cost) 0))
(:metric minimize (total-cost))
이 패턴은 IPC(International Planning Competition)에서 비용 최적 플래닝 트랙의 표준으로 사용된다.
8. 설계 지침
-
메트릭의 단위와 범위를 문서화하라. 최적화 대상의 물리적 의미와 단위를 명확히 해야 결과의 해석이 가능하다.
-
메트릭 값의 초기화를 반드시 수행하라.
(:init (= (total_cost) 0))등의 초기화가 누락되면 정의되지 않은 동작이 발생한다. -
모든 관련 액션에서 메트릭을 갱신하라. 비용을 누적하는 메트릭의 경우, 비용을 발생시키는 모든 액션에서
increase를 수행해야 정확한 최적화가 이루어진다. -
가중치의 민감도를 분석하라. 복합 메트릭의 가중치에 따라 생성되는 계획의 특성이 크게 달라질 수 있으므로, 다양한 가중치 조합으로 실험하여 적절한 값을 결정해야 한다.
9. 참고 문헌
- Fox, M. & Long, D. (2003). “PDDL2.1: An Extension to PDDL for Expressing Temporal Planning Domains.” Journal of Artificial Intelligence Research, 20, 61–124.
- Hoffmann, J. (2003). “The Metric-FF Planning System: Translating ‘Ignoring Delete Lists’ to Numeric State Variables.” Journal of Artificial Intelligence Research, 20, 291–341.
- Helmert, M. (2006). “The Fast Downward Planning System.” Journal of Artificial Intelligence Research, 26, 191–246.
- Haslum, P., Lipovetzky, N., Magazzeni, D., & Muise, C. (2019). An Introduction to the Planning Domain Definition Language. Morgan & Claypool Publishers.