Реферат: Генетические алгоритмы и их практическое применение

gene population[MAXPOP];

int Fitness(gene &);

void GenerateLikelihoods();

float MultInv();inverse.

int CreateFitnesses();

void CreateNewPopulation();

int GetIndex(float val);

gene Breed(int p1, int p2);

};

Существуют две структуры: gene и класс CDiophantine. gene используется для слежения за различными наборами решений. Создаваямая популяция - популяция ген. Эта генетическая структура отслеживает свои коэффициенты выживаемости и вероятность оказаться родителем. Также есть небольшая функция проверки на равенство.

Теперь по функциям:

Fitness function

Вычисляет коэффициент выживаемости (приспособленности - fitness) каждого гена. В нашем случае это - модуль разности между желаемым результатом и полученным значением. Этот класс использует две функции: первая вычисляет все коэффициенты, а вторая – поменьше - вычисляет коэффициент для какого-то одного гена.

int CDiophantine::Fitness(gene &gn) {

int total = ca * gn.alleles[0] + cb * gn.alleles[1]

+ cc * gn.alleles[2] + cd * gn.alleles[3];

return gn.fitness = abs(total - result);

}

int CDiophantine::CreateFitnesses() {

float avgfit = 0;

int fitness = 0;

for(int i=0;i<MAXPOP;i++) {

fitness = Fitness(population[i]);

avgfit += fitness;

if (fitness == 0) {

return i;

}

}

return 0;

К-во Просмотров: 515
Бесплатно скачать Реферат: Генетические алгоритмы и их практическое применение