Step  1:  Preprocessing. Preprocess the questions in item bank described in
     subsection 6.3.1, and determine which is the total number of questions
     contained in a test-sheet
  Step  2: Initializing. Set the generation counter ; set the status code of habitat
     (i.e., SIV) according to subsection 6.3.2; randomly initialize a
     population of NP individuals ; set the maximum variation rate and
     migration rate ; set dimension for the optimization problem ; set the
     maximum capacity of habitat species ; set maximum of immigration
     function and the maximum of emigration function and the maximum of
     elite individuals retained ; set the parameter TS, , ALLOW related to
     tabu search
  Step  3: Calculating the immigration and emigration rate. Calculating the species
     number , the immigration and emigration rate
      corresponding to habitat based on its SIV
     according to (2.10)
  Step  4: while The halting criteria is not satisfied do
     Sort the population from worst to best according to HSI
     For each individual, map the HSI to the number of species
     Calculate the immigration rate and the emigration rate for each
    Modify the population with the taboo search migration operator shown in
     Algorithm 7
     Update the probability for each individual
     Mutate the population with the taboo search mutation operator shown in
     Algorithm 8
     Evaluate the fitness for each individual in
     Memorize the best solution achieved so far
  Step  5: end while
Algorithm 10: Algorithm of TS/BBO for test-sheet composition.