Mathematical Problems in Engineering / 2014 / Article / Alg 1

Research Article

A Double Evolutionary Pool Memetic Algorithm for Examination Timetabling Problems

Algorithm 1

The details of our proposed algorithm.
Input: PopM: The population in the main evolutionary pool
   NM: The scale of population in the main evolutionary pool
   PopS: The population in the secondary evolutionary pool
   NS: The scale of population in the secondary evolutionary pool
  : The crossover probability in the main evolutionary pool
   : The mutation probability in the main evolutionary pool
    : The mutation probability for one single individual in the main evolutionary pool
    : The crossover probability for one single individual in the main evolutionary pool
   : The number of exchanged timeslots in the secondary evolutionary pool
   : The mutation probability for one single individual in the secondary evolutionary Pool
   IterMax: The maximum iteration number
   Itermax: The maximum iteration number for the local search operators
Output: The best individual PopBest in the secondary evolutionary pool
Step  1.  Initialization. Randomly create NM individuals in the main evolutionary pool according to what is described in
    Part B, which is denoted as PopM. Meanwhile, and .
Step  2.  Crossover. Randomly select individuals in the main evolutionary pool and perform crossover operation
    described in Part 3.3.
Step  3.  Mutate. Randomly select individuals in the main evolutionary pool and perform mutation operation PopM
    described in Part 3.4.
Step  4.  Local optimization. For each individual through crossover and mutation operation, the special local search operator is
    performed according to what is described in Part 3.5.
Step  5.  Selection. Select individuals from the main evolutionary pool to the secondary evolutionary pool. Once the individuals in
    the main evolutionary pool satisfy all hard constraints, all feasible individuals are put into the secondary evolutionary pool.
    Meanwhile, create some new individuals replacing those feasible ones in the population for the main evolutionary pool.
Step  6.  Clone. Assume that the number of feasible individuals is NF. If , randomly select NS individuals from all feasible
    individuals. Otherwise, each feasible individual obtained from the main evolutionary pool is copied according to the
    following rules. The number of each feasible individual after clone is . And then combine original individuals in
    the secondary evolutionary pool with the cloned individuals. Select the best NS individuals as the population in the
    secondary evolutionary pool.
Step  7.  Local optimization. After clone, the local search operator described in Part 3.6 is performed to make the feasible
    individuals satisfy more and more soft constraints.
Step  8.  Selection. Select potential individuals in the secondary evolutionary pool according to (4). Keep the best
    individual in the current generation constant in the population in the secondary evolutionary pool. And then combine
    other individuals in the original secondary evolutionary pool with the best individual to form the population in the
    secondary evolutionary pool.
Step  9.  , and go to Step  2.
Step  10.  If Iter reaches IterMax output the best individual PopBest in the secondary evolutionary pool.