1315.41 preference 지시자의 구문과 의미
1. preference 지시자의 정의
PDDL 3.0에서 preference 지시자는 계획의 목표에 포함되는 연성 조건(soft condition)을 정의하며, 해당 조건의 충족 여부가 계획의 품질 평가에 반영된다(Gerevini & Long, 2005). 선호도는 충족되지 않아도 계획이 유효하지만, 충족될수록 계획의 품질이 향상된다.
2. 구문
2.1 목표에서의 선호도
(:goal (and
<hard-goal-conditions>
(preference <pref-name> <goal-formula>)
))
여기서 <pref-name>은 선호도의 고유 이름, <goal-formula>는 선호하는 조건의 논리식이다.
2.2 전제 조건에서의 선호도
(:action move
:parameters (?r - robot ?from ?to - waypoint)
:precondition (and
(robot_at ?r ?from)
(connected ?from ?to)
(preference safe_path (not (risky_path ?from ?to)))
)
:effect (...)
)
전제 조건의 선호도는 “가능하면 이 조건을 만족하는 액션을 선택하라“는 의미이다. 선호도가 위반되어도 액션은 적용 가능하다.
3. is-violated 함수
is-violated 함수는 특정 선호도가 충족되지 않을 때 1, 충족될 때 0을 반환하는 특수 수치 함수이다:
(:metric minimize (+
(total_cost)
(* 10 (is-violated p1))
(* 5 (is-violated p2))
(* 3 (is-violated p3))
))
이 메트릭은 총 비용에 선호도 위반에 대한 페널티를 합산한다. 각 선호도의 페널티 가중치(10, 5, 3)가 선호도의 상대적 중요도를 반영한다.
4. 목표 선호도의 유형
4.1 단순 상태 선호도
최종 상태에서 특정 조건이 참이기를 선호:
(:goal (and
(all_delivered)
(preference return_home (robot_at robot1 base))
(preference battery_ok (>= (battery_level robot1) 30))
))
4.2 양화 선호도
(:goal (and
(all_tasks_done)
(preference all_robots_home
(forall (?r - robot) (robot_at ?r base_station)))
))
4.3 조건부 선호도
(:goal (and
(mission_complete)
(preference efficient_route
(<= (total_distance) 100))
))
5. 선호도 가중치의 설계
5.1 우선순위 반영
선호도의 중요도에 따라 is-violated의 가중치를 차등 설정한다:
(:metric minimize (+
(total_cost)
;; 안전 관련: 최고 가중치
(* 100 (is-violated safety_preference))
;; 효율 관련: 중간 가중치
(* 10 (is-violated efficiency_preference))
;; 편의 관련: 낮은 가중치
(* 1 (is-violated convenience_preference))
))
5.2 비용과의 통합
선호도 위반 페널티를 실제 비용과 동일한 스케일로 설정하면, 플래너가 “선호도를 위반하는 대신 비용을 절감하는 것이 이득인지“를 정량적으로 판단할 수 있다.
6. 로봇 도메인에서의 활용 예시
(define (problem patrol_mission)
(:domain patrol_robot)
(:goal (and
;; 경성 목표: 모든 구역 순찰 완료
(forall (?z - patrol_zone) (patrolled ?z))
;; 선호 1: 기지 복귀
(preference p_return (robot_at robot1 base))
;; 선호 2: 배터리 여유
(preference p_battery (>= (battery_level robot1) 40))
;; 선호 3: 위험 구역 최소 통과
(preference p_safe_route (<= (hazard_encounters) 2))
))
(:metric minimize (+
(total_distance)
(* 20 (is-violated p_return))
(* 15 (is-violated p_battery))
(* 30 (is-violated p_safe_route))
))
)
7. 플래너 지원 현황
preference와 is-violated 기능은 IPC 2006 이후 도입되었으나, 완전한 지원은 제한적이다. SGPlan, HPlan-P 등의 전문 플래너가 주요 지원 플래너이다.
8. 참고 문헌
- Gerevini, A. & Long, D. (2005). “Plan Constraints and Preferences in PDDL3.” Technical Report, University of Brescia.
- Gerevini, A. & Long, D. (2006). “Preferences and Soft Constraints in PDDL3.” Proceedings of the ICAPS Workshop on Planning with Preferences and Soft Constraints.
- Haslum, P., Lipovetzky, N., Magazzeni, D., & Muise, C. (2019). An Introduction to the Planning Domain Definition Language. Morgan & Claypool Publishers.