행동 트리(인공지능, 로봇 및 제어)

Behavior tree (artificial intelligence, robotics and control)

행동 트리컴퓨터 과학, 로봇 공학, 제어 시스템, 비디오 게임에 사용되는 계획 실행의 수학적 모델이다. 그들은 모듈형 방식으로 유한한 일련의 작업들 사이의 전환을 설명한다. 이들의 강점은 단순 업무가 어떻게 이행되는지 걱정하지 않고 단순 업무로 구성된 매우 복잡한 업무를 만들 수 있는 능력에서 나온다. 행동 트리는 어떤 행동의 주요 구성 요소가 상태라기보다는 과제라는 핵심적인 차이점을 가진 계층적 상태 기계와 어느 정도 유사성을 나타낸다. 인간의 손쉬운 이해는 행동 트리를 오류 발생 가능성이 적고 게임 개발자 커뮤니티에서 매우 인기가 있다. 행동 트리는 몇 가지 다른 제어 아키텍처를 일반화하는 것으로 나타났다.[1][2] 수학적으로, 그것들은 순환 그래프에 지시된다.

두 개의 팔을 가진 로봇의 검색 및 파악 계획을 모델링하는 동작 트리.

배경

행동 트리는 비플레이어 캐릭터(NPC)의 행동을 모델링하는 강력한 도구로서 컴퓨터 게임 산업에서 유래한다.[3][4][5][6] 그들은 헤일로, 바이오쇼크, 스포어 같은 유명 비디오 게임에 널리 사용되어 왔다. 최근 작품들은 행동 트리를 UAV, 복잡한 로봇, 로봇 조작, 다중 로봇 시스템을 위한 다중 임무 제어 프레임워크로 제안하고 있다.[7][8][9][10][11][12] 행동 트리는 이제 유니티(게임 엔진) 언리얼 엔진(아래 링크 참조)과 같은 일반적인 게임 환경뿐만 아니라 [13][14]게임 AI 교과서에서 다루어야 할 성숙기에 도달했다.

행동 트리는 NPC의 행동을 프로그래밍하기만 하면 복잡한 행동을 만들 수 있고, 그 다음에는 (대개 드래그 앤 드롭을 통해) 나뭇잎 노드가 작용이고 내부 노드가 NPC의 의사결정을 결정하는 트리 구조를 설계할 수 있다는 개발 패러다임으로 유명해졌다. 행동 트리는 시각적으로 직관적이고 디자인, 테스트, 디버그가 용이하며, 다른 행동 창조 방법보다 모듈성, 확장성, 재사용성을 더 많이 제공한다.

수년에 걸쳐 다양한 행동 나무의 구현은 사건 중심 행동 나무로 진화하기 전까지 산업의 요구를 충족시키기 위한 효율성과 능력 모두에서 계속 향상되었다.[15][5] 이벤트 중심 행동 트리는 트리가 내부적으로 실행을 처리하는 방식을 변경하고, 이벤트에 반응하고 실행 노드를 중단할 수 있는 새로운 유형의 노드를 도입함으로써 고전적 행동 트리의 일부 확장성 문제를 해결했다. 오늘날에는 단순성을 위해 여전히 '행동수'라고 불리고 있음에도 불구하고 사건 주도 행동수라는 개념이 표준이고 대부분의 구현에 사용되고 있다.

주요개념

동작 트리는 노드가 루트, 제어 흐름 노드 또는 실행 노드(태스크)로 분류되는 방향 트리로 그래픽으로 표현된다. 연결된 각 노드 쌍에 대해 나가는 노드를 상위 노드라고 하고 들어오는 노드를 하위 노드라고 한다. 루트는 부모가 없고 정확히 하나의 자식을 가지며, 제어 흐름 노드는 하나의 부모와 적어도 하나의 자식을 가지며, 실행 노드는 하나의 부모를 가지며 자식이 없다. 그래픽으로, 제어 흐름 노드의 아이들은 왼쪽에서 오른쪽으로 정렬된 그 아래에 배치된다.[16]

동작 트리의 실행은 특정 주파수의 틱을 자식에게 보내는 루트부터 시작한다. 체크 표시는 어린이를 실행할 수 있는 활성화 신호다. 동작 트리에서 노드 실행이 허용되는 경우, 실행이 아직 완료되지 않은 경우 실행 중인 상태, 목표를 달성한 경우 성공 또는 그렇지 않은 경우 실패를 부모에게 반환한다.

제어 흐름 노드

제어 흐름 노드는 구성되는 하위 작업을 제어하는 데 사용된다. 제어 흐름 노드는 선택기(낙하) 노드 또는 시퀀스 노드일 수 있다. 그들은 각각의 하위 작업을 차례대로 운영한다. 하위 작업이 완료되어 상태(성공 또는 실패)를 반환하면 제어 흐름 노드가 다음 하위 작업 실행 여부를 결정한다.

선택기(하강) 노드

그림 I. N 과제의 예비 구성의 그래픽 표현

폴백 노드는 실패하지 않는 첫 번째 아동을 찾아 실행하는 데 사용된다. 폴백 노드는 자식 중 하나가 성공 또는 실행을 반환할 때 성공 또는 실행 상태 코드를 가지고 즉시 반환된다(아래 그림 I 및 유사 코드 참조). 아이들은 중요한 순서대로 왼쪽에서 오른쪽으로 간지럽혀진다.

유사 코드에서 예비 구성의 알고리즘은 다음과 같다.

1부터 n까지 i에 대해 2 do 2 childstatus ← if chick(i) 3 if childstatus = running 4 running 5 if childstatus = success = success 6 return success 7 end 8 return 실패 

