1291.44 행동 트리의 설계 철학

1. 설계 철학의 개관

행동 트리(Behavior Tree, BT)는 로봇 행동 제어 분야에서 복잡한 자율 시스템의 의사 결정 구조를 명료하게 표현하기 위하여 고안된 제어 아키텍처이다. 행동 트리의 설계 철학은 단순한 프로그래밍 기법이나 자료 구조의 선택을 넘어서, 자율 시스템의 행동 명세(behavior specification)가 갖추어야 할 구조적 속성에 대한 근본적 원칙의 집합을 구성한다.

Colledanchise와 Ögren(2018)은 행동 트리의 설계 철학을 다음과 같은 핵심 원칙들로 체계화하였다: 모듈성(modularity), 재사용성(reusability), 반응성(reactivity), 선언적 설계(declarative design), 가독성(readability), 그리고 확장성(scalability). 이들 원칙은 상호 독립적이지 않으며, 서로 보완하고 강화하는 유기적 관계를 형성한다. 본 절에서는 이들 원칙의 이론적 기반과 상호 관계를 개관한다.

2. 관심사의 분리와 계층적 분해

행동 트리의 설계 철학에서 가장 근본적인 원칙은 **관심사의 분리(separation of concerns)**이다. 행동 트리는 의사 결정의 제어 흐름(control flow)과 개별 행동의 구현(action implementation)을 명확히 분리한다. 제어 흐름 노드(Sequence, Fallback, Parallel 등)는 자식 노드의 실행 순서와 조건을 결정하되, 각 자식 노드가 구체적으로 어떤 행동을 수행하는지에 대하여는 관여하지 않는다. 마찬가지로, 실행 노드(액션 노드, 조건 노드)는 자신이 수행하는 특정 행동이나 조건 평가에만 집중하며, 자신이 트리 내에서 어떤 위치에 배치되어 있는지에 의존하지 않는다.

이러한 분리는 **계층적 분해(hierarchical decomposition)**를 통하여 구현된다. 복잡한 임무는 서브트리(subtree)로 분해되고, 각 서브트리는 독립적으로 설계, 테스트, 검증될 수 있다. 계층적 분해의 수학적 기반은 트리 구조 자체에 내재되어 있다. 트리 \mathcal{T}의 임의의 내부 노드 v를 루트로 하는 서브트리 \mathcal{T}_v는 그 자체로 유효한 행동 트리이며, 독립적으로 실행 가능하다. 이 성질은 행동 트리의 구조적 귀납(structural induction) 기반 분석을 가능케 한다.

\mathcal{T} = f(\mathcal{T}_{v_1}, \mathcal{T}_{v_2}, \ldots, \mathcal{T}_{v_k})

여기서 f는 루트 노드의 제어 흐름 규칙이며, \mathcal{T}_{v_i}는 각 자식 서브트리이다. 전체 행동 트리의 동작은 각 서브트리의 동작과 루트 노드의 제어 규칙의 합성(composition)으로 결정된다.

3. 조합적 구성 원칙

행동 트리의 설계 철학에서 두 번째 핵심 원칙은 **조합적 구성(compositional construction)**이다. 행동 트리는 소수의 기본 노드 유형(Sequence, Fallback, Parallel, Action, Condition, Decorator)의 **재귀적 합성(recursive composition)**에 의하여 임의 복잡도의 행동을 구성할 수 있다.

이 원칙은 프로그래밍 언어 이론의 **구성적 의미론(compositional semantics)**과 유사한 구조를 갖는다. 행동 트리의 전체 동작이 각 구성 요소(노드)의 동작의 합성으로 정의되므로, 부분에 대한 이해가 전체에 대한 이해로 자연스럽게 확장된다. 이는 유한 상태 머신에서 상태 전이 규칙이 전역적 상호 의존성을 형성하는 것과 대조적이다.

조합적 구성 원칙은 다음과 같은 실용적 이점을 제공한다.

  • 점진적 개발(incremental development): 서브트리를 독립적으로 개발하고, 검증 후 상위 트리에 삽입할 수 있다.
  • 행동의 대체 가능성(substitutability): 동일한 인터페이스(반환 상태)를 준수하는 한, 하나의 서브트리를 다른 서브트리로 자유롭게 대체할 수 있다.
  • 형식적 검증 용이성: 트리의 각 수준에서 속성을 검증하고, 이를 상위 수준으로 전파할 수 있다.

4. 암묵적 제어 흐름과 선언적 표현

