Файл: Контрольные вопросы Каковы " источники ".odt

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 16.03.2024

Просмотров: 25

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
заданной вероятностью P_c выполняется в три этапа:

  • 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. Каковы основные параметры ГА?

Основными параметрами ГА являются:
-
длительность эволюции (количество поколений);
-
размер популяции;
-
интенсивность (давление) селекции;
-
разновидность оператора кроссовера;
-
вероятность кроссовера РС;
-
разновидность оператора мутации;
-
вероятность мутации РМ;
-
величина разрыва поколений Т