帝國競爭算法(imperialist competitive algorithm, ICA )詳解+Java代碼
/**
* Returns the fitness of one country
* @param individual the solution to evaluate
* @return the fitness
*/
public double getFitnessValue(double[] individual)
{
double fitness = 0;
// Sphere function
for(int i=0; i<individual.length; i++)
{
fitness = fitness + Math.pow(individual[i],2);
}
// // Rastrigin function
// for(int i=0; i<individual.length; i++)
// {
// fitness = fitness + (Math.pow(individual[i],2)-10*Math.cos(2*Math.PI*individual[i]));
// }
// fitness = 10*dimension + fitness;
// // Rosenbrock function
// for(int i=0; i<individual.length-1; i++)
// {
// fitness = fitness + 100*Math.pow((Math.pow(individual[i],2)-individual[i+1]),2) + Math.pow((individual[i]-1),2);
// }
// // Ackley function
// 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;
}
參考資料
[1] 基于改進帝國主義競爭算法的城市軌道交通乘客路徑選擇方法技術
[2] 郭婉青,葉東毅.帝國競爭算法的進化優(yōu)化[J].計算機科學與探索,2014,8(4):473-482

請輸入評論內容...
請輸入評論/評論長度6~500個字