| (1) Parameter setting: Pop.size = , Num.Iteration = 300, , , , elite = 2 |
| (2) Initialization: |
| (3) repeat |
| (4) generate a habitat |
| (5) if habitat does not exist yet then |
| (6) insert it into population |
| (7) else |
| (8) discard it |
| (9) until population size is reached |
| (10) calculate immigration, emigration, and mutation rates |
| (11) compute HSI of each habitat |
| (12) associate each habitat with immigration and emigration rate |
| (13) for to Num.Iteration do |
| (14) Migration: |
| (15) for to Pop.size do |
| (16) generate |
| (17) if then |
| (18) for to Pop.size do |
| (19) generate |
| (20) if then |
| (21) perform migration operator |
| (22) if new habitat does not exist in the population then |
| (23) new habitat replaces old habitat |
| (24) else |
| (25) keeps the old habitat |
| (26) recompute HSI for each habitat |
| (27) associate each habitat with mutation rate |
| (28) Mutation: |
| (29) for to Pop.size do |
| (30) generate |
| (31) if then |
| (32) perform tabu search |
| (33) if new habitat does not exist in the population then |
| (34) new habitat replace the old habitat |
| (35) else |
| (36) keeps the old habitat |
| (37) recompute HSI of each habitat |
| (38) associate each habitat with immigration and emigration rate |
| (39) if best known solution is found or Num.Iteration is reached then |
| (40) terminate the algorithm |