행동 트리의 설계 철학은 선언적(declarative) 행동 정의를 강조한다. 전통적인 상태 머신에서 개발자는 각 상태 간의 전이 조건을 명시적으로 지정하여야 하며, 이는 “어떻게(how) 행동을 전환할 것인가“에 대한 절차적(procedural) 기술에 해당한다. 반면, 행동 트리에서는 개발자가 “무엇을(what) 달성하고자 하는가“를 노드의 계층적 배치로 선언한다.

예를 들어, 로봇이 “목적지까지 이동하되, 배터리가 부족하면 충전소로 복귀한다“는 행동을 명세할 때, 상태 머신에서는 각 상태(이동 중, 충전 중, 대기 중 등) 사이의 전이 조건을 모두 열거하여야 한다. 행동 트리에서는 다음과 같은 계층 구조로 선언한다.

Fallback
├── Sequence
│   ├── Condition: 배터리 충분
│   └── Action: 목적지 이동
└── Sequence
    ├── Action: 충전소 이동
    └── Action: 충전 수행

이 구조에서 제어 흐름은 Fallback과 Sequence 노드의 의미론(semantics)에 의하여 **암묵적(implicit)**으로 결정된다. 개발자는 전이 조건을 명시적으로 기술하지 않으며, 각 노드의 배치 순서와 계층 관계가 제어 흐름을 정의한다.

선언적 표현의 장점은, 행동 명세의 의도(intent)가 구조에 직접 반영되므로, 행동 트리의 구조를 관찰하는 것만으로 시스템의 의사 결정 논리를 파악할 수 있다는 데 있다.

5. 반응성과 환경 적응

행동 트리의 설계 철학에서 **반응성(reactivity)**은 동적 환경에서 동작하는 자율 시스템에 필수적인 속성이다. 반응성이란, 환경의 상태 변화에 대하여 시스템이 시의적절하게 행동을 전환하는 능력을 의미한다.

행동 트리에서 반응성은 Tick 기반 실행 모델에 의하여 자연스럽게 구현된다. 매 Tick마다 루트 노드부터 트리를 재순회하므로, 이전 Tick에서 Running 상태이던 행동이 현재 Tick에서 무효화될 수 있다. 예를 들어, Fallback 노드의 하위에서 조건 노드가 매 Tick마다 재평가되면, 조건의 변화에 따라 현재 실행 중인 행동이 중단되고 대안 행동으로 즉시 전환된다.

이 메커니즘은 상태 머신의 반응성과 질적으로 구별된다. 상태 머신에서 외부 조건의 변화에 반응하려면, 현재 상태에서 해당 조건에 대응하는 전이 규칙이 명시적으로 정의되어 있어야 한다. 전이 규칙이 정의되지 않은 조건 변화에 대하여는 어떠한 반응도 발생하지 않는다. 반면, 행동 트리의 반응형 노드(예: ReactiveFallback, ReactiveSequence)는 매 Tick마다 모든 자식 노드를 처음부터 재평가하므로, 명시적 전이 규칙 없이도 환경 변화에 대한 즉각적 반응이 가능하다.

6. 최소 인터페이스 원칙

행동 트리의 노드 간 상호작용은 최소 인터페이스(minimal interface) 원칙에 기반한다. 노드 간의 통신은 세 가지 반환 상태(Success, Failure, Running)의 상향 전파와, Tick 신호의 하향 전달만으로 이루어진다. 이 극도로 단순한 인터페이스는 노드 간의 결합도(coupling)를 최소화하며, 노드의 독립적 개발과 교체를 보장한다.

데이터 공유가 필요한 경우에는 블랙보드(Blackboard) 패턴을 통하여 노드 간 간접적 데이터 교환이 이루어진다. 블랙보드는 키-값(key-value) 저장소로서, 노드가 블랙보드에 데이터를 기록하고 다른 노드가 이를 참조하는 간접 통신을 구현한다. 이 방식은 노드 간의 직접적 의존 관계를 제거하여 모듈성을 유지한다.

노드의 입출력 인터페이스를 형식화하면 다음과 같다.

\text{Node}: \text{Tick} \rightarrow \{\text{Success}, \text{Failure}, \text{Running}\}

모든 노드는 Tick을 입력으로 받아 반환 상태를 출력으로 생성한다. 이 통일된 인터페이스에 의하여, 제어 흐름 노드는 자식 노드의 내부 구현에 대하여 완전히 무관(agnostic)하다.

7. 개방-폐쇄 원칙과의 정합

행동 트리의 설계 철학은 소프트웨어 공학의 **개방-폐쇄 원칙(Open-Closed Principle, OCP)**과 구조적으로 정합한다. 개방-폐쇄 원칙은 “소프트웨어 요소는 확장에 대하여 열려 있고, 수정에 대하여 닫혀 있어야 한다“는 원칙이다.

