Fewer array reference calls make the code more readable and more efficient.

Change-Id: I7416633a735078a4e0e857f050ea7bfaadba310c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117158
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Tested-by: Jenkins
This commit is contained in:
Todor Balabanov
2021-06-15 06:03:52 +02:00
committed by Tomaž Vajngerl
parent de7356c2e0
commit b3bf90ec5f
@@ -92,27 +92,35 @@ public class PSGTBehavior extends AbsGTBehavior {
@Override
public void generateBehavior(SearchPoint trailPoint, ProblemEncoder problemEncoder) {
SearchPoint gbest_t = socialLib.getGbest();
DesignSpace designSpace = problemEncoder.getDesignSpace();
double[] pold_t_location = pold_t.getLocation();
double[] pbest_t_location = pbest_t.getLocation();
double[] pcurrent_t_location = pcurrent_t.getLocation();
double[] gbest_t_location = socialLib.getGbest().getLocation();
double[] trailPointLocation = trailPoint.getLocation();
int DIMENSION = designSpace.getDimension();
double deltaxb, deltaxbm;
for (int b = 0; b < DIMENSION; b++) {
if (Math.random() < CL) {
designSpace.mutationAt(trailPoint.getLocation(), b);
} else {
deltaxb = weight * (pcurrent_t.getLocation()[b] - pold_t.getLocation()[b])
+ c1 * Math.random() * (pbest_t.getLocation()[b] - pcurrent_t.getLocation()[b])
+ c2 * Math.random() * (gbest_t.getLocation()[b] - pcurrent_t.getLocation()[b]);
// limitation for delta_x
deltaxbm = 0.5 * designSpace.getMagnitudeIn(b);
if (deltaxb < -deltaxbm) {
deltaxb = -deltaxbm;
} else if (deltaxb > deltaxbm) {
deltaxb = deltaxbm;
}
trailPoint.getLocation()[b] = pcurrent_t.getLocation()[b] + deltaxb;
designSpace.mutationAt(trailPointLocation, b);
continue;
}
double deltaxb = weight * (pcurrent_t_location[b] - pold_t_location[b])
+ c1 * Math.random() * (pbest_t_location[b] - pcurrent_t_location[b])
+ c2 * Math.random() * (gbest_t_location[b] - pcurrent_t_location[b]);
// limitation for delta_x
double deltaxbm = 0.5 * designSpace.getMagnitudeIn(b);
if (deltaxb < -deltaxbm) {
deltaxb = -deltaxbm;
} else if (deltaxb > deltaxbm) {
deltaxb = deltaxbm;
}
trailPointLocation[b] = pcurrent_t_location[b] + deltaxb;
}
}