Лекция №4

Проходы

Оператор мутации - это генетический оператор преобразования хромосомы на основе вероятностного изменения отдельного состояния отдельных генов. Для этого используется периметр - вероятность мутации.

Виды мутации

1.Однобитовая мутация

Применяется при кодировании с номером бинарного кода Грея. В хромосоме . Случайным образом выбирается число - точка мутации.

Значение бита меняется на противоположное.

2. Многобитовая мутация

Аналогична однобитовой мутации. В хромосоме выбирается несколько точек мутаций

Значения битов меняются на противоположные.

3.Одноточечная мутация

Применяется в комбинаторных и задачах на графах при кодировании вершин графа.

В хромосоме случайным образом выбирается число - точка мутации.

Гены и меняются местами:

4. Многоточечная мутация

В хромосоме случайным образом выбираются точек мутации.

Далее происходит последовательный обмен генов, расположенных правее точек мутации друг с другом в порядке их расположения. Ген, расположенный правее последней точки мутации, переходит на место 1-го.

Пример:

 

P: A │ B C D │ E F │ G H

P1: A G C D B F E H

Оператор инверсии - это генетический оператор преобразования хромосомы на основе вероятностного инвертирования ее части. Для этого вводится параметр - вероятность инверсии.

Виды инверсии

1.Одноточечная инверсия

В хромосоме случайным образом выбирается точка инверсии. Новая хромосома формируется из путем инверсии сегмента, расположенного справа от .

2.Многоточечная инверсия

В хромосоме случайным образом выбирается точек инверсии , которые делят хромосому на сегментов. Новая хромосома формируется из путем инверсии сегментов с четными номерами.

Пример:

2-х точечный оператор инверсии

P: A B C │D E F │ G H

 

P1: A B C D E F G H

Замечания:

При реализации ГА части, используются следующие последовательности генетических операторов, что обеспечивает возможность тонкой настройки ГА, в зависимости от типа решаемой оптимизационной задачи используется БС.

{P}

 

 

НЕТ

 

инверсия

 
Блок-схема: решение: ?

p€[0,рm]

0?pm?1

ДА

НЕТ

 

ДА

 

{Р1}

Оператор селекции (репродукции)- отбор хромосом из популяции для формирования родительского массива, которая затем, подвергаясь воздействию генетических операторов, образует поколение потомков. При этом хромосомы, имеющие более высокую степень приспособленности, получают большую возможность для воспроизводства (репродукции) потомков.

Оператор селекции включает следующие этапы:

1.  Формирование функции пригодности.

2.  Вычисление функции пригодности.

3.  Формирование родительского массива.

Алгоритмы формирование функции пригодности

1. Задача скалярной оптимизации

Определить ; (1)

(2)

Шаг 1. В популяции размером полагаем

Шаг 2. Для всех , проверяем выполнение условия:

(3)

Обозначим - количество точек , в котором выполняется условие (3).

Шаг 3. Сформулируем функцию :

(4)

Шаг 4. Полагаем . Если i ≤ N, то переходим к шагу 2, иначе переходим к шагу 5.

Шаг 5. STOP

Таким образом, каждой точке соответствует значение функции пригодности , которая в дальнейшем используется в операторе селекции при формулировке родительского массива.

Здесь q – параметр, влияющий на скорость сходимости ГА к оптимальному решению

2. Задача многокритериальной оптимизации.

Определить , (5)

где ;

(6)

Шаг 1. В популяции размером полагаем .

Шаг 2. Для всех , проверяем выполнение условия:

, (7)

или, что то же самое:

, (8)

При этом хотя бы одно из неравенств (8) – строгое.

Обозначим - количество точек , в которых выполняется условие (7).

Шаг 3. Сформируем функцию пригодности вида:

(9)

Шаг 4. Полагаем . Если , то переходим к шагу 2, иначе переходим к шагу 5.

Шаг 5. STOP.

Свойства функции пригодности вида (4)

1.  Если , то . Для задачи (1) это означает, что в точке функция достигает своего минимального значения относительно текущей популяции . Другими словами точка обладает наивысшей степенью приспособленности в популяции .

2.  Если , то . Это означает, что в точке функция достигает своего максимального значения относительно текущей популяции . То есть точка обладает минимальной степенью приспособленности в популяции .

3.  Если , то .

Здесь q – параметр, влияющий на скорость сходимости ГА к оптимальному решению.

Свойства функции пригодности вида (9)

1.  Если , то . Для задачи (1) это означает, что векторная функция достигает оптимальность по Парето значения относительно текущей популяции , и обладает наивысшей степенью приспособленности.

2.  Если , то . Точка не принадлежит Парето-области. Чем больше , тем дальше от Парето-области.

Рассмотрим пример многокритериальной задачи коммивояжера

Начальная популяция:

P1: a e d c b

P2: c d b e a

P3: e b c d a

Будем использовать алгоритм многокритериального формирования жадного кроссовера.

1. Формирование P­­1'

Выбираем точку кроссовера на P1.

P1: (d-c); fч1=7; fч2=9.

P2: (d-b); fч1=4; fч2=3.

P3: (d-a); fч1=2; fч2=2.

(1)

Переходим к вершине a.

P1: (a-e); fч1=5; fч2=6.

P2: (a-c); fч1=1; fч2=2.

P3: (a-e); fч1=5; fч2=6.

(2)

Переходим к вершине c.

