ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 16.03.2024
Просмотров: 25
Скачиваний: 0
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
заданной вероятностью P_c выполняется в три этапа:
Например, рассмотрим выполнение кроссинговера для хромосом 1 и 2 из
промежуточной популяции:
7. Предложите другую реализацию ОК.
Случайным образом генерируется двоичная маска кроссинговера той же длины (с тем же числом бит), что у хромосом родителей. Четность бита маски показывает родителя, из которого копируется ген потомка. Для определенности допустим, что 1 соответствует первому родителю, а 0 – второму. Каждый бит потомка копируется из 1-го или 2-го родителя в соответствии со значением этого бита маски.
8. Какую роль играет оператор мутации (ОМ)?
Оператор
мутации необходим для "выбивания" популяции из локального экстремума и способствует защите от преждевременной сходимости. Достигаются эти чудеса за счет того, что инвертируется случайно выбранный бит в хромосоме.
9. Опишите ОМ и приведите пример его работы.
Согласно схеме классического ГА с заданной вероятностью P_m ≈ 0,001 выполняется оператор мутации. Иногда этот оператор играет вторичную роль. Обычно вероятность мутации мала - Оператор мутации (ОМ) выполняется в два этапа.
Пример работы:
#include
unsigned short MutationMask[] = {0x1, 0x2, 0x4, 0x8,
0x10, 0x20, 0x40, 0x80,
0x100, 0x200, 0x400, 0x800,
0x1000, 0x2000, 0x4000, 0x8000};
unsigned short Inds[50], // Популяция
SelInds[50]; // Особи отобранные для скрещивания
// оператор 1-точечного кроссинговера
void Cross (int p1, p2, c1, c2) {
unsigned short left, right;
left = (unsigned short)(15.0 * (double)rand()/(double)RAND_MAX + 1);
left = ((unsigned short)0xffff>>left)<
right = (unsigned short)0xffff ^ left;
Inds[c1] = (SelInds[p1] & left) | (SelInds[p2] & right);
Inds[c2] = (SelInds[p2] & left) | (SelInds[p1] & right);
}
// оператор точечной мутации
void Mutate (int j) {
int i, L = Inds[j].GetChromosomeLength();
double rnd;
for (i=0; i
rnd = (double)rand()/(double)RAND_MAX + 1);
if (mutationRate > rnd) { // mutationRate - вероятность мутации
Inds[j] = Inds[j] ^ MutationMask[i];
}
}
}
10. Предложите другую реализацию ОМ.
Можно выбирать некоторое количество точек в хромосоме для инверсии, причем их число также может быть случайным. Также можно инвертировать сразу некоторую группу подряд идущих точек. Вероятность мутации значительно меньше вероятности кроссинговера и редко превышает 1%. Среди рекомендаций по выбору вероятности мутации нередко можно встретить варианты 1/L или 1/N, где L - длина хромосомы, N - размер популяции.
11. Каковы основные параметры ГА?
Основными параметрами ГА являются:
- длительность эволюции (количество поколений);
- размер популяции;
- интенсивность (давление) селекции;
- разновидность оператора кроссовера;
- вероятность кроссовера РС;
- разновидность оператора мутации;
- вероятность мутации РМ;
- величина разрыва поколений Т
-
1-й этап. Две хромосомы (родители) выбираются случайно (или одним из методов, рассмотренных далее) из промежуточной популяции, сформированной при помощи оператора репродукции (ОР). -
2-й этап. Случайно выбирается точка скрещивания - число из диапазона [1,n-1] , где n – длина хромосомы (число бит в двоичном коде). -
Две новых хромосомы A', B' (потомки) формируются из A и B путем обмена подстрок после точки скрещивания:
Например, рассмотрим выполнение кроссинговера для хромосом 1 и 2 из
промежуточной популяции:
7. Предложите другую реализацию ОК.
Случайным образом генерируется двоичная маска кроссинговера той же длины (с тем же числом бит), что у хромосом родителей. Четность бита маски показывает родителя, из которого копируется ген потомка. Для определенности допустим, что 1 соответствует первому родителю, а 0 – второму. Каждый бит потомка копируется из 1-го или 2-го родителя в соответствии со значением этого бита маски.
8. Какую роль играет оператор мутации (ОМ)?
Оператор
мутации необходим для "выбивания" популяции из локального экстремума и способствует защите от преждевременной сходимости. Достигаются эти чудеса за счет того, что инвертируется случайно выбранный бит в хромосоме.
9. Опишите ОМ и приведите пример его работы.
Согласно схеме классического ГА с заданной вероятностью P_m ≈ 0,001 выполняется оператор мутации. Иногда этот оператор играет вторичную роль. Обычно вероятность мутации мала - Оператор мутации (ОМ) выполняется в два этапа.
Пример работы:
#include
unsigned short MutationMask[] = {0x1, 0x2, 0x4, 0x8,
0x10, 0x20, 0x40, 0x80,
0x100, 0x200, 0x400, 0x800,
0x1000, 0x2000, 0x4000, 0x8000};
unsigned short Inds[50], // Популяция
SelInds[50]; // Особи отобранные для скрещивания
// оператор 1-точечного кроссинговера
void Cross (int p1, p2, c1, c2) {
unsigned short left, right;
left = (unsigned short)(15.0 * (double)rand()/(double)RAND_MAX + 1);
left = ((unsigned short)0xffff>>left)<
right = (unsigned short)0xffff ^ left;
Inds[c1] = (SelInds[p1] & left) | (SelInds[p2] & right);
Inds[c2] = (SelInds[p2] & left) | (SelInds[p1] & right);
}
// оператор точечной мутации
void Mutate (int j) {
int i, L = Inds[j].GetChromosomeLength();
double rnd;
for (i=0; i
rnd = (double)rand()/(double)RAND_MAX + 1);
if (mutationRate > rnd) { // mutationRate - вероятность мутации
Inds[j] = Inds[j] ^ MutationMask[i];
}
}
}
10. Предложите другую реализацию ОМ.
Можно выбирать некоторое количество точек в хромосоме для инверсии, причем их число также может быть случайным. Также можно инвертировать сразу некоторую группу подряд идущих точек. Вероятность мутации значительно меньше вероятности кроссинговера и редко превышает 1%. Среди рекомендаций по выбору вероятности мутации нередко можно встретить варианты 1/L или 1/N, где L - длина хромосомы, N - размер популяции.
11. Каковы основные параметры ГА?
Основными параметрами ГА являются:
- длительность эволюции (количество поколений);
- размер популяции;
- интенсивность (давление) селекции;
- разновидность оператора кроссовера;
- вероятность кроссовера РС;
- разновидность оператора мутации;
- вероятность мутации РМ;
- величина разрыва поколений Т