| Initialize () |
| Minimize σ () |
| For each particle generates the position and velocity randomly. |
| Xp ← the initial position // Xp is the particles best historical |
| Xg ← the initial position // Xg is the best of all particles |
| Repeat |
| Determine velocity using (12). |
| Update new position particle using (11). |
| Determine of new position using (10). If the new position has a lower and CR < 0.1 updated new position is allowed |
| otherwise, update new position is canceled and keeping the current position. |
| Choosing the new Xp and Xg based on value σ |
| Until max iterations is reached |
| Get minimal σ |
| Minimize CR () |
| For each particle generates the position and velocity randomly. |
| Xp ← the initial position // Xp is the particles best historical |
| Xg ← the initial position // Xg is the best of all particles |
| Repeat |
| Determine velocity using (12). |
| Update new position particle using (11). |
| Determine CR of new position using (4). If the new position has a lower CR and CR < 0.1 updated new position is allowed |
| otherwise, update new position is canceled and keeping the current position. |
| Choosing the new Xp and Xg based on value CR |
| Until max iterations is reached |
| Get minimal CR |
| Minimize CR-σ () |
| CRo ← 0.1 |
| Xp ← the initial position // Xp is the particles best historical |
| Xg ← the initial position // Xg is the best of all particles |
| While CRmin < CRo |
| Repeat |
| Determine velocity using (12). |
| Update new position particle using (11). |
| Determine CR of new position using (4). If the new position has a lower CR and CR < 0.1 updated new position is allowed |
| otherwise, update new position is canceled and keeping the current position. |
| Choosing the new Xp and Xg based on value CR |
| Until max iterations is reached |
| Store the modified matrix and its CR, |
| CRo CRo − k // k is small value, in this study |
| End While |
| Get matrices with their CR, |