1 | This package contains is an implementation of the Strength Pareto |
---|
2 | Evolutionary Algorithm 2 (SPEA2). |
---|
3 | |
---|
4 | Details of this approach can be found in the following paper: |
---|
5 | |
---|
6 | E. Zitzler, M. Laumanns, and L. Thiele.SPEA2: Improving the Performance |
---|
7 | of the Strength Pareto Evolutionary Algorithm. Technical Report 103, |
---|
8 | Computer Engineering and Communication Networks Lab (TIK), Swiss Federal |
---|
9 | Institute of Technology (ETH) Zurich, Gloriastrasse 35, CH-8092 Zurich, |
---|
10 | May 2001. |
---|
11 | |
---|
12 | ftp://ftp.tik.ee.ethz.ch/pub/people/zitzler/ZLT2001a.ps (Postscript), |
---|
13 | ftp://ftp.tik.ee.ethz.ch/pub/people/zitzler/ZLT2001a.pdf (PDF) |
---|
14 | |
---|
15 | |
---|
16 | ABSTRACT |
---|
17 | |
---|
18 | The Strength Pareto Evolutionary Algorithm (SPEA) (Zitzler and Thiele |
---|
19 | 1999) is a relatively recent technique for finding or approximating the |
---|
20 | Pareto-optimal set for multiobjective optimization problems. In |
---|
21 | different studies (Zitzler and Thiele 1999; Zitzler, Deb, and Thiele |
---|
22 | 2000) SPEA has shown very good performance in comparison to other |
---|
23 | multiobjective evolutionary algorithms, and therefore it has been a |
---|
24 | point of reference in various recent investigations, e.g., (Corne, |
---|
25 | Knowles, and Oates 2000). Furthermore, it has been used in different |
---|
26 | applications, e.g., (La-hanas, Milickovic, Baltas, and Zamboglou 2001). |
---|
27 | In this paper, an improved ver-sion, namely SPEA2, is proposed, which |
---|
28 | incorporates in contrast to its predecessor a fine-grained fitness |
---|
29 | assignment strategy, a density estimation technique, and an enhanced |
---|
30 | archive truncation method. The comparison of SPEA2 with SPEA and two |
---|
31 | other modern elitist methods, PESA and NSGA-II, on different test |
---|
32 | problems yields promising results. |
---|
33 | |
---|
34 | This package has a significant history. The early versions of the |
---|
35 | package were donated by Robert Hubley at the Institute for Systems |
---|
36 | Biology. Major later modifications were made by Sean Luke, Gabriel Balan, |
---|
37 | and Keith Sullivan. Then the SPEA2 package was almost entirely rewritten |
---|
38 | in 2010 by Faisal Abidi and Sean Luke. |
---|
39 | |
---|
40 | |
---|
41 | EXAMPLES |
---|
42 | -------- |
---|
43 | |
---|
44 | The ec.app.moosuite package contains test cases against which to test SPEA2. |
---|
45 | |
---|
46 | |
---|
47 | How ECJ implements SPEA2 |
---|
48 | ------------------------ |
---|
49 | |
---|
50 | SPEA2 is an elitist archive method which in some sense extends mu+lambda. |
---|
51 | That is, SPEA2 maintains a pool (the "archive") of some N high quality |
---|
52 | individuals which more or less holds the present known pareto front of |
---|
53 | the population. That archive is carried over from generation to generation. |
---|
54 | |
---|
55 | SPEA2 has an elaborate fitness setting procedure which involves the |
---|
56 | computation of several measures of domination (known as "strength") and |
---|
57 | sparsity. This computation is performed by a revised SimpleEvaluator subclass: |
---|
58 | |
---|
59 | ec.multiobjective.spea2.SPEA2Evaluator |
---|
60 | |
---|
61 | New children are then bred and an archive is formed by loading the pareto |
---|
62 | front, trimmed by sparsity plus various other "highly fit" children (if there |
---|
63 | is space). The breeding procedure is handled by a revised version of |
---|
64 | SimpleBreeder: |
---|
65 | |
---|
66 | ec.multiobjective.spea2.SPEA2Breeder |
---|
67 | |
---|
68 | Because it uses auxiliary fitness measures to perform breeding, SPEA2 requires |
---|
69 | a subclass of MultiObjectiveFitness which stores these auxiliary measures: |
---|
70 | |
---|
71 | ec.multiobjective.spea2.SPEA2MultiObjectiveFitness |
---|
72 | |
---|
73 | When SPEA2 needs to do breeding, it does so solely from the archive, not from |
---|
74 | the full population. This means that the selection operator |
---|
75 | (TournamentSelection, which SPEA uses) needs to be modified to only |
---|
76 | consider the archive when selecting an individual. Our modified version is: |
---|
77 | |
---|
78 | ec.multiobjecive.spea2.SPEA2TournamentSelection |
---|
79 | |
---|
80 | |
---|
81 | SPEA2 and NSGA-II have different approaches to building archives which impacts |
---|
82 | on how you need to set your population sizes in order to achieve the same number |
---|
83 | of evaluations. In ECJ, NSGA-II does not include the archive as part of the basic |
---|
84 | population size. Rather, it builds the archive separately, then builds the |
---|
85 | population by breeding from the archive, then gloms the two together. On the |
---|
86 | other hand, SPEA2 uses a (tunable) portion of its population as the archive, and |
---|
87 | breeds individuals into the remainder of the population. This means that to have |
---|
88 | a "population size" for SPEA2 that's the same as NSGA-II, you need to increase |
---|
89 | SPEA2's population size to NSGA-II's population size plus SPEA2's archive (elites) |
---|
90 | size. For example, if you have an NSGA-II population size of 100, and SPEA2 is using |
---|
91 | an archive size of 50, to be fair you should make SPEA2's population size be 150. |
---|
92 | |
---|
93 | If you set things so that SPEA2 and NSGA-II must reevaluate the fitness of |
---|
94 | their archives (which is rare), things are different. Now you should set SPEA2 |
---|
95 | so that its archive size and population size is equal to twice NSGA-II's population |
---|
96 | size (because NSGA-II's archive size is the size of its population). |
---|
97 | |
---|
98 | |
---|