P1: (c-b); fч1=6; fч2=7.

P2: (c-d) – цикл.

P3: (c-d) – цикл.

(3)

Выбираем (b-e), т. к. ген у ранее не встречался. fч1=3; fч2=5.

P1’: d a c b e

f1 = 2 + 1 + 6 + 3 + 3 = 15

f2 = 2 + 2 + 7 + 5 + 6 = 22

НЕ нашли? Не то? Что вы ищете?

2. Формирование P2'

Переходим к точке кроссовера в P2.

P1: (b-a); fч1=3; fч2=6.

P2: (b-e); fч1=3; fч2=5.

P3: (b-c); fч1=6; fч2=7.

(1)

P1: (e-d); fч1=3; fч2=6.

P2: (e-a); fч1=5; fч2=6.

P3: (e-b) – цикл.

(2)

P1: (d-c); fч1=7; fч2=9.

P2: (d-b) – цикл.

P3: (d-a); fч1=2; fч2=2.

(3)

Выбираем (a-c), т. к. ген с ранее не встречался. fч1=1; fч2=2.

P2’: b e d a c

f1 = 3 + 3 + 2 + 1 + 6 = 15

f2 = 5 + 6 + 2 + 2 + 7 = 22

3. Формирование P­­3'

Переходим к точке кроссовера в P3.

1.  P1: (c-b); fч1=6; fч2=7.

P2: (c-d); fч1=7; fч2=9.

P3: (c-d); fч1=7; fч2=9.

(1)

2.  P1: (b-a); fч1=3; fч2=6.

P2: (b-e); fч1=3; fч2=5.

P3: (b-c) – цикл.

(2)

3.  P1: (e-d); fч1=3; fч2=6.

P2: (e-a); fч1=5; fч2=6.

P3: (e-b) – цикл.

(3)

4.  Выбираем (d-a), т. к. ген a ранее не встречался. f21=2; f22=2.

P3’: c b e d a

f1 = 6 + 3 + 3 + 2 + 1 = 15

f2 = 7 + 5 + 6 + 2 + 2 = 22

Таким образом, после кроссовера получим:

P1’: d a c b <=> e

P2’: b e d a <=> c

P3’: c b e d <=> a

Осуществляем оператор мутации:

Пусть k=a – случайное число.

В P1’ меняем местами b <=> e

В P2’ меняем местами a <=> c

В P3’ меняем местами d <=> a

Получим:

P1”: d a c e b

P2”: b e d c a

P3”: c b e a d

Предположим, что на данном этапе инверсия не осуществляется.

Таким образом, получим популяцию 2-го поколения:

P1: d a c e b

P2: b e d c a

P3: c b e a d

II. Формирование популяции 3-го поколения

1. Формирование P1'

Выбираем точку кроссовера на P1.

P1: (a-c); fч1=1; fч2=2.

P2: (a-b); fч1=3; fч2=6.

P3: (a-d); fч1=2; fч2=2.

(1)

P1: (c-e); fч1=2; fч2=1.

P2: (c-a) – цикл.

P3: (c-b); fч1=6; fч2=7.

(2)

P1: (e-b); fч1=3; fч2=5.

P2: (e-d); fч1=3; fч2=6.

P3: (e-a) – цикл.

(3)

Выбираем (b-d), т. к. ген d ранее не встречался. f21=4; f22=3.

P1’: a c e b d

f1 = 1 + 2 + 3 + 4 + 2 = 12

f2 = 2 + 1 + 5 + 3 + 2 = 13

2. Формирование P2'

Переходим к точке кроссовера в P2.

P1: (e-b); fч1=3; fч2=5.

P2: (e-d); fч1=3; fч2=6.

P3: (e-a); fч1=5; fч2=6.

(1)

P1: (b-d); fч1=4; fч2=3.

P2: (b-e) – цикл.

P3: (b-e) – цикл.

(2)

P1: (d-a); fч1=2; fч2=2.

P2: (d-c); fч1=7; fч2=9.

P3: (d-c); fч1=7; fч2=9.

(3)

Выбираем (a-c), т. к. ген c ранее не встречался. fч1=1; fч2=2.

P2’: e b d a c

f1 = 3 + 4 + 2 + 1 + 2 = 12

f2 = 5 + 3 + 2 + 2 + 1 = 13

3. Формирование P3'

Переходим к точке кроссовера в P3.

P1: (b-d); fч1=4; fч2=3.

P2: (b-e); fч1=3; fч2=5.

P3: (b-e); fч1=3; fч2=5.

Выбираем из и . Механизм выбора может быть:

·  случайным

·  по сумме (f21 + f22) -> min;

выбираем (4)

P1: (d-a); fч1=2; fч2=2.

P2: (d-c); fч1=7; fч2=9.

P3: (d-c); fч1=7; fч2=9.

(2)

P1: (a-c); fч1=1; fч2=2.

P2: (a-b) – цикл.

P3: (a-d) – цикл.

(3)

Выбираем (c-e), т. к. ген d ранее не встречался. fч1=2; fч2=1.

P3’: b d a c e

f1 = 4 + 2 + 1 + 2 + 3 = 12

f2 = 3 + 2 + 2 + 1 + 5 = 13

Получим:

P1’: a c e b d

P2’: e b d a c

P3’: b d a c e

P1’, P2’, P3’ – реализуют один и тот же оптимальный маршрут. Популяция выродилась в одно оптимальное решение по Парето.