Hands-On Artificial Intelligence with Unreal Engine
上QQ阅读APP看书,第一时间看更新

The structure of a Mathematical Tree

Alright, it's time to understand how a Behavior Tree works. First of all, as the name suggests, it is a tree, mathematical speaking.

If you are interested to learn more about trees in graph theory, you can consult the following Wikipedia page: https://en.wikipedia.org/wiki/Tree_(graph_theory). Alternatively, if you want to get even more technical, you can consult the following page:  http://mathworld.wolfram.com/Tree.html. However, the definitions that are found at both the links are pretty mathematical, and you don't need them to understand Behavior Trees. 

It is important to specify that a (mathematical) tree expresses relationships between nodes. In this sense, the same relationship that describes a family (e.g. parent, child, sibling) has been adopted in technical terms. To simplify the understanding of a tree, you can imagine your genealogical tree: each node is a person, and the branches (that connect people) are the relationships between the various people. However, the structure is still slightly different.

So, what is a tree? It is a graph that describes relationships between different nodes.

In particular, there is a "Root" node, which is the only node without a parent. From there, every node can have one or more children, but only one parent. The end nodes, which are the ones that do not have any child, are called leaves. Here is a simple diagram to help you understand the basic structure of a Mathematical Tree in general:

It might sound complicated, but it really isn't. Things will start getting interesting as we move on and talk about BehaviorTrees.