**Begin** |

**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 |

* ** ** *individual |

* ** ** *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** |

**End.** |