1292.85 왼쪽에서 오른쪽 실행 순서
1. 왼쪽에서 오른쪽 실행 순서의 정의
왼쪽에서 오른쪽 실행 순서(left-to-right execution order)란, 제어 흐름 노드가 자식 노드를 평가할 때 첫 번째 자식(왼쪽)부터 마지막 자식(오른쪽)까지 순차적으로 평가하는 규칙이다. 이 규칙은 행동 트리의 모든 제어 흐름 노드에 공통적으로 적용되며, 자식의 배치 순서가 곧 실행 순서이자 우선순위를 결정한다 (Colledanchise & Ögren, Behavior Trees in Robotics and AI: An Introduction, 2018).
2. 순서의 의미론
2.1 Sequence 노드에서의 의미
Sequence 노드에서 왼쪽에서 오른쪽 순서는 행동의 실행 순서(order of execution)를 나타낸다. 왼쪽 자식이 먼저 실행되고, Success를 반환해야 다음 자식이 실행된다.
Sequence
├─ [1] Condition: 전제 조건 확인 ← 먼저 평가
├─ [2] Action: 행동 수행 ← 전제 조건 충족 시 실행
└─ [3] Action: 후속 행동 ← 이전 행동 완료 시 실행
2.2 Fallback 노드에서의 의미
Fallback 노드에서 왼쪽에서 오른쪽 순서는 대안의 우선순위(priority)를 나타낸다. 왼쪽 자식이 최우선 대안이며, 실패할 때만 다음 대안이 시도된다.
Fallback
├─ [1] Action: 최우선 대안 ← 최고 우선순위
├─ [2] Action: 차선 대안
└─ [3] Action: 최후 대안 ← 최저 우선순위
2.3 Parallel 노드에서의 의미
Parallel 노드에서도 자식은 왼쪽에서 오른쪽 순서로 tick을 수신한다. 모든 자식이 매 tick에서 실행되지만, tick의 전달 순서는 왼쪽부터이다 (Faconti, BehaviorTree.CPP Documentation, 2024).
3. 조기 종료와의 관계
왼쪽에서 오른쪽 순서는 조기 종료(short-circuit evaluation)와 결합된다.
| 제어 흐름 노드 | 조기 종료 조건 | 미평가 자식 |
|---|---|---|
| Sequence | 자식이 Failure 반환 | 해당 자식 이후의 모든 자식 |
| Fallback | 자식이 Success 반환 | 해당 자식 이후의 모든 자식 |
조기 종료에 의해 오른쪽 자식이 평가되지 않을 수 있다. 이는 왼쪽 자식의 결과가 오른쪽 자식의 평가 여부를 결정함을 의미한다.
4. 우선순위의 암묵적 표현
왼쪽에서 오른쪽 순서는 행동 트리에서 우선순위를 암묵적으로 표현하는 수단이다. 별도의 우선순위 매개변수나 가중치 없이, 자식의 물리적 배치 순서만으로 우선순위가 결정된다.
ReactiveSequence
├─ Condition [안전 조건] ← 최고 우선순위 (항상 먼저 평가)
└─ Action [임무 수행] ← 안전 조건 충족 후 실행
안전 조건이 항상 임무 수행보다 먼저 평가되므로, 안전 조건 위반 시 임무가 즉시 중단됨이 구조적으로 보장된다.
5. XML에서의 순서 표현
BehaviorTree.CPP의 XML 정의에서 자식의 배치 순서는 XML 요소의 출현 순서에 의해 결정된다. 먼저 기술된 요소가 왼쪽 자식이 된다 (Faconti, 2024).
6. 로봇 공학에서의 의의
왼쪽에서 오른쪽 실행 순서는 행동 트리의 설계에서 직관적이고 명확한 우선순위 표현을 가능하게 한다. 설계자는 안전 조건을 왼쪽에, 기능적 행동을 오른쪽에 배치함으로써, 안전이 기능에 우선함을 구조적으로 보장할 수 있다 (Colledanchise & Ögren, 2018).
참고 문헌
- Colledanchise, M. & Ögren, P. (2018). Behavior Trees in Robotics and AI: An Introduction. CRC Press.
- Faconti, D. (2024). BehaviorTree.CPP Documentation. https://www.behaviortree.dev/