Set up parameters and initialize the number of iterations to zero. |

Generate a random population of particles: |

Evaluate the fitness of the particles and set the local best location for each |

particle equal to its current location. |

Form the Pareto front and make a list of particles belonging to the front. |

Build the singular point. |

Find the closest particle to the singular point and establish it as swarm leader. |

While not in termination-condition, do the following: |

(a) Execute from *i* = 1 to number of particles. |

Start |

* *(i) Change the position of the particle: |

* * Determine the inertia parameter , according to (3.8). |

* * Calculate the new velocity, , for particle according to (3.4) or (3.5). |

* * Set a new position, , for particle according to (3.7). |

(ii) Calculate the new fitness function vector for particle in its new position. |

(iii) If the new fitness function vector for particle dominates the fitness |

* * function vector that the particle had before moving to the new position; |

* * then set the new position as the best position currently found by particle *i*. |

(iv) If particle is in the list of particles belonging to the Pareto front then: |

if the new fitness function vector may also be a point on the |

Pareto front and this new position has at least one of its |

neighbors located further than the minimal permissible distance |

from any of the objectives, then add a new particle *j* (a clone of *i*) |

with and located at the current position of *i*; |

else |

try to add (if possible) the particle *i* (at its new position) to the |

Pareto front; if the particle is added, remove from the list any |

dominated solution; dominated clones are eliminated from the swarm. |

(v) If particle is closer to the singular point than any other particle in the |

* * swarm, then set particle as the leader of the swarm with regard to the |

* * singular point. |

(vi) If particle is not currently the leader of the swarm, but coincides in |

* * * *position with the leader, then re-generate particle randomly. |

End |

(b) Increase the iteration number. |

Show the Pareto front and related results. |