Researching Different AI Techniques - Hierarchical Finite-State Machine

While researching into Finite-State Machines (FSMs) I came across a Hierarchical Finite-State Machine (HFSM).  (Buckland, 2005) explains them as "a state itself contain a state machine.".  This means if an agent has a combat state, that state might contain an FSM that manages the states needed for combat, such as dodge and shoot.

A HFSM is similar to a FSM where the logic is built up state by state, however, in an HFSM states are grouped together to create a super state.  This allows the programmer to make transitions between the super states, rather than applying them to each individual state.  This reduces redundant transitions as they are only applied once to the super state.
HFSMs make use of inheritance, this allows each substate of a super state to override specific behaviours, this allows internal transitions that are not recognised by the super state.  However, HFSMs still have issues with transitions between states which can become tedious.

 

Reference List
[1] Champandard, A. (2007). The Gist of Hierarchical FSM. [online] Aigamedev.com. Available at: http://aigamedev.com/open/article/hfsm-gist/ [Accessed 3 Oct. 2018].
[2] Chang, K. and Zhu, D. (n.d.). Hierarchical Finite State Machine (HFSM) & Behavior Tree (BT). [online] Web.stanford.edu. Available at: https://web.stanford.edu/class/cs123/lectures/CS123_lec08_HFSM_BT.pdf [Accessed 2 Oct. 2018].
[3] Heckel, F., Youngblood, G. and Ketkar, N. (2010). Representational complexity of reactive agents. Proceedings of the 2010 IEEE Conference on Computational Intelligence and Games, pp.257-264.