게임 AI의 의사 결정 트리와 행동 트리의 차이점


64

AI 게임 개발을위한 의사 결정 트리와 행동 트리의 차이점은 무엇입니까? 어떤 응용 프로그램에서 다른 응용 프로그램을 사용 하시겠습니까?

답변:


80

둘은 꽤 다릅니다. 실제 지표는 이름에 있습니다. 의사 결정 트리는 의사 결정을위한 것입니다. 비헤이비어 트리는 비헤이비어를 제어하기위한 것입니다. 설명해주세요. 이 둘의 주요 차이점은 배치 방법과 노드 유형이 다른 것과 같이 이송 방법입니다.

결정 트리는 매번 뿌리에서 잎으로 평가됩니다. 의사 결정 트리가 제대로 작동하려면 각 부모의 자식 노드가 해당 노드에 대해 가능한 모든 결정을 나타내야합니다. 노드에 "예, 아니오, 가능"이라고 대답 할 수있는 경우, 예 노드, 노드 없음 및 노드라고하는 세 개의 자식이 있어야합니다. 이것은 끝 노드에 도달 할 때까지 트래버스 할 노드가 항상 있다는 것을 의미합니다. 순회는 항상 중단됩니다. 그래픽 형식 :

여기에 이미지 설명을 입력하십시오

꽤 간단합니다. 우리는 근본에서 시작하여 일부 평가에 따라 1, 2 또는 3을 선택합니다. 우리는 3을 선택합니다. 그런 다음 다른 평가를 수행하고 B 또는 B를 선택합니다 ... 글쎄, 아래 그래픽을 다시 사용했습니다. 죄송합니다. 왼쪽의 B는 마법 B 인 척

동작 트리는 다른 평가를 갖습니다. 처음 평가 될 때 (또는 재설정 될 때) 루트에서 시작하고 (부모 노드는 선택기처럼 작동) 각 자식은 왼쪽에서 오른쪽으로 평가됩니다. 자식 노드는 우선 순위 에 따라 정렬됩니다. 하위 노드의 모든 조건이 충족되면 해당 동작이 시작됩니다. 노드가 동작을 시작하면 해당 노드는 '실행 중'으로 설정되고 동작을 반환합니다. 다음에 트리를 평가할 때 우선 순위가 가장 높은 노드를 다시 확인한 다음 '실행중인'노드에 대해서는 중단 된 지점을 선택하는 것을 알게됩니다. 노드는 종료 상태에 도달하기 전에 일련의 조치 및 조건을 가질 수 있습니다. 조건이 실패하면 순회가 상위로 돌아갑니다. 그런 다음 상위 선택기는 다음 우선 순위 하위로 이동합니다. 여기서 그래픽 형식을 시도해 보겠습니다.

여기에 이미지 설명을 입력하십시오

순회는 루트에서 시작하여 자식 1로 이동하여 자식 상태를 확인합니다 ( "근처에있는 적이 있습니까?"). 조건이 실패하고 순회가 트리를 위로 이동하여 노드 2로 이동합니다. 노드 2에는 수행되는 작업이 있습니다 (경로 찾기와 같은 것일 수 있음). 그런 다음 행동 (경로를 따르는 것과 같은 것). 다음 경로는 running으로 설정되고 트리는 상태를 running으로 반환합니다. 실패 또는 완료된 노드는 '준비'로 돌아갑니다. 다음에 확인할 때 우선 순위가 가장 높은 노드부터 다시 시작합니다. 다시 실패하므로 노드 2로 진행합니다. 거기에서 동작이 실행되고 있음을 알 수 있습니다. 또한 동작이 완료된 것을 확인하여 완료된 것으로 표시하고 반환합니다. 그런 다음 트리가 재설정되고 다시 갈 준비가되었습니다.

보시다시피 동작 트리는 더 복잡합니다. 비헤이비어 트리는 더 강력하고 더 복잡한 비헤이비어를 허용합니다. 의사 결정 트리는 이해하기 쉽고 구현하기 쉽습니다. 따라서보다 복잡한 동작을 원하거나 동작을보다 세밀하게 제어하려면 동작 트리를 사용합니다. 의사 결정 트리는 동작 트리의 일부로 사용되거나 간단한 AI에 단독으로 사용될 수 있습니다.

동작 트리가 어떻게 구문 분석되는지에 대한 약간의 이해는 여기 에서 찾을 수 있습니다 .


훌륭한 설명과 삽화. "자식 노드 조건이 모두 충족되면 ..."라고 말하면 선택기 및 시퀀스에 조건 또는 리프 노드 만 포함됩니까?
무료 Lancer

1
자식 노드는 더 많은 자식이있는 동작, 동작, 조건 또는 선택기입니다. 그들은 왼쪽에서 오른쪽으로 평가됩니다.
MichaelHouse

훌륭한 게시물이지만 여전히 뛰어난 질문이 있다고 생각합니다 (별도 게시). 애니메이션 GIF를 만들기 위해 무엇을 사용 했습니까?
가구 있구만

0-2-B가 실행 중이면 0-2-A는 다시 재생되지 않아야합니다 ??? github.com/pirobot/pi_trees/issues/1
devside

@ nopnop77 0-2 조건이 여전히 0-2-B로 평가되면 그렇지 않습니다. 0-2가 재평가 된 것을 볼 수 있지만 다시 한 번 A가 선택되지는 않습니다.
MichaelHouse
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.