1315.27 다목적 최적화를 위한 메트릭 설계
1. 다목적 최적화의 필요성
실제 로봇 시스템에서는 에너지 소모, 수행 시간, 이동 거리, 작업 품질, 안전성 등 여러 목표를 동시에 고려해야 하는 경우가 빈번하다. PDDL은 단일 메트릭만을 지원하므로, 다목적 최적화(multi-objective optimization)를 위해서는 여러 목표를 단일 스칼라 목적 함수로 결합하는 기법이 필요하다.
2. 가중 합 방법(Weighted Sum Method)
가장 널리 사용되는 방법으로, 각 목표에 가중치를 부여하여 선형 결합한다:
\text{metric} = \sum_{i=1}^{n} w_i \cdot f_i
(:functions
(total_energy)
(total_time)
(total_risk)
)
;; 가중 합 최소화
(:metric minimize
(+ (* 0.5 (total_energy))
(* 0.3 (total_time))
(* 0.2 (total_risk))))
2.1 가중치 설정 지침
| 고려 사항 | 설명 |
|---|---|
| 단위 정규화 | 서로 다른 단위의 목표를 동일 스케일로 변환 |
| 상대적 중요도 | 목표의 우선순위에 따라 가중치 결정 |
| 파레토 최적성 | 가중치 벡터에 따라 파레토 최적해의 다른 부분 탐색 |
단위 정규화 예시: 에너지(0~100 kWh)와 시간(0~3600 초)의 스케일이 다르면, 정규화 없이 가중 합을 구성하면 스케일이 큰 목표가 지배적이 된다:
;; 정규화된 가중 합
(:metric minimize
(+ (* 0.5 (/ (total_energy) 100)) ;; 0~1 범위로 정규화
(* 0.5 (/ (total_time) 3600)))) ;; 0~1 범위로 정규화
3. 사전적 최적화(Lexicographic Optimization)
목표에 우선순위를 부여하여 상위 목표를 먼저 최적화하고, 동률인 경우에만 하위 목표를 고려하는 방법이다. PDDL은 사전적 최적화를 직접 지원하지 않으나, 가중치의 크기 차이를 이용하여 근사할 수 있다:
;; 안전성 > 에너지 > 시간 우선순위
(:metric minimize
(+ (* 1000 (total_risk)) ;; 최우선: 위험도
(* 10 (total_energy)) ;; 차선: 에너지
(* 1 (total_time)))) ;; 최후: 시간
가중치 비율이 충분히 크면(예: 1000:10:1), 상위 목표가 열등한 계획이 하위 목표의 우수함으로 보상되지 않는다.
4. 제약 기반 접근
한 목표는 제약(constraint)으로, 다른 목표는 최적화 대상으로 설정하는 방법이다:
;; 에너지를 제약으로, 시간을 최적화 대상으로
(:action move
:precondition (and
(...)
(>= (battery_level ?r) (energy_cost ?from ?to))
;; 에너지 제약: 배터리 잔량 확인
)
:effect (and
(...)
(increase (total_time) (travel_time ?from ?to))
(decrease (battery_level ?r) (energy_cost ?from ?to))
)
)
(:metric minimize (total_time))
;; 에너지는 전제 조건으로 관리, 시간만 최적화
5. 로봇 도메인에서의 다목적 메트릭 사례
5.1 물류 로봇: 비용-시간 균형
(:metric minimize
(+ (* 0.6 (total_delivery_cost))
(* 0.4 (total_delivery_time))))
5.2 순찰 로봇: 커버리지-에너지 균형
(:metric maximize
(- (coverage_score)
(* 0.3 (total_energy_consumed))))
5.3 다중 로봇: 공정성-효율성 균형
모든 로봇의 작업 부하가 균등하면서 전체 시간이 최소화되도록:
(:metric minimize
(+ (makespan)
(* 5 (workload_variance))))
6. 가중치 탐색 전략
최적 가중치를 결정하기 위한 실용적 전략:
- 격자 탐색: 가중치 공간을 균등하게 분할하여 여러 조합으로 계획을 생성하고 비교한다.
- 도메인 전문가 설정: 로봇 운영자의 경험에 기반하여 가중치를 설정한다.
- 민감도 분석: 가중치를 소폭 변경하며 계획의 변화를 관찰한다.
7. 참고 문헌
- Fox, M. & Long, D. (2003). “PDDL2.1: An Extension to PDDL for Expressing Temporal Planning Domains.” Journal of Artificial Intelligence Research, 20, 61–124.
- Gerevini, A. & Long, D. (2005). “Plan Constraints and Preferences in PDDL3.” Technical Report, University of Brescia.
- Haslum, P., Lipovetzky, N., Magazzeni, D., & Muise, C. (2019). An Introduction to the Planning Domain Definition Language. Morgan & Claypool Publishers.