Researching Different AI Techniques - Behaviour Trees

I started reading "Getting Started with Decision Making and Control Systems" by Alex J. Champandard

In this chapter Champandard speaks about different support frameworks, such as the schedular which can manage the tasks used in the system calling them one after the other during its update step.  Champandard (2014) then goes on to give a basic scheduler example
Class Scheduler
{
public:
          bool run (Task&);
          bool halt (Task&);

          void update();

protected:
          struct Entry
          {
                 Task* task;
                 Status status;
                 // Other data for execution
           };
            std::vector<Entry> m_ActiveTasks;
}

Champandard then explains about task observers, that can watch other tasks deriving from a virtual base class, these should contain a function that is run once a task has finished executing, this allows the observer to complete actions and tasks as required.

The chapter then talks about hierarchal AI and how to make more interesting behaviours.  Although Champandard talks about using LUA as a scripting language to accomplish this, it seems easy enough to recreate this approach using C#.  Although an easier option is to use composite nodes such as Sequence, Selector, Parallel and Decorator.  Champandard (2014, pp. 262-263) goes into detail about what these nodes are capable of.  
     
With the use of composite nodes I will be able to create a single root node that will traverse down the tree with conditional checks against each child node, if the condition is met, the tree will continue to traverse down that branch until an action is performed or a conditional check fails.

This kind of BT can be used to build a framework for trees to work concurrently, and the observer can manage them, overriding behaviours if another one has a higher priority.  Champandard explains how a BT is easier to manage than an FSM and HFSM as transitions are not as rigid.

Reference List
[1] Champandard, A and Dunstan, P. (2014) “Getting Started with Decision Making and Control Systems” in Programming Game AI Wisdom 4, edited by Steve Rabin. pp. 257-264
[2] Champandard, A and Dunstan P. 2012. "The Behavior Tree Starter Kit". in Game AI Pro, ed. S. Rabin. Boca Raton, FL: CRC Press, pp. 73-95