## 1 Introduction  
In real life, the optimization problem [1] can be normally classified as a \"black box\" model which consists of three main components: input, model, and output as shown in Figure 1. In case any component is unknown, a new problem type arises. When the input and output are known and the model is unknown, this type of problem is called a modeling problem where the solution is to find the function that maps the input to the output. This type of problem can be heavily seen in data mining and machine learning domain, especially in prediction and classification problems. When some inputs and models are known, and the target is to enter these input conditions into the model to determine the output, this problem is known as a simulation problem that can be used in engineering design problems, especially for forecasting. Finally, when the model and the desired output are known and the target is to find the input, this problem is known as the optimization problem. An example of optimization problems is the creating an optimal image quality evaluator [2], feature selection [3], and scheduling [4,5], additive manufacturing [6], renewable energy system [7], etc. In general, optimization problems normally include a set of decision variables as an input to the objective function as a model where the desired output is known or can be measured. The main target is to find the optimal values for the decision variables that results in the minimal or maximum value of the objective function [8]. Based on their value ranges, the alternative combination of decision variables forms a huge search space. The definition of the search space depends solely on the problem characteristics. The problems have either unimodal modal or multimodal search space as can be shown in Figure 2. The complexity of the problems is normally justified based on the search space ruggedness and solution dimensions. The ruggedness of the search space can be related to the problem constraints while solution dimensions can be related to the problem size. The constraints of the optimization problem determine the movement through the search space. The earliest methods are based on mathematical theories such as integer/linear programming, Simplex Method, etc. The main advantage of these methods for the optimization problem is that they can find the exact solution by conducting an exhaustive search; however, they are normally unworkable with the optimization problem of NP-hard and NP-Complete classes since the polynomial-time required is almost uncountable. As a result, heuristic-based approaches emerged to find an approximate solution for the optimization problem in a reasonable time. The heuristic-based techniques are normally problem-dependent where the problem-specific knowledge is embedded. Examples of these heuristic-based approaches in traveling salesman problems such as 2-opt and 3-opt moves. These heuristics indeed have efficiency in solving the  
Figure 1: “black box” models for real-life problems. Figure 2: 3D search space for optimization functions. a small amount of time, although they work as a constraint satisfaction method with less concern for the solution quality. A new metaphor in evolutionary computation is produced to deal with optimization problems. A population of individuals who competes in an environment with limited resources to survive is the imitation of evolutionary algorithms (EAs). In EAs, the fitter individuals have a better chance to inherit their strong attributes to the next generations. This is known as the Darwinian natural selection of survival-of-the-fittest principle. EAs are general optimization templates that can be applied to a variety of optimization problems through efficient operators for sharing knowledge such as recombination, mutation, and selection controlled by carefully initialized parameters until a \"good-enough\" individual is obtained. The first generation EAs are Genetic Algorithm (GA) [9], Genetic Programming [10], Evolution Strategy [11], and Biogeography-Based Optimizer [12].