F13 doc and range modification.

This commit is contained in:
Marcel Kronfeld
2009-07-13 15:49:19 +00:00
parent bb4638cff9
commit d8fbb01e29
4 changed files with 39 additions and 8 deletions

30
resources/F13Problem.html Normal file
View 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>

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

View File

@@ -13,6 +13,7 @@ public class F13Problem extends F1Problem implements InterfaceMultimodalProblem
public F13Problem() {
this.m_Template = new ESIndividualDoubleData();
setDefaultRange(500);
}
public F13Problem(F13Problem b) {
super(b);
@@ -29,14 +30,14 @@ public class F13Problem extends F1Problem implements InterfaceMultimodalProblem
return (Object) new F13Problem(this);
}
public double[][] makeRange() {
double[][] range = new double[this.m_ProblemDimension][2];
for (int i = 0; i < range.length; i++) {
range[i][0] = -512.03;
range[i][1] = 511.97;
}
return range;
}
// public double[][] makeRange() {
// double[][] range = new double[this.m_ProblemDimension][2];
// for (int i = 0; i < range.length; i++) {
// range[i][0] = -512.03;
// range[i][1] = 511.97;
// }
// return range;
// }
/** Ths method allows you to evaluate a double[] to determine the fitness
* @param x The n-dimensional input vector