# Metaheuristic Approaches to Solve a Complex Aircraft Performance Optimization Problem
## 4 Genetic Programming Aided Optimization of Conceptual Aircraft Design
### Metamodel Building by Genetic Programming (GP)  
GP methodology is a systematic way of selecting a structure of high-quality global approximations, which can reflect the relationship between input parameters and output responses of the interests [24]. Figure 2: Minimum distances between points in 250-point optimal Latin hypercube DoE (Design of Experiments). As other nature-inspired methods, a population is generated in GP by three most important genetic operators: reproduction, mutation and crossover. The initial population is constructed by a blind random search of the space defined by the problem. The formula obtained by each individual in a population is composed of a random combination of functions (mathematical operators, such as square and addition) and terminals (variables and constants [40; 41]) and these mathematical approximations are actually computer programs with a tree structure. Selection of the structure of an analytical expression is a problem of empirical model building. A tree structure-based typical program, representing the expression \((x_{1}\times x_{2}-x_{3})^{1/2}\), is shown in Figure 3.  
These randomly generated approximations are general and hierarchical, varying in size and shape. The main goal of GP is to solve a problem by searching a highly fit individual computer program in the space of all possible programs. GP methodology tries to find near-global solutions by keeping many solutions that may potentially be close to minima (local or global). A schematic description of the GP technique is sketched in Figure 4 to demonstrate the process of metamodel building. First, initializing the population was performed to create various tree structures. Followed by parameter insertion to generate a family of mathematical expressions with coefficients, optimization by sequential quadratic programming (SQP) algorithm was conducted to determine the optimal locations and numbers of coefficients (or numerical terminals). After tuning, the individual that had the lowest error was chosen to represent the original individual. Finally, the fitness function was evaluated to assess the quality of each individual until the termination criterion was satisfied throughout the iterations of the whole process. More details about the procedure of GP methodology have been introduced in References [24; 25; 42]. To encourage the evolution of smooth mathematical expressions, the fitness values G\((i,t)\) of individual i at generation t have been defined as a weighted sum of different terms or objectives, following an approach used for multi-objective optimization in evolution-based algorithms:  
\[RMSE=\sqrt{\frac{1}{N}\sum\
olimits_{i=1}^{N}\!\left(y_{i}-y_{i}^{\prime} \right)^{2}} \tag{6}\]  
\[\text{G}(i,t)=a_{1}G_{1}(i,t)+a_{2}G_{2}(i,t)+a_{3}10^{6}G_{3}(i,t)+a_{4}G_{4 }(i,t), \tag{7}\]  
\[a_{1}+a_{2}+a_{3}+a_{4}=1 \tag{8}\]  
where \(G_{1}\) is the root mean square error (RMSE) of the \(i\)-th individual in the \(t\)-th generation evaluated on the given data set, divided by the average RMSE of the archive individuals at the previous generation, N is the total number of training data, \(y_{i}\) is the actual value, \(y_{i}^{\prime}\) is the estimated value; \(G_{2}\) is the square of the number of numerical coefficients (parameters) present in the individual; \(G_{3}\) is the number of operations not defined (i.e., division by zero) in the individual at any of the sample points; \(G_{4}\) is the number of nodes that the individual is made of and \(a_{1}\), \(a_{2}\), \(a_{3}\) and \(a_{4}\) are weighting factors (that add up to 1) determined by the exhaustive testing and tuning of the GP algorithm. To robustly solve  
Figure 3: Typical tree structure for an expression \((x_{1}\times x_{2}-x_{3})^{1/2}\). multi-criterion optimization problems, a Pareto set method can be applied to select optimal weighting factors [43]. In this paper, the weighting factors were \(a_{1}=0.8989,\;\;a_{2}=0.001,a_{3}=0.1\), and \(a_{4}=0.0001\).