## 3 Advantages of Specifying a Morphology in Controllers Creation  
In EA for control applications each element of every generation is a controller. To create a controller a tree structure is commonly used [19]. In present work the notation of Scheme programming language [27] is used to represent tree structures in textual form as is shown in Figure 2. Controllers are specified by nodes and leaves; nodes are formed by math operators and leaves are its operands. Operators can be unary or binary; operands can be symbols or numbers; usually symbols denote state variables and numbers are controller parameters. To create a random controller a set of nodes and a set of leaves are needed. These sets can be represented as:  
\[Nodes =\{UnaryOperators,BinaryOperators\} \tag{2a}\] \[Leaves =\{Symbols,Interval\} \tag{2b}\]  
At the same time  
* \(UnaryOperators\) is a set of unary operators. * \(BinaryOperators\) is a set of binary operators. * \(Symbols\) is a set of symbols. * \(Interval\) is an interval, that is a set of parameter values. To create a simple controller an element of set \(Nodes\) is picked a random, the result hast to be the \(UnaryOperators\) set or the \(BinaryOperators\) set. If \(UnaryOperators\) is chosen then an unary operator is picked at random; on the contrary, if \(BinaryOperators\) is chosen then an binary operator is picked at random. Depending on what type of operator results, one or two leaf is needed. In any case, a leaf is created picking one element of the set \(Leaves\), that yields the set \(Symbols\) or the set \(Interval\); if the result is the set of \(Symbols\) then a symbol is picked at random, on the contrary, a number within the interval is picked at random. The following six general cases can result from this process  
\[ \begin{array}{llll}1.&(O_{b}&s_{1}&s_{2})\\ 2.&(O_{b}&s_{1}&n_{1})\\ 3.&(O_{b}&n_{1}&s_{1})\\ 4.&(O_{b}&n_{1}&n_{2})\\ 5.&(O_{u}&n_{1})\\ 6.&(O_{u}&s_{1})\\ \end{array} \]  
Where \(O_{b}\in BinaryOperators\), \(O_{u}\in UnaryOperators\), \(s_{1},s_{2}\in Symbols\) and \(n_{1},n_{2}\in Interval\). Note that depending of the size of sets of \(UnaryOperators\), \(BinaryOperators\) and \(Symbols\) many controllers can be generated from this simple process. Moreover, any leaf can be substituted by a tree to obtain a tree of depth 2 like in Figure 2. Similarly a tree of depth 3, 4 an so on, can be obtained. The number of possible controller can be huge even for small size of sets \(UnaryOperators\), \(BinaryOperators\), and \(Symbols\). In EA proposed till now, the set of controllers that can be created, that is the search space, is limited only by the operators allowed to be used and the maximum depth of the  
Figure 2: Graphical tree representation of the scheme expression (\(op_{1}\) (\(op_{2}\) 7.2 \(e\)) (\(op_{3}\) 3 \(e\))). tree [19]. When the operators allowed and the maximum depth of the controller tree are the only restrictions in the evolution of elements there are two inconvenient  
* The search space size causes algorithm converge very slowly or not converge at all. * It is not possible to take advantage of the apriori knowledge that the control engineer may have about the system. In present work restrictions in the kind of controllers the algorithm is able to generate are imposed. More precisely, controllers created must have a given morphology. If controllers that the algorithm generates always has the same morphology, the researcher can influence the evolution process; hence, researcher could decide to use state feedback controllers, discontinuous controllers, state feedback linearization controllers, PID controllers, etc. For example, if an engineer knows that a system can be controlled by a PI/PID control, then she could establish the morphology  
\[ \begin{split}\dot{w}_{c}&=a_{c}w_{c}\\ u&=c_{c}w_{c}+d_{c}\end{split}  \tag{3}\]  
where \(w_{c}\) is the controller system state variable; \(a_{c}\), \(c_{c}\) and \(d_{c}\) are constants that determine the controller dynamics and \(u\) is the controller output.