시퀀스 노드

그림 II. N개 태스크의 시퀀스 구성을 그래픽으로 표시.

시퀀스 노드는 아직 성공하지 못한 첫 번째 아동을 찾아 실행하는 데 사용된다. 시퀀스 노드는 자식 중 하나가 실패 또는 실행을 반환할 때 고장 또는 실행 상태 코드를 사용하여 즉시 반환된다(아래 그림 II 및 유사 코드 참조). 아이들은 왼쪽에서 오른쪽으로 차례차례 체크되어 있다.

유사 코드에서 시퀀스 구성에 대한 알고리즘은 다음과 같다.

1 ~ n의 i에 대해 1 ~ 2 do 2 childstatus ← if chick(i) 3 if childstatus = running 4 returning 5 if childstatus = failure = return fails 7 end 8 return 성공 

수학적 상태 공간 정의

동작 나무의 분석에 제어 이론 도구를 적용하기 위해서는 3투플로 정의할 수 있다.[17]

where is the index of the tree, is a vector field representing the right hand side of an ordinary difference equation, is a time step and is the return status, that can be equal to either Running , Success , or Failure .

참고: 업무는 부모도 자식도 없는 타락한 행동 나무다.

동작 트리 실행

동작 트리의 실행은 다음과 같은 표준 일반 차이 방정식으로 설명된다.

여기서 는) 이산 시간을 나타내며, x 은(는) 동작 트리에 의해 모델링된 시스템의 상태 공간이다.

시퀀스 구성

두 개의 동작 트리 j 는 시퀀스 연산자를 사용하여 더욱 복잡한 동작 트리 0로 구성할 수 있다.

다음 return status ()T 0{\T_{(와) 관련된 벡터 필드 f 0 을 다음과 같이 정의한다( 1 {\{[definition needed]

참고 항목

참조

  1. ^ Colledanchise, Michele; Ögren, Petter (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. doi:10.1109/TRO.2016.2633567. S2CID 9518238.
  2. ^ Colledanchise, Michele; Ögren, Petter (2018). Behavior Trees in Robotics and AI: An Introduction. CRC Press. arXiv:1709.00084. doi:10.1201/9780429489105. ISBN 978-1-138-59373-2. S2CID 27470659.
  3. ^ Isla, D. (2005). "Handling complexity in the Halo 2 AI". Game Developers Conference (Vol. 12).
  4. ^ Isla, D. (2008). Halo 3-building a better battle. Game Developers Conference 2008.
  5. ^ a b Agis, Ramiro A.; Gottifredi, Sebastian; García, Alejandro J. (2020). "An event-driven behavior trees extension to facilitate non-player multi-agent coordination in video games" (PDF). Expert Systems with Applications. 155 (1): 113457. doi:10.1016/j.eswa.2020.113457. S2CID 218995637.
  6. ^ Lim, C. U.; Baumgarten, R.; Colton, S. (2010). "Evolving behaviour trees for the commercial game DEFCON" (PDF). Applications of Evolutionary Computation. Berlin: Springer. pp. 100–110. doi:10.1007/978-3-642-12239-2_11. ISBN 978-3-642-12238-5.
  7. ^ Ögren, Petter (2012). "Increasing Modularity of UAV Control Systems using Computer Game Behavior Trees" (PDF). AIAA Guidance, Navigation and Control Conference, Minneapolis, Minnesota. pp. 13–16.
  8. ^ Colledanchise, Michele; Marzinotto, Alejandro; Ögren, Petter (2014). "Performance Analysis of Stochastic BTs" (PDF). Robotics and Automation (ICRA), 2014 IEEE International Conference on. doi:10.1109/ICRA.2014.6907328. S2CID 14719083.
  9. ^ Marzinotto, Alejandro; Colledanchise, Michele; Smith, Christian; Ögren, Petter (2014). "Towards a Unified BTs Framework for Robot Control" (PDF). Robotics and Automation (ICRA), 2014 IEEE International Conference on.
  10. ^ 클뢰크너, 안드레아스 "설명 로직을 사용하여 BT와 세계 간 교류" 2013년 보스턴, AIAA 지침, 항법 및 제어 컨퍼런스에서
  11. ^ Klöckner, Andreas (2013). "Behavior Trees for UAV Mission Management". GI-Jahrestagung. pp. 57–68.
  12. ^ Bagnell, J. Andrew; Cavalcanti, Felipe; Cui, Lei; et al. (2012). "An integrated system for autonomous robotics manipulation" (PDF). Intelligent Robots and Systems (IROS), 2012 IEEE/RSJ International Conference on. IEEE. pp. 2955–2962. doi:10.1109/IROS.2012.6385888. hdl:20.500.11937/14608. ISBN 978-1-4673-1736-8. S2CID 419179.
  13. ^ Millington; Funge (2009). Artificial Intelligence for Games. CRC Press. ISBN 978-0-12-374731-0.
  14. ^ Rabin, S. (2014). Game AI Pro. CRC Press. ISBN 978-1-4665-6596-8.
  15. ^ Champandard, Alex J.; Dunstan, Philip (2012). "The Behavior Tree Starter Kit" (PDF). Game AI Pro: Collected Wisdom of Game AI Professionals. pp. 72–92.
  16. ^ craft ai (2015). "BT 101 – Behavior Trees grammar basics".
  17. ^ Colledanchise, Michele; Ögren, Petter (2014). "How Behavior Trees Modularize Robustness and Safety in Hybrid Systems" (PDF). In Intelligent Robots and Systems (IROS), 2014 IEEE/RSJ International Conference on. IEEE.

외부 링크