fixes #21
Switched from Ant to Maven. Usage: - Install Maven 3.x - Enter directory with pom.xml - Type mvn compile - Enjoy!
This commit is contained in:
15
resources/html/Default.html
Normal file
15
resources/html/Default.html
Normal file
@@ -0,0 +1,15 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>Default page</title>
|
||||
</head>
|
||||
<body>
|
||||
<EFBFBD>
|
||||
<h1 align="center">HTML description file is missing</h1>
|
||||
<center>
|
||||
</center><br>
|
||||
Unfortunately there is no additional HTML description
|
||||
file to this class. Please refer to the JOptDocumentation
|
||||
file or the JavaDoc for more information on this class.
|
||||
|
||||
</body>
|
||||
</html>
|
25
resources/html/EvolutionStrategies.html
Normal file
25
resources/html/EvolutionStrategies.html
Normal file
@@ -0,0 +1,25 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>Evolution Strategy - ES</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1 align="center">Evolution Strategy - ES</h1>
|
||||
<center>
|
||||
</center><br>
|
||||
An ES works on a population of real valued solutions
|
||||
by repeated use of evolutionary operators like reproduction,
|
||||
recombination and mutation.
|
||||
λ offspring individuals are generated from μ parents
|
||||
by recombination and mutation (with μ < λ).
|
||||
<br>
|
||||
After evaluating the fitness of the λ
|
||||
offspring individuals, the comma-strategy selects the μ individuals
|
||||
with the best fitness as parent population for the next generation.
|
||||
On the other hand, a plus-strategy selects the best μ individuals
|
||||
from the aggregation of parents and offspring individuals, so in this
|
||||
case the best individual is guaranteed to survive.
|
||||
In general, however, the comma-strategy is more robust and can easier
|
||||
escape from local optima, which is why it is usually the standard selection.
|
||||
<br>
|
||||
</body>
|
||||
</html>
|
30
resources/html/EvolutionStrategyIPOP.html
Normal file
30
resources/html/EvolutionStrategyIPOP.html
Normal file
@@ -0,0 +1,30 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>Increasing Population Size ES - IPOP-ES</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1 align="center">Increasing Population Size ES - IPOP-ES</h1>
|
||||
<center>
|
||||
</center><br>
|
||||
<p>
|
||||
This class implements the IPOP (increased population size) restart strategy ES, which increases
|
||||
the ES population size (i.e., lambda) after phases of stagnation and then restarts the optimization
|
||||
by reinitializing the individuals and operators.<br>
|
||||
Stagnation is for this implementation defined by a FitnessConvergenceTerminator instance
|
||||
which terminates if the absolute change in fitness is below a threshold (default 10e-12) for a
|
||||
certain number of generations (default: 10+floor(30*n/lambda) for problem dimension n).
|
||||
</p>
|
||||
<p>
|
||||
If the MutateESRankMuCMA mutation operator is employed, additional criteria are used for restarts,
|
||||
such as numeric conditions of the covariance matrix.
|
||||
Lambda is increased multiplicatively for every restart, and typical initial values are
|
||||
mu=5, lambda=10, incFact=2.
|
||||
The IPOP-CMA-ES won the CEC 2005 benchmark challenge.
|
||||
Refer to Auger&Hansen 05 for more details.
|
||||
</p>
|
||||
<br>
|
||||
A.Auger & N.Hansen. <i>A Restart CMA Evolution Strategy With Increasing Population Size</i>. CEC 2005.
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
30
resources/html/F13Problem.html
Normal file
30
resources/html/F13Problem.html
Normal file
@@ -0,0 +1,30 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>Schwefels's (sine root) function</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1 align="center">Schwefel's (sine root) function</h1>
|
||||
<center>
|
||||
<img src="images/f13-tex-500.jpg" width="650" height="64" aling="center">
|
||||
</center>
|
||||
<p>
|
||||
Schwefel's (sine root) function is highly multimodal and has no global basin of attraction. The optimum at a fitness of f(x*)=0 lies at x*=420.9687. Schwefel's sine root is a tough challenge for any global optimizer due to the multiple distinct optima. Especially, there is a deceptive nearly optimal solution close to x=(-420.9687)<SUP>n</SUP>.
|
||||
|
||||
<p>
|
||||
|
||||
<p>
|
||||
|
||||
<img src="images/f13-schwefels-sine-root.jpg" width="667" height="493" border="2" align="center">
|
||||
<br>
|
||||
Schwefels's sine root function in 2D within the co-domain -500 <= <i>x</i> <= 500.
|
||||
<p>
|
||||
|
||||
<hr>
|
||||
More information about Ackley's function can be found at:
|
||||
<p>
|
||||
David. H. Ackley. <i>A connection machine for genetic hillclimbing.</i> Kluwer Academic Publishers, Boston, 1987.
|
||||
<p>
|
||||
Thomas Baeck. <i>Evolutionary Algorithms in Theory and Practice.</i> Oxford University Press, 1996.
|
||||
|
||||
</body>
|
||||
</html>
|
24
resources/html/F1Problem.html
Normal file
24
resources/html/F1Problem.html
Normal file
@@ -0,0 +1,24 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>f_1 : Sphere function</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1 align="center">The F1 hyper-parabola function</h1>
|
||||
<center>
|
||||
<img src="images/f1tex.jpg" width="85" height="95" border="0" align="center">
|
||||
</center><br>
|
||||
The hyper-parabola function is a <i>n</i>-dimensional, axis-symmetric, continuously differentiable, convex function:
|
||||
<p>
|
||||
Because of its simplicity every optimization-algorithm should be able to find its global minimum at <i>x</i>=[0, 0, ... , 0]
|
||||
<p>
|
||||
|
||||
<img src="images/f1.jpg" width="480" height="360" border="2" align="middle">
|
||||
|
||||
<hr>
|
||||
More information about the F1 function can be found at:
|
||||
<p>
|
||||
|
||||
Kenneth De Jong. <i>An analysis of the behaviour of a class of genetic adaptive systems.</i> Dissertation, University of Michigan, 1975. Diss. Abstr. Int. 36(10), 5140B, University Microflims No. 76-9381.
|
||||
|
||||
</body>
|
||||
</html>
|
36
resources/html/F2Problem.html
Normal file
36
resources/html/F2Problem.html
Normal file
@@ -0,0 +1,36 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>Generalized Rosenbrock's function</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1 align="center">Generalized Rosenbrock's function</h1>
|
||||
<center>
|
||||
<img src="images/rosenbrocktex.jpg" width="500" height="78">
|
||||
</center>
|
||||
<p>
|
||||
This function is unimodal and continuous, but the global optimum is hard to find, because of independence through the term (<i>x</i>_(<i>i</i>+1) - <i>x_i</i>*<i>x_i</i>)^2 between contiguous parameters.
|
||||
<p>
|
||||
<img src="images/f85.jpg" border="2">
|
||||
<br>
|
||||
Rosenbrock's function within the domain -5 <= <i>x</i> <= 5.
|
||||
<p>
|
||||
The global optimum is located in a parabolic formed valley (among the curve x^2 = x_1^2), which has a flat ground.
|
||||
<br>
|
||||
<img src="images/f81.jpg" border="2">
|
||||
<br>
|
||||
The function close to its global optimum, which is: f(<i>x</i>) = f(1, 1, ... , 1) = 0.
|
||||
<p>
|
||||
Rosenbrock' function is not symmetric, not convex and not linear.
|
||||
|
||||
<hr>
|
||||
More information about Rosenbrock's function can be found at:
|
||||
<p>
|
||||
Kenneth De Jong. <i>An analysis of the behaviour of a class of genetic adaptive systems.</i> Dissertation, University of Michigan, 1975. Diss. Abstr. Int. 36(10), 5140B, University Microflims No. 76-9381.
|
||||
<p>
|
||||
Hans Paul Schwefel. <i>Evolution and optimum seeking.</i> Sixth-Generation Computer Technology Series. John Wiley & Sons, INC., 1995.
|
||||
<p>
|
||||
Darrell Whitley, Soraya Rana, John Dzubera, Keith E. Mathias. <i>Evaluating Evolutionary Algorithms. Artificial Intelligence</i>, 85(1-2):245-276. 1996.
|
||||
<p>
|
||||
Eberhard Schoeneburg, Frank Heinzmann, Sven Feddersen. <i>Genetische Algorithmen und Evolutionstrategien - Eine Einfuehrung in Theorie und Praxis der simulierten Evolution.</i> Addison-Wesley, 1994.
|
||||
</body>
|
||||
</html>
|
29
resources/html/F3Problem.html
Normal file
29
resources/html/F3Problem.html
Normal file
@@ -0,0 +1,29 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>The step function</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1 align="center">The Step Function</h1>
|
||||
<center>
|
||||
<img src="images/steptex.jpg" width="350" height="120" aling="center">
|
||||
</center>
|
||||
<p>
|
||||
The idea of this function is the implementation of a flat plateau (slope 0)in an underlying continuous function. It's harder for optimization algortihms to find optima because minor changes of the object variables don't affect the fitness. Therefore no conclusions about the search direction can be made.
|
||||
<p>
|
||||
<img src="images/step5.jpg" width="480" height="360" border="2" align="center">
|
||||
<p>
|
||||
The step function is symmetric considering the underlying function (here: f(x,y) = f(y,x)), but between the bulk constant plateau-areas not continuously differentiable.
|
||||
<p>
|
||||
Its minimum-area is located in the intervals: <i>f(x)</i>=<i>f</i>([-5.12,-5), ... , [-5.12,-5))=0.
|
||||
<p>
|
||||
<img src="images/stepopt.jpg" width="480" height="360" border="2" align="center">
|
||||
<hr>
|
||||
More information about the step function can be found at:
|
||||
<p>
|
||||
Thomas Baeck, <i>Evolutionary Algorithms in Theory and Practice.</i> Oxford University Press, 1996.
|
||||
<p>
|
||||
Darrell Whitley, Soraya Rana, John Dzubera, Keith E. Mathias. <i>Evaluating Evolutionary Algorithms. Artificial Intelligence</i>, 85(1-2):245-276. 1996.
|
||||
<p>
|
||||
Eberhard Schoeneburg, Frank Heinzmann, Sven Feddersen. <i>Genetische Algorithmen und Evolutionstrategien - Eine Einfuehrung in Theorie und Praxis der simulierten Evolution.</i> Addison-Wesley, 1994.
|
||||
</body>
|
||||
</html>
|
27
resources/html/F5Problem.html
Normal file
27
resources/html/F5Problem.html
Normal file
@@ -0,0 +1,27 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>Schwefel's double sum</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1 align="center">Schwefels double sum</h1>
|
||||
<center>
|
||||
<img src="images/f2tex.jpg" width="220" height="102" border="0" align="center">
|
||||
</center>
|
||||
<p>
|
||||
Schwefel's double sum is a quadratic minimization problem. Its difficulty increases by the dimension <i>n</i> in <i>O(n^2)</i>. It is used for analysis of correlating mutations.
|
||||
<p>
|
||||
It possesses specific symmetrical properties:<br>
|
||||
|
||||
<img src="images/schwefelsymmetrie.jpg" width="500" height="104" border="0" align="middle">
|
||||
<p>
|
||||
Its minimum is located at: <i>f(x)</i>=<i>f</i>([0, 0, ... , 0])=0
|
||||
<p>
|
||||
<img src="images/f2.jpg" width="480" height="360" border="2" align="middle">
|
||||
|
||||
<hr>
|
||||
More information about Schwefel's double sum can be found at:
|
||||
<p>
|
||||
Hans Paul Schwefel. <i>Evolution and optimum seeking.</i> Sixth-Generation Computer Technology Series. John Wiley & Sons, INC., 1995.
|
||||
|
||||
</body>
|
||||
</html>
|
42
resources/html/F6Problem.html
Normal file
42
resources/html/F6Problem.html
Normal file
@@ -0,0 +1,42 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>Generalized Rastrigin's function</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1 align="center">Generalized Rastrigin's function</h1>
|
||||
<center>
|
||||
<img src="images/rastrigintex.jpg" width="500" height="101">
|
||||
</center>
|
||||
<p>
|
||||
Rastrigin's function is symmetric. It is based on the simple <i>parabola function</i> (called f1 in the EvA context), but it is multimodal because a modulation term on the basis of the cosine function is added. This evokes hills and valleys which are misleading local optima.
|
||||
<p>
|
||||
Values used for the following illustrations: <i>A</i>=10, <i>ω</i>=2*π, <i>n</i>=2.
|
||||
|
||||
<br>
|
||||
<img src="images/rastrigin20.jpg" border="2">
|
||||
|
||||
<br>
|
||||
|
||||
Rastrigin's function within the co-domain -20>=<i>x</i>>=20
|
||||
|
||||
<p>
|
||||
<img src="images/rastrigin5.jpg" border="2">
|
||||
<br>
|
||||
|
||||
Rastrigin's function within the co-domain -5>=<i>x</i>>=5
|
||||
|
||||
<p>
|
||||
|
||||
Like Ackley's function a simple evolutionary algorithm would get stuck in a local optimum, while a broader searching algorithm would get out of the local optimum closer to the global optimum, which in this case is: f(<i>x</i>) = f(0, 0, ... , 0) = 0.
|
||||
<p>
|
||||
<img src="images/rastrigin1.jpg" border="2"><br>
|
||||
Rastrigin's function close to its optimum.
|
||||
|
||||
<hr>
|
||||
More information about Rastrigin's function can be found at:
|
||||
<p>
|
||||
Darrell Whitley, Soraya Rana, John Dzubera, Keith E. Mathias. <i>Evaluating Evolutionary Algorithms. Artificial Intelligence</i>, 85(1-2):245-276. 1996.
|
||||
<p>
|
||||
Eberhard Schoeneburg, Frank Heinzmann, Sven Feddersen. <i>Genetische Algorithmen und Evolutionstrategien - Eine Einfuehrung in Theorie und Praxis der simulierten Evolution.</i> Addison-Wesley, 1994.
|
||||
</body>
|
||||
</html>
|
36
resources/html/F8Problem.html
Normal file
36
resources/html/F8Problem.html
Normal file
@@ -0,0 +1,36 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>Ackley's function</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1 align="center">Ackley's function</h1>
|
||||
<center>
|
||||
<img src="images/ackleytex.jpg" width="500" height="58" aling="center">
|
||||
</center>
|
||||
<p>
|
||||
Ackley's function is multimodal and symmetrical. It is based on an exponential function and modulated by a cosine function.
|
||||
The outside region is almost planar as to the growing influence of the exponential function.
|
||||
In the center there is a steep hole as to the influence of the cosine function.<br>
|
||||
Its minimum is at: <i>f(x)</i>=<i>f</i>([0, 0, ... , 0])=0.
|
||||
<p>
|
||||
The difficulty for an optimization algorithm is mid-graded because a simple optimization-algorithm like <i>hill-climbing</i> would get stuck in a local minimum. The optimization algorithm has to search a broader environ to overcome the local minimum and get closer to the global optima.
|
||||
|
||||
<p>
|
||||
|
||||
<img src="images/ackley.jpg" width="480" height="360" border="2" align="center">
|
||||
<br>
|
||||
Ackley's function within the co-domain -20 >= <i>x</i> >= 20, <i>a</i>=20, <i>b</i>=0.2, <i>c</i>=2*π, <i>n</i>=2.
|
||||
<p>
|
||||
|
||||
<img src="images/ackleyopt.jpg" width="480" height="360" border="2" align="center">
|
||||
<br>
|
||||
Ackley's function close to the optimum.
|
||||
<hr>
|
||||
More information about Ackley's function can be found at:
|
||||
<p>
|
||||
David. H. Ackley. <i>A connection machine for genetic hillclimbing.</i> Kluwer Academic Publishers, Boston, 1987.
|
||||
<p>
|
||||
Thomas Baeck. <i>Evolutionary Algorithms in Theory and Practice.</i> Oxford University Press, 1996.
|
||||
|
||||
</body>
|
||||
</html>
|
19
resources/html/FitnessConvergenceTerminator.html
Normal file
19
resources/html/FitnessConvergenceTerminator.html
Normal file
@@ -0,0 +1,19 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>Fitness Convergence Terminator</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1 align="center">Fitness Convergence Terminator</h1>
|
||||
<center>
|
||||
</center><br>
|
||||
The fitness convergence terminator stops the optimization, when there has been hardly
|
||||
any change in the best fitness in the population (within percentual or absolute distance) for a certain
|
||||
time, given in generations or fitness calls. In case of multi-objective optimization, the 2-norm of
|
||||
the fitness vector is
|
||||
currently used.<br>
|
||||
Be aware that, if the optimization is allowed to be non-monotonic, such as for (,)-ES strategies,
|
||||
and if the optimum is close to zero, it may happen that the fitness fluctuates due to numeric
|
||||
issues and does not easily converge in a relative way.<br>
|
||||
Check the help for the <a href="PopulationMeasureTerminator.html">PopulationMeasureTerminator</a> for additional information.
|
||||
</body>
|
||||
</html>
|
17
resources/html/GO.html
Normal file
17
resources/html/GO.html
Normal file
@@ -0,0 +1,17 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>EvA2 Genetic Optimization</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1 align="center">The EvA2 Genetic Optimization Module</h1>
|
||||
<br>
|
||||
The Genetic Optimization module allows the application of a variety of
|
||||
nature-inspired heuristics within one framework. You can combine several
|
||||
datatypes as representations with specific evolutionary operators and
|
||||
widely independently choose an optimization strategy. Some strategies,
|
||||
however, only work with certain datatypes. Most remarkably, DE and PSO
|
||||
require a real-valued representations for the moment, whereas GA, for example,
|
||||
is typically run with a binary datatype but also works on real valued individuals
|
||||
by just accessing the analoguous evolutionary operators.
|
||||
</body>
|
||||
</html>
|
25
resources/html/GOParameters.html
Normal file
25
resources/html/GOParameters.html
Normal file
@@ -0,0 +1,25 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>EvA Genetic Optimization</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1 align="center">Genetic Optimization Parameters</h1>
|
||||
<br>
|
||||
The GO parameter class is used to change main GO optimization settings. You may:
|
||||
<ul>
|
||||
<li>Choose the optimizer. Check the optimizer object for further parameters and information.</li>
|
||||
<li>Set post-processing parameters or leave it turned off.</li>
|
||||
<li>Select the problem to be optimized. Check the problem instance for further parameters and information. </li>
|
||||
<li>Set a random seed. For the same positive seed, an optimization run should yield the same results. Set the seed to zero to use a dynamic seed for each run (using system time).</li>
|
||||
<li>Define the termination criterion. Usually a maximum number of fitness evaluations is set, but
|
||||
it is also possible to choose a maximum number of generations, an absolute fitness value to be reached, a
|
||||
convergence criterion or a combination of those.</li>
|
||||
</ul>
|
||||
<b>Note:</b> <br>
|
||||
The evolutionary operators used by a strategy are tightly connected to the representation used.
|
||||
On the other hand, the representation is usually defined by the underlying problem, therefore,
|
||||
to change the operators effecting the individuals, select the problem and set them within the
|
||||
Individual class presented there. Also note, that not all optimizers can handle all types
|
||||
of representations.
|
||||
</body>
|
||||
</html>
|
56
resources/html/GenericConstraint.html
Normal file
56
resources/html/GenericConstraint.html
Normal file
@@ -0,0 +1,56 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>Generic Constraints</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1 align="center">Generic Constraints</h1>
|
||||
<br>
|
||||
|
||||
<p>To represent generic constraints on real-valued functions, this class can parse
|
||||
String expressions in prefix notation of the form:
|
||||
<blockquote>
|
||||
<expr> ::= <constant-operator> | <functional-operator> "(" <arguments> ")"<br>
|
||||
<arguments> ::= <expr> | <expr> "," <arguments>
|
||||
</blockquote>
|
||||
</p>
|
||||
|
||||
Setting the <b>constraint string</b>:
|
||||
Constant operators have an arity of zero. Examples are:<br>
|
||||
(pi,0) (X,0) (1.0,0)<br>
|
||||
|
||||
Functional operators have an arity greater zero. Examples are:<br>
|
||||
(sum,1) (prod,1) (abs,1) (sin,1) (pow2,1) (pow3,1) (sqrt,1) (neg,1) (cos,1) (exp,1)<br>
|
||||
(+,2) (-,2) (/,2) (*,2)<br>
|
||||
|
||||
<p>
|
||||
Additionally, any numerical strings can also be used; they are parsed to numeric constants. The literal <i>n</i>
|
||||
is parsed to the current number of problem dimensions.<br>
|
||||
Notice that only the <i>sum</i> and <i>prod</i> operators may receive the literal X as input, standing
|
||||
for the full solution vector. Access to single solution components is possible by writing <i>x0...x9</i>
|
||||
for a problem with 10 dimensions.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Thus you may write <font face="Courier">+(-(5,sum(X)),+sin(/(x0,pi)))</font>
|
||||
and select 'lessEqZero' as relation to require valid solutions to fulfill 5-sum(X)+sin(x0/pi)<=0.<br>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Typical <b>relations</b> concerning constraints allow for g(x)<=0, g(x)==0, or g(x)>=0 for
|
||||
constraint g. Notice that equal-to-zero constraints are converted to g(x)==0 <=> |g(x)-epsilon|<=0 for
|
||||
customizable small values of epsilon.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The <b>handling method</b> defines how EvA 2 copes with the constraint. Simplest variant is an
|
||||
additive penalty which is scaled by the penalty factor and then added directly to the fitness
|
||||
of an individual. This will work for any optimization strategy, but results will depend on
|
||||
the selection of penalty factors. Multiplicative penalty works analogously with the difference of
|
||||
being multiplied with the raw fitness.<br>
|
||||
In the variant called specific tag, the constraint violation is stored in an extra field of any
|
||||
individual and may be regarded by the optimization strategy. However, not all strategies provide
|
||||
simple mechanisms of incorporating this specific tag.
|
||||
</p>
|
||||
|
||||
</body>
|
||||
</html>
|
33
resources/html/MutateESRankMuCMA.html
Normal file
33
resources/html/MutateESRankMuCMA.html
Normal file
@@ -0,0 +1,33 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>Covariance Matrix Adaptation with Rank-Mu-Update</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1 align="center">Covariance Matrix Adaptation with rank-mu update after Hansen & Kern 2004</h1>
|
||||
|
||||
Implementing CMA ES with rank-mu-update and weighted recombination. This operator won the CEC 2005
|
||||
challenge employed with a restart scheme with increasing population size.
|
||||
Basically, in each generation the population is resampled around the weighted center of the
|
||||
last population using the adapted covariance matrix C. In contrast to earlier CMA versions,
|
||||
this implementation only holds one single covariance matrix for the whole population, making
|
||||
it much more memory efficient and useful for high dimensional problems as well.
|
||||
<br>
|
||||
While C is adapted based on a cumulated evolution path, the step size sigma is adapted based
|
||||
on path length control.
|
||||
Due to the repeated resampling starting from a single "center", the CMA version can
|
||||
be interpreted as a sophisticated local search, if the initial solution set is sampled
|
||||
close to an initial guess. In this case, a small initial sigma is favourable.
|
||||
<br>
|
||||
For multimodal problems, the initial population can be sampled randomly in the search space
|
||||
and the initial sigma must be rather high.
|
||||
To meet both conditions, the initial sigma may be set to half the average problem range
|
||||
or to the average distance in the initial population.
|
||||
|
||||
<br>
|
||||
<p>
|
||||
|
||||
* N.Hansen & S.Kern 2004: <i>Evaluating the CMA Evolution Strategy on Multimodal Test Functions.</i>
|
||||
Parallel Problem Solving from Nature 2004.
|
||||
|
||||
</body>
|
||||
</html>
|
41
resources/html/ParticleSwarmOptimization.html
Normal file
41
resources/html/ParticleSwarmOptimization.html
Normal file
@@ -0,0 +1,41 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>Particle Swarm Optimization - PSO</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1 align="center">Particle Swarm Optimization - PSO</h1>
|
||||
<center>
|
||||
</center><br>
|
||||
The Particle Swarm Optimization by Kennedy and Eberhardt is inspired by swarm intelligent
|
||||
behaviour seen in animals like birds or ants. A swarm of particles is a set of individual agents
|
||||
"flying" across the search space with individual velocity vectors. There is no selection as in
|
||||
classic Evolutionary Algorithms. Instead, the individuals exchange knowledge about the space they
|
||||
have come across. Each one is attracted to the best position the individual has seen so far (cognitive
|
||||
component) and to the best position known by its neighbors (social component).
|
||||
<p>
|
||||
The neighborhood is defined by the swarm velocity, which may be a linear ordering, a grid and some others.
|
||||
The influence of the velocity of the last time-step is taken into account using an inertness/
|
||||
constriction parameter, which controls the convergence behaviour of the swarm.
|
||||
</p>
|
||||
The influence of social and cognitive attraction are weighed using the <i>phi</i> parameters. In the
|
||||
constriction variant there is a dependence enforced between constriction and the phi, making sure that
|
||||
the swarm converges slowly but steadily, see the publications of M.Clerc, e.g.
|
||||
Typical values for the attractor weights are phi1=phi2=2.05.
|
||||
<p>
|
||||
The topology defines the communication structure of the swarm. In linear topology, each particle has contact
|
||||
to n others in two directions, so there is a linear overlay structure. The grid topology connects a particle
|
||||
in 4 directions, while the star variant is completely connected. The random variant just connects each
|
||||
particle to k others by random and anew in every generation cycle.
|
||||
Basically, the more connections are available, the quicker will information about good areas spread through
|
||||
the swarm and lead to quicker convergence, thereby increasing the risk of converging prematurely.
|
||||
By default, the random (e.g. with range=4) or grid structure (e.g. with range=2) are good choices.
|
||||
</p>
|
||||
<p>
|
||||
The multi-swarm approach splits the main swarm in sub-swarms defined by the distance to a local "leader",
|
||||
as in the dynamic multi-swarm approaches by Shi and Branke, for example. The tree structure orders the
|
||||
swarm to a tree of degree k, where the fittest individuals are on top and inform all their children nodes.
|
||||
In this case, the higher the degree, the quicker will information spread. HPSO is a hierarchical tree variant
|
||||
by Janson and Middendorf, 2005.
|
||||
|
||||
</body>
|
||||
</html>
|
16
resources/html/PhenotypeConvergenceTerminator.html
Normal file
16
resources/html/PhenotypeConvergenceTerminator.html
Normal file
@@ -0,0 +1,16 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>Phenotype Convergence Terminator</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1 align="center">Phenotype Convergence Terminator</h1>
|
||||
<center>
|
||||
</center><br>
|
||||
The phenotype convergence terminator stops the optimization when there has been hardly
|
||||
any change in the best population individual (within percentual or absolute distance) for a certain
|
||||
time span, given in generations or fitness calls.<br>
|
||||
Be aware that, if the optimum individual is close to zero, it may happen that its phenotype values
|
||||
fluctuate due to numeric issues and do not easily converge in a relative measure.<br>
|
||||
Additional information is given for the superclass <a href="PopulationMeasureTerminator.html">PopulationMeasureTerminator</a>.
|
||||
</body>
|
||||
</html>
|
31
resources/html/PopulationMeasureTerminator.html
Normal file
31
resources/html/PopulationMeasureTerminator.html
Normal file
@@ -0,0 +1,31 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>Population Measure Terminator</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1 align="center">Population Measure Terminator</h1>
|
||||
<center>
|
||||
</center><br>
|
||||
An abstract class giving the framework for terminators based on
|
||||
a population measure converging for a given time (number of evaluations or
|
||||
generations).
|
||||
The class detects changes of a population P using a measure m over time and may signal convergence
|
||||
if the measure m(P) behaved in a certain way for a given time. Convergence may
|
||||
be signaled
|
||||
<ul>
|
||||
<li>if the measure reached absolute values below convThresh (absolute value),</li>
|
||||
<li>if the measure remained within m(P)+/-convThresh (absolute change),</li>
|
||||
<li>if the measure remained above m(P)-convThresh (absolute change and regard improvement only),</li>
|
||||
<li>if the measure remained within m(P)*[1-convThresh, 1+convThresh] (relative change),</li>
|
||||
<li>if the measure remained above m(P)*(1-convThresh) (relative change and regard improvement only).</li>
|
||||
</ul>
|
||||
The fitness convergence terminator stops the optimization, when there has been hardly
|
||||
any change in the best fitness in the population (within percentual or absolute distance) for a certain
|
||||
time, given in generations or fitness calls. In case of multi-objective optimization, the 2-norm of
|
||||
the fitness vector is
|
||||
currently used.<br>
|
||||
Be aware that, if the optimization is allowed to be non-monotonic, such as for (,)-ES strategies,
|
||||
and if the optimum is close to zero, it may happen that the fitness fluctuates due to numeric
|
||||
issues and does not easily converge in a relative way.<br>
|
||||
</body>
|
||||
</html>
|
33
resources/html/PostProcessParams.html
Normal file
33
resources/html/PostProcessParams.html
Normal file
@@ -0,0 +1,33 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>Post-processing parameters</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1 align="center">Post-processing parameters</h1>
|
||||
<center>
|
||||
</center>
|
||||
<p>
|
||||
If post processing is activated, it is performed after every
|
||||
optimization run and it may be triggered using the solutions of the last optimization run by
|
||||
the "Post process" button.
|
||||
Post processing performs both accuracy checks of the delivered solutions and a clustering/refinement of the
|
||||
solutions with a local search method. The solutions are clustered to remove redundancy and the remaining
|
||||
best cluster representatives are considered. </p>
|
||||
<p>For the accuracy evaluation, multiple thresholds may be used. The solutions are then clustered using a distance
|
||||
of 0.1 times the respective accuracy threshold and a Nelder-Mead-Simplex search is initialized in close vicinity.
|
||||
As soon as the NMS search fails to produce an improved solution at a distance larger than the accuracy threshold
|
||||
from the original positions, the solution is considered to be accurate by that threshold. </p>
|
||||
<p>Besides the accuracy, a refinement can be performed using several local search methods. After the refinement,
|
||||
the set is clustered again to filter out solutions which converged on the same optimum during the local search.
|
||||
</p>
|
||||
<p>
|
||||
The results of the post processing are displayed in the text window (and/or stats output file) and show a coarse
|
||||
distribution of the final solutions as well as the explicit vectors of the n best solutions obtained, where n
|
||||
is set as printNBest parameter.
|
||||
If post-processing is started several times in a row, the initial solution set is the same, namely the one found
|
||||
by optimization. Thereby one can guess, e.g., how close the solutions are to each other and how closely they
|
||||
have converged during optimization itself.
|
||||
</p>
|
||||
|
||||
</body>
|
||||
</html>
|
25
resources/html/StatisticsParameterImpl.html
Normal file
25
resources/html/StatisticsParameterImpl.html
Normal file
@@ -0,0 +1,25 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>Statistics Parameter Panel</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1 align="center">Statistics Parameter Panel</h1>
|
||||
<center>
|
||||
</center><br>
|
||||
Statistical options are:
|
||||
<ul>
|
||||
<li>Convergence rate threshold. Provided the target value is zero,
|
||||
convergence is assumed if a value smaller than this threshold is reached.
|
||||
For multi-run experiments, the number of hits is counted using this criterion.</li>
|
||||
<li>Number of multi-runs. To achieve statistically meaningful results on how well
|
||||
a certain optimizer works on a given problem, set this number to do several runs in a row.
|
||||
The plot will be averaged, while all data can be collected in an output file or text window.</li>
|
||||
<li>The fitness to plot. Define which fitness values to plot to the graph window after every
|
||||
generation. Select "best", "worst" or both.</li>
|
||||
<li>Result file name. If you want to collect optimization data, set this String to a desired file name.
|
||||
Optimization results will be written to the indicated file in the working directory.</li>
|
||||
<li>Show text output. If activated, the optimization data will also be shown in a graphical text
|
||||
window for immediate viewing.</li>
|
||||
</ul>
|
||||
</body>
|
||||
</html>
|
22
resources/html/Tribes.html
Normal file
22
resources/html/Tribes.html
Normal file
@@ -0,0 +1,22 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>TRIBES</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1 align="center">TRIBES</h1>
|
||||
<center>
|
||||
</center><br>
|
||||
TRIBES is a parameter-free PSO implementation by Maurice Clerc. It combines several adaptive
|
||||
mechanisms to achieve good performance in different domains. It uses a dynamic number of particles,
|
||||
starting usually with 3 and adding new ones during optimization. Therefore, the number of generations
|
||||
is not directly connected to the number of fitness calls,
|
||||
because the population may grow (and seldomly shrink).<br>
|
||||
|
||||
Also, there are different initialization
|
||||
methods implemented which are chosen randomly when particles are created. The particles are organized
|
||||
in loosely connected groups or tribes (therefore the name), creating a kind of small-world topology.
|
||||
<br>
|
||||
As TRIBES uses an error approximation to steer the adaptations, a target value should be given, so far in the first
|
||||
dimension only.
|
||||
</body>
|
||||
</html>
|
Reference in New Issue
Block a user