/*
Portions copyright 2010 by Sean Luke, Robert Hubley, and George Mason University
Licensed under the Academic Free License version 3.0
See the file "LICENSE" for more information
*/
package ec.multiobjective.spea2;
import ec.*;
import ec.util.*;
import ec.multiobjective.*;
import ec.simple.*;
/*
* SPEA2Evaluator.java
*
* Created: Sat Oct 16 11:24:43 EDT 2010
* By: Faisal Abidi and Sean Luke
* Replaces earlier class by: Robert Hubley, with revisions by Gabriel Balan and Keith Sullivan
*/
/**
* This subclass of SimpleEvaluator evaluates the population, then computes auxiliary fitness
* data of each subpopulation.
*/
public class SPEA2Evaluator extends SimpleEvaluator
{
public void evaluatePopulation(final EvolutionState state)
{
super.evaluatePopulation(state);
// build SPEA2 fitness values
for(int x = 0;xarray[i]
double tmp = array[i];
array[i]=array[p];
array[p]=tmp;
return partition(array,p,r);
}
/* [cormen p 154] */
int partition(double[] array, int p, int r)
{
double x = array[p];
int i = p-1;
int j = r+1;
while(true)
{
do j--; while(array[j]>x);
do i++; while(array[i]array[j]
double tmp = array[i];
array[i]=array[j];
array[j]=tmp;
}
else
return j;
}
}
}
Ads help maintain this website.