*4.2. Genetic Algorithm (GA)*

Genetic algorithm is inspired and operated by mimicking Charles Darwin's evolution method. First, the initial populations are randomly generated, which are binary numbers. Each population has equal binary numbers to the decision variables (*nVar*) multiplied by the bit number (*nBit*) assigned for each decision variable. The binary numbers for each population are then converted to decimal numbers. Following this, the decimal numbers are compared with the range of each decision variable (*lb*, *ub*) to obtain the real values for each decision variable and then substituting them to find the objective function. After that, three main steps comprising of population selection, cross over, and mutation are considered. In the first step, two populations are randomly selected from the parents' generation, and the cross over is operated between the selected populations in step two where the number of cross over is according to the cross over percentage (*pc*). In the last step, the mutation is proceeded based on the mutation rate (*mu*), and binary numbers are converted to decimal numbers to evaluate the objective function. The best fitness value is updated until the max iteration (*itermax*) is reached [36].
