Research Article

An Enhanced Differential Evolution Based Algorithm with Simulated Annealing for Solving Multiobjective Optimization Problems

Pseudocode 1

Pseudocode of MODESA.
Step  1. Initialization
  Initialize the values of the parameters in Table 1.
  Generate the initial population using uniform distribution.
  Generate opposite solutions denoted as by using OBL operation on .
  Select best individuals as the current population by using non-dominated sorting and the
  vicinity distance based pruning method on .
  For ( ; ; ++ ) {
     .
   End For
  
Step  2. Main loop
  While ( ) {
     .
    Construct a temporary population which is denoted as and set .
    For ( ; ; ++ ) {
      Randomly select three distinct individuals: , and , which are different
      from the current individual from the current population.
      Select the best individual from the three distinct individuals as the base vector
      for the next mutation operation.
      Produce a trial individual :
        generate a random number
        For each variable of
           With a probability cr or is equal to
          do
             .
          otherwise
             .
          If ( )  .
          If ( )  .
       }// End For
      Check the domination status of the trial individual and the current individual .
      If ( dominates ) {
       Replace the current individual by the trial individual : .
     }
     Else if ( and are incomparable) {
       Use the proposed simulated annealing to allocate the two individuals: and .
       SimulateAnnealing ( , , , , , , , ).
        .
     }
     Else if ( is dominated by ) {
       Put the trial individual to the temporary population.
     }// End If
  }// End For
  Union the two population: .
  If ( ) {
     Use the non-dominated sorting to the union population to remove the individuals that
     are dominated by any other solutions.
    }// End If
    Select individuals as the next population from the union population by using the
    non-dominated sorting.
    For ( ; ; ++ ) {
      If ( )
          ;
    }// End For
    Apply the vicinity distance based pruning method.
  }// End While