(1) //Initialization |
(2) The set of final Pareto solutions ; |
(3) The set of GA population ; |
(4) The set of weights combination ; |
(5) Given N objective functions, we have |
(6) Begin (at facilitator agent level) |
(7) //Enumerate weights combination |
(8) Set ; |
(9) Given weight step size ; |
(10) Let each increases , , |
and add () to WS; |
(11) //Weights Loop |
(12) For each weights combination () in , is |
constructed; |
(13) //GA loop |
(14) //Initialization |
(15) Generate random population of P solutions and add them to PS; |
(16) For to maximum # of generations for GA loop; |
(17) //Crossover and Mutation |
(18) Random select two parents and from PS; |
(19) Generate two offspring and by crossover operator; |
(20) if and/or are not feasible, generate new feasible offspring |
(21) and/or using mutation operator; |
(22) //Selection |
(23) Using fitness function () to evaluate the solution, update PS |
with improved solutions; |
(24) //Local Search Loop |
(25) For each chromosome in ; |
(26) Call each Design Agent for local optimization on x (note different |
optimization engines can be employed based on the design |
disciplines); |
(27) Given updates from Design Agent on x, Facilitator agent employs |
sub-gradient algorithm [19] as local search algorithm to |
iteratively locate improved solution with respect to y; |
(28) Next ; |
(29) //Pareto Filter: |
(30) For each chromosome in the set PS; |
(31) If is not dominated by all the solutions in the set ; |
(32) Add to the set ; |
(33) Else If there are solutions in the set are dominated by ; |
(34) Remove those solutions in the set FP; |
(35) End If; |
(36) Next ; |
(37) Next ; |
(38) End; |