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

Теперь мы можем вычислить коэффициенты выживаемости (fitness) потомков.

Хромосома-потомок Коэффициент выживаемости
(13,28,15,3) |126-30|=96
(9,13,2,4) |57-30|=27
(13,5,7,2) |57-30|=22
(14,13,5,2) |63-30|=33
(13,5,5,2) |46-30|=16

Таблица 7 : Коэффициенты выживаемости потомков (fitness)

Средняя приспособленность (fitness) потомков оказалась 38.8, в то время как у родителей этот коэффициент равнялся 59.4. Следующее поколение может мутировать. Например, мы можем заменить одно из значений какой-нибудь хромосомы на случайное целое от 1 до 30.

Продолжая таким образом, одна хромосома в конце концов достигнет коэффициента выживаемости 0, то есть станет решением.

Системы с большей популяцией (например, 50 вместо 5-и сходятся к желаемому уровню (0) более быстро и стабильно.[27]

1. 1 Принцип работы программы

Oбранимся к теоретическим пояснениям в практической реализации данной задачи в среде программирования С++ :

Первым делом посмотрим на заголовок класса:

#include <stdlib.h>

#include <time.h>

#define MAXPOP 25

struct gene {

int alleles[4];

int fitness;

float likelihood;

// Test for equality.

operator==(gene gn) {

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

if (gn.alleles[i] != alleles[i]) return false;

}

return true;

}

};

class CDiophantine {

public:

CDiophantine(int, int, int, int, int);

int Solve();

// Returns a given gene.

gene GetGene(int i) { return population[i];}

protected:

int ca,cb,cc,cd;

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