**Begin** |

**Step 1: Initialization.** Set the generation counter ; and randomly initialize |

* *a population of NP individuals , the parameter TS, , ALLOW |

**Step 2:** Evaluate the fitness(HSI) for each individual in according to (4.1). |

**Step 3: 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 tabu search migration operator shown in |

* *Algorithm 7 |

* *Update the probability for each individual |

* *Mutate the population with the tabu search mutation operator shown in |

* *Algorithm 8 |

* *Evaluate the fitness for each individual in |

* *Memorize the best solution achieved so far |

* ** * |

**Step 4: end while** |

**End.** |