// Swarm initialization with HEFT |
(1) For i = 1 to SNum (SNum is the size of particle swarm) |
(a) For j = 1 to m (m the number of processors) |
(i) Randomly initialize VSL(j) (randomly choose the voltage/frequency of processor from the set of its operating points). |
(b) Initialize with HEFT heuristic (S is the swarm of particles) |
(c) Initialize the velocity V of each particle |
|
(d) Initialize the Personal Best (pBest) of each particle: |
; |
(e) Evaluate objectives of each particle: |
Evaluate S[i] |
(f) Initialize the Global Best particle (gBest) with the best one among the SNum particles: |
g Best particle found in |
(2) End For |
(3) Add the nondominated solutions found in S into EA (EA is the External Archive storing the pareto front) |
(4) Initialize the iteration number |
(5) Repeat until ( is the maximum number of iterations) |
(a) For to SNum (swarm size) |
(i) Randomly select the global best particle for S from the External Archive EA and store its position in gBest. |
(ii) Calculate the new velocity according to (22) |
(iii) Compute the new position of according to (23) |
(iv) If * PMUT then (PMUT is the probability of mutation) |
Perform mutation on . |
(v) Evaluate S[i] |
(b) End For |
(c) Update the personal best solution of each particle : |
if |
Then |
(d) Update the External Archive EA: |
(i) Add all new non-dominated solution in S into EA |
if Then |
(ii) Remove all particles dominated by in EA |
|
(iii) If the archive is full then randomly select the article to be replaced from EA. |
(6) Return the pareto front (the set of non-dominated solutions from S and EA) |