| Algorithm 1. Optimal matching calculation by EC |
| i = 0 |
| Forj = 0: S − 1 Do |
| //random generation of parameters t, a, b, k, h |
| initial a population POPi(j) = (t, a, b, k, h) |
| calculate fitness of each member in POPi(j) |
| End For |
| Whilei < Iterations Do |
| i = i + 1 |
| //sorting and classification |
| order POPi−1 by fitness in ascending and divide them into 4 levels |
| //acceleration search |
| For j = 0:S − 1 Do |
| If POPi−1(j) is at level kind |
| //where, kind = 1, 2, 3, 4, indicating the classification level of each population |
| //random generation of new parameters t, a, b, k, h in the neighborhood |
| //i.e., a = rand(POPi−1(j).a, kind) |
| generate new kind+1 subpopulations nPOP from POPi−1(j) |
| calculate fitness of each member in nPOP |
| //sorting subpopulations |
| order nPOP by fitness in ascending |
| //select best subpopulation nPOP as POPi−1(j + S) |
| POPi−1(j + S) = nPOP(0) |
| End If |
| End For |
| //global selection |
| order POPi−1 by fitness in ascending, where there are 2S populations |
| select the top S from POPi−1 as POPi |
| End While |