📄 sharingscaling.cpp
字号:
#include "SharingScaling.h"
void SharingScaling::applyScaling(Population* pop)
{
//if(p.size() > (int)N)
//{
// delete [] d;
// N = p.size();
// d = new float[N*N];
//}
//int n = p.size();
//int i, j;
//if(df)
//{
// for(i=0; i<n; i++)
// { // calculate and cache the distances
// d[i*n+i] = 0.0; // each genome is same as itself
// for(j=i+1; j<n; j++)
// d[i*n+j] = d[j*n+i] = (*df)(p.individual(i), p.individual(j));
// }
//}
//else
//{
// for(i=0; i<n; i++){ // calculate and cache the distances
// d[i*n+i] = 0.0; // each genome is same as itself
// for(j=i+1; j<n; j++)
// d[i*n+j] = d[j*n+i] = p.individual(i).compare(p.individual(j));
// }
//}
//int mm;
//if(_minmax == 0)
//{
// if(p.geneticAlgorithm())
// mm = p.geneticAlgorithm()->minimaxi();
// else
// mm = ((p.order() == GAPopulation::HIGH_IS_BEST) ?
// GAGeneticAlgorithm::MAXIMIZE : GAGeneticAlgorithm::MINIMIZE);
//}
//else
//{
// mm = _minmax;
//}
//for(i=0; i<n; i++)
//{ // now derate the fitness of each genome
// double sum = 0.0;
// for(j=0; j<n; j++)
// {
// if(d[i*n+j] < _sigma)
// {
// if(_alpha == 1)
// sum += ((d[i*n+j] >= _sigma) ? 0.0 : 1.0 - d[i*n+j]/_sigma);
// else
// sum += ((d[i*n+j]>=_sigma) ? 0.0 : 1.0-pow(d[i*n+j]/_sigma,_alpha));
// }
// }
// double f;
// if(mm == GAGeneticAlgorithm::MINIMIZE)
// f = p.individual(i).score() * sum;
// else
// f = p.individual(i).score() / sum;
// p.individual(i).fitness((float)f); // might lose information here!
//}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -