1314.25 닫힌 세계 가정과 상태 갱신

1. 닫힌 세계 가정의 정의

닫힌 세계 가정(Closed World Assumption, CWA)은 PDDL의 상태 표현 및 추론에서 핵심적인 역할을 하는 가정으로서, 상태에 명시적으로 포함되지 않은 술어 인스턴스는 거짓으로 간주된다는 원칙이다.

형식적으로, 상태 s가 술어 인스턴스의 집합으로 표현될 때:

s \models (p \ o_1 \ \ldots \ o_n) \iff (p \ o_1 \ \ldots \ o_n) \in s

s \models \neg(p \ o_1 \ \ldots \ o_n) \iff (p \ o_1 \ \ldots \ o_n) \notin s

즉, 상태 집합에 포함된 술어 인스턴스만 참이고, 포함되지 않은 모든 술어 인스턴스는 거짓이다. 이는 “참이라고 명시되지 않은 것은 거짓“이라는 원칙이며, 데이터베이스 이론에서의 닫힌 세계 가정과 동일한 개념이다(Reiter, 1978).

2. 열린 세계 가정과의 대비

닫힌 세계 가정의 의미를 명확히 하기 위해 열린 세계 가정(Open World Assumption, OWA)과 대비한다:

특성닫힌 세계 가정 (CWA)열린 세계 가정 (OWA)
미명시 술어의 진리값거짓알 수 없음 (unknown)
상태 표현참인 술어만 나열참과 거짓을 모두 명시
추론 방식실패에 의한 부정 (NAF)명시적 증명 필요
적합한 시나리오완전 관측 가능 환경부분 관측 가능 환경
사용 분야PDDL, 데이터베이스OWL, 시맨틱 웹

PDDL은 CWA를 채택함으로써 상태의 표현을 간결하게 유지할 수 있다. 참인 술어만 나열하면 되며, 거짓인 술어를 일일이 기술할 필요가 없다.

3. 닫힌 세계 가정과 PDDL 상태 표현

3.1 초기 상태의 정의

PDDL 문제 파일에서 초기 상태는 :init 절에 참인 술어 인스턴스만을 나열하여 정의한다:

(:init
    (robot_at robot1 wp1)
    (object_at box1 wp2)
    (object_at box2 wp3)
    (connected wp1 wp2)
    (connected wp2 wp3)
    (gripper_free robot1)
)

이 초기 상태에서 CWA에 의해 다음이 모두 거짓으로 간주된다:

  • (robot_at robot1 wp2) — 명시되지 않았으므로 거짓
  • (robot_at robot1 wp3) — 명시되지 않았으므로 거짓
  • (holding robot1 box1) — 명시되지 않았으므로 거짓
  • (connected wp1 wp3) — 명시되지 않았으므로 거짓

3.2 부정적 전제 조건의 평가

CWA는 부정적 전제 조건(not)의 평가에 직접적으로 관여한다:

:precondition (and
    (robot_at ?r ?loc)
    (not (occupied ?loc))    ;; CWA: occupied이 상태에 없으면 참
)

(occupied ?loc)가 상태 집합에 포함되어 있지 않으면, CWA에 의해 거짓으로 간주되고, 따라서 (not (occupied ?loc))은 참으로 평가된다.

4. 상태 갱신 메커니즘

PDDL에서 상태 갱신은 액션의 효과를 적용하는 과정이다. CWA 하에서의 상태 갱신은 집합 연산으로 정확히 정의된다.

4.1 추가 효과에 의한 갱신

긍정적 효과 리터럴 (p \ o_1 \ \ldots \ o_n)이 적용되면, 해당 술어 인스턴스가 상태 집합에 추가된다:

s' = s \cup \{(p \ o_1 \ \ldots \ o_n)\}

이전에 CWA에 의해 거짓이었던 술어가 참으로 전환된다.

4.2 삭제 효과에 의한 갱신

부정적 효과 리터럴 (\text{not} \ (p \ o_1 \ \ldots \ o_n))이 적용되면, 해당 술어 인스턴스가 상태 집합에서 제거된다:

s' = s \setminus \{(p \ o_1 \ \ldots \ o_n)\}

이전에 참이었던 술어가 CWA에 의해 거짓으로 전환된다. 이미 상태에 존재하지 않는 술어에 대한 삭제 효과는 아무런 변화를 일으키지 않는다(멱등성).

4.3 완전한 상태 전이

추가와 삭제를 결합한 완전한 상태 전이:

s' = (s \setminus \text{eff}^-(a)) \cup \text{eff}^+(a)

이 연산에서 삭제가 먼저 적용되고 추가가 그 다음에 적용된다.

5. 닫힌 세계 가정과 로봇 시스템의 간극

5.1 불완전 관측의 문제

실제 로봇 시스템에서 센서는 세계 상태의 일부만을 관측할 수 있다. CWA 하에서는 관측되지 않은 사실이 자동으로 거짓으로 간주되지만, 실제로는 “참인지 거짓인지 알 수 없는” 상태일 수 있다:

실제 세계: 물체가 탁자 아래에 숨겨져 있어 센서가 감지하지 못함
CWA 해석: (object_at box1 table1) ∉ s → 물체가 탁자에 없다고 간주
실제 상태: 물체는 존재하지만 관측되지 않음

이러한 간극을 완화하기 위한 전략:

  1. 보수적 상태 추정: 불확실한 정보를 상태에 포함하지 않음으로써, 플래너가 해당 조건에 의존하는 액션을 선택하지 않도록 유도한다.

  2. 관측 액션의 도입: 센서로 환경을 스캔하는 액션을 도메인에 추가하여, 관측 결과를 상태에 반영하는 계획을 생성하도록 한다:

(:action scan_location
    :parameters (?r - robot ?loc - waypoint)
    :precondition (and (robot_at ?r ?loc) (sensor_active ?r))
    :effect (location_scanned ?loc)
)
  1. 상태 모니터링 노드: PlanSys2 환경에서 별도의 ROS2 노드가 센서 데이터를 지속적으로 모니터링하여 Problem Expert의 상태를 갱신한다.

5.2 동적 환경 변화의 문제

CWA 하에서 상태는 액션의 효과에 의해서만 변경된다. 그러나 실제 환경에서는 로봇의 행동과 무관하게 상태가 변할 수 있다(예: 사람의 이동, 문의 열림/닫힘):

계획 시점: (door_open d1) ∈ s → 문이 열려 있다고 가정
실행 시점: 사람이 문을 닫음 → 실제 상태 변경
PDDL 모델: 외인성 이벤트를 표현하지 않음

이 문제에 대한 대응으로 실행 중 상태 모니터링과 재계획을 활용한다.

6. PlanSys2에서의 CWA 적용

PlanSys2의 Problem Expert 노드는 CWA를 기반으로 세계 상태를 관리한다. 술어 인스턴스를 추가하면 참으로, 제거하면 거짓으로 전환된다:

auto problem_client = std::make_shared<plansys2::ProblemExpertClient>();

// 술어 추가: (robot_at robot1 wp1) → 참
problem_client->addPredicate(plansys2::Predicate("(robot_at robot1 wp1)"));

// 술어 제거: (robot_at robot1 wp1) → CWA에 의해 거짓
problem_client->removePredicate(plansys2::Predicate("(robot_at robot1 wp1)"));

PlanSys2 터미널에서도 동일한 CWA가 적용된다:

> set predicate (robot_at robot1 wp1)    # 참으로 설정
> remove predicate (robot_at robot1 wp1) # CWA에 의해 거짓으로 전환

7. 참고 문헌

  • Reiter, R. (1978). “On Closed World Data Bases.” Logic and Data Bases, 55–76. Springer.
  • McCarthy, J. & Hayes, P. J. (1969). “Some Philosophical Problems from the Standpoint of Artificial Intelligence.” Machine Intelligence, 4, 463–502.
  • Ghallab, M., Nau, D., & Traverso, P. (2004). Automated Planning: Theory and Practice. Morgan Kaufmann.
  • Haslum, P., Lipovetzky, N., Magazzeni, D., & Muise, C. (2019). An Introduction to the Planning Domain Definition Language. Morgan & Claypool Publishers.