| Input |
| Number of factors ( = ) and number of levels ( = 3). |
| Three individuals: , , . |
| Objective function (solution) of minimization or maximization problems. |
| Number of fitness evaluations FEs = 0. |
| Output |
| OL result. |
| Begin |
| % Construct the OA based on and . |
| Compute the minimum integer that satisfies ()/() = , then . |
| Construct an OA based on [24]. |
| % Compute the value of each level at each dimension by using (10). |
| For |
| = = ; = . |
| End for |
| Generate solutions based on . |
| The solution vectors are formulated as Equation (11). |
| % Evaluate the solutions with objective function. |
| The results are: . |
| % Accumulate the number of fitness evaluations. |
| FEs = FEs + . |
| % Choose the best solution . |
| = or . |
| % Compute the average effect of each level at each dimension . |
| For |
| % Find the row index that having the same level at dimension d based on OA. |
| % Compute the mean value of fitness results according to the index vector. |
| Index_1 = find (OA(:, ) == 1), = mean((Index_1)); |
| Index_2 = find (OA(:, ) == 2), = mean((Index_2)); |
| Index_3 = find (OA(:, ) == 3), = mean((Index_3)); |
| Compare , , , select the most beneficial level at dimension . |
| End for |
| Construct by combining all the most beneficial level values . |
| Compare and , and choose the best one as the OL result. |
| End |