Generate initial population X containing N individuals . |
Initialize the parameters related to the algorithm: a, r, b, prob, t, max_iter. |
Initialize two matrices in QUATRE: |
the coevolutionary matrix M (Eq. (6) or Eq. (7)). |
the donor matrix B (Eq. (8)). |
Initialize the parameters related to the search space size: |
ub = ub_new = ub_max. |
lb = lb_new = lb_min. |
Calculate the fitness value of each solution. |
X = the best individual. |
While (t < max_iter) and (not obtain the predefined function value). |
For each solution. |
Update a, r, b, l, prob, M, B. |
If1 (prob <0.5). |
If2 (). |
Update the position of the current solution using Eq. (9). |
Else if2 (). |
Select a random solution Xrand. |
Update the position of the current solution using Eq. (2). |
End if2. |
Else if1 (). |
Update the position of the current solution using Eq. (10). |
End if1. |
End for. |
Check if any solution goes beyond the search space and amend it. |
Calculate the fitness value of each solution. |
Update X if there is a better solution. |
t = t +1. |
Shrink the search space size using Eq. (11) and (12). |
End while. |
Return X |