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. 플래너 지원 현황

preferenceis-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.