행동 트리에서 기존 행동에 새로운 행동을 추가할 때, 기존 노드의 내부 구현을 수정할 필요가 없다. 새로운 노드를 트리에 삽입하거나, 기존 서브트리에 새로운 분기를 추가하는 것만으로 행동을 확장할 수 있다. 이때 기존 노드의 동작은 변경되지 않으며, 새로운 노드의 추가로 인한 영향은 해당 서브트리의 지역적 범위(local scope)로 한정된다.

이와 대조적으로, 유한 상태 머신에서 새로운 상태를 추가하면, 기존 상태들로부터 새로운 상태로의 전이 규칙과 새로운 상태로부터 기존 상태들로의 전이 규칙을 모두 추가하여야 한다. 이는 기존 상태들의 정의를 수정하는 것에 해당하며, 개방-폐쇄 원칙을 위반한다.

8. 형식적 분석 가능성

행동 트리의 설계 철학은 **형식적 분석 가능성(formal analyzability)**을 중시한다. 행동 트리의 구조적 규칙성과 최소 인터페이스 원칙은, 트리의 동작을 형식적으로 정의하고 검증하는 것을 용이하게 한다.

Colledanchise와 Ögren(2017)은 행동 트리의 동작을 **일반화된 순차 행동 합성(Generalized Sequential Behavior Composition)**으로 형식화하였으며, 행동 트리가 유한 상태 머신, 포괄 아키텍처(Subsumption Architecture), 의사 결정 트리(Decision Tree) 등의 기존 제어 아키텍처를 일반화할 수 있음을 증명하였다. 이는 행동 트리가 단순한 실용적 도구가 아니라, 이론적으로 견고한 제어 구조임을 보여준다.

또한, Biggar 등(2020)은 행동 트리의 속성을 **선형 시간 논리(Linear Temporal Logic, LTL)**로 명세하고, 모델 검사(model checking)를 통하여 행동 트리의 안전성(safety)과 활동성(liveness) 속성을 검증하는 방법론을 제시하였다. 이러한 형식적 분석은 안전 임계 로봇 시스템에서 행동 트리의 신뢰성을 보장하는 데 필수적이다.

9. 설계 철학 간의 상호 관계

행동 트리의 설계 철학을 구성하는 원칙들은 독립적으로 존재하지 않으며, 다음과 같은 상호 강화 관계를 형성한다.

원칙지원 원칙관계
모듈성관심사의 분리, 최소 인터페이스노드의 독립성이 모듈 단위 분리를 가능케 함
재사용성모듈성, 조합적 구성독립 모듈이 다른 트리에 삽입 가능
반응성Tick 기반 실행, 선언적 표현매 Tick 재순회가 환경 변화 감지를 보장
선언적 설계암묵적 제어 흐름, 가독성구조가 의도를 반영하여 가독성 향상
확장성개방-폐쇄 원칙, 모듈성기존 구조 수정 없이 새로운 행동 추가
형식적 분석최소 인터페이스, 구조적 귀납단순한 노드 의미론이 형식적 검증을 용이케 함

이들 원칙의 유기적 결합이 행동 트리를 복잡한 자율 시스템의 행동 제어에 적합한 아키텍처로 만드는 근본적 이유이다.

10. 참고 문헌

  • Colledanchise, M., & Ögren, P. (2018). Behavior Trees in Robotics and AI: An Introduction. CRC Press.
  • Colledanchise, M., & Ögren, P. (2017). “How Behavior Trees Modularize Hybrid Control Systems and Generalize Sequential Behavior Compositions, the Subsumption Architecture, and Decision Trees.” IEEE Transactions on Robotics, 33(2), 372–389.
  • Biggar, O., Zamani, M., & Shames, I. (2020). “A Framework for Formal Verification of Behavior Trees with Linear Temporal Logic.” IEEE Robotics and Automation Letters, 5(2), 2341–2348.
  • Iovino, M., Scukins, E., Styrud, J., Ögren, P., & Smith, C. (2022). “A Survey of Behavior Trees in Robotics and AI.” Robotics and Autonomous Systems, 154, 104096.
  • Marzinotto, A., Colledanchise, M., Smith, C., & Ögren, P. (2014). “Towards a Unified Behavior Trees Framework for Robot Control.” Proceedings of the IEEE International Conference on Robotics and Automation (ICRA), 5420–5427.
  • Martin, R. C. (2003). Agile Software Development: Principles, Patterns, and Practices. Prentice Hall.

버전: 2026-03-31