Research Article

An Improved MOEA/D Based on Reference Distance for Software Project Portfolio Optimization

Algorithm 1

Input
(i)Multiobjective optimization fitness function, that is, (6)
(ii) and
(iii)A uniform spread of weight vectors:
Output: EP.
Step 1. Initialization:
   Step 1.1. Set , Count = 0;
   Step 1.2. Calculate the Euclidean distances between any two weight vectors and then work out the closest weight vectors to each weight vectors. For each , set , where are the T closest weight vectors to .
   Step 1.3. Randomly generate an initial population . Compute .
Step 2. Update:
For , do the following.
   Step 2.1. Randomly select two indexes, and from , and then generate a new solution from and by using general genetic operators.
   Step 2.2. Check if satisfies the constraints; if no, adjust to meet the constraints and mark to .
   Step 2.3. Update the neighboring solutions. For each index , if , then set and ; .
   Step 2.4. Update the EP. Remove all the vectors dominated by from EP. Add to EP if there is no vector in EP that dominates .
   Step 2.5. If , go to Step 2.6; else, go to Step 3.
   Step 2.6. Find all the subproblems where solutions are not replaced and find the corresponding weight vectors to each subproblem.
   Step 2.7. Adjust the values of fitness functions for the solutions in EP and normalize them to [0,1].
     Step 2.8. For each weight vector found in Step 2.6, calculate the reference distances from the solutions in EP to the vector; find the solution with the shortest distance and use it to replace the current solution with respect to the corresponding subproblem.
Step 3. Stopping Criteria: If stopping criteria is satisfied, then stop and output EP. Otherwise, go to Step 2.