Research Article

Multiswarm Multiobjective Particle Swarm Optimization with Simulated Annealing for Extracting Multiple Tests

Algorithm 1

Pseudocode: migration parallel MMPSO.
Function Migration_Par_MMPSO: Extracting tests using Migration Parallel MMPSO
For each available thread t do
  Generate the initial population with random questions;
  While stop conditions are not met do
   Gather Gbest and all Pbest;
   Foreach Pbest
   Move Pbest towards Gbest using location information of Gbest,;
    Update velocity using equation (4);
    Update position using equation (5);
   End for
   Gbest moves in a random direction to search for the optimal solution;
    If the probability for migration γ is met then
     Execute function Migration_MMPSO with t;
    End if
  End while
End for
Function Migration _MMPSO: Improving solutions with migration method
Lock the current thread (i.e., block all modifications from other threads to the current thread) to avoid interference from other threads to the current thread during migration procedure.
  Select λ, which are the set of stronger individuals for migration except for the Gbest;
  Lock other threads so that no unintended changes will happen to them during the migration:
  Choose a thread that has a Gbest weaker than the one in the current thread;
  Unlock the other threads except for chosen thread;
  Set the status of the chosen thread to “Exchanging”;
  Move the λ selected individuals to the chosen thread;
  Remove those λ selected individuals;
  Select the λ weakest individuals in the chosen thread;
  Add those λ weakest individuals to the current thread;
  Set the status of chosen thread to “Available”;
 Unlock the current thread and the chosen thread;