Free cookie consent management tool by TermsFeed Policy Generator

source: branches/OKBJavaConnector/ECJClient/src/ec/multiobjective/spea2/README @ 6152

Last change on this file since 6152 was 6152, checked in by bfarka, 13 years ago

added ecj and custom statistics to communicate with the okb services #1441

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