PDA

نسخه کامل مشاهده نسخه کامل : راهنمایی در موردFitness Function



aftab_azad20
08-05-2015, 12:03
سلام
کسی میتونه در مورد این تابع فیتنس راهنماییم کنه(یه توضیح کلی در موردش،یا این که چه جوری میتونم مرجع این خط تابع رو پیدا کنم)،مال یکی از دوستانه،کار برنامه هم زمانبندی واسه سیستم های چند پردازنده ایه با استفاده از الگوریتم رقابت استعماری، اگه هزینه ام داره مشکلی نیست
public static class FitnessFunction
{

public int dimension = 3;
private double minVal = -20.048;
private double maxVal = 20.048;
public double[] minBounds; // The minimum bounds for each dimension
public double[] maxBounds; // The maximum bounds for each dimension
public int nbEvals = 0;


// Constructor
public FitnessFunction()
{
// Initialize boundaries
minBounds = new double[dimension];
maxBounds = new double[dimension];
for(int i=0;i<dimension;i++)
{
minBounds[i] = minVal;
maxBounds[i] = maxVal;
}
}



public double getFitnessValue(double[] individual)
{
double fitness = 0;

double a = 20;
double b = 0.2;
double c = 2*Math.PI;
double s1 = 0;
double s2 = 0;
for(int i=0; i<individual.length; i++)
{
s1 = s1 + Math.pow(individual[i],2);
s2 = s2 + Math.cos(c*individual[i]);
}
(fitness = -a * Math.exp( -b * Math.sqrt(1/individual.length*s1)) - Math.exp(1/individual.length*s2) + a + Math.exp(1;

;++nbEvals
;return fitness
}

}