
- •Введення
- •Лабораторна робота №1 Основи генетичних алгоритмів. Простій генетичний алгоритм Загальні відомості
- •Генетичні оператори
- •Репродукція
- •Оператор кросинговера (схрещування)
- •Мутація
- •Представлення рішень в двійковій формі
- •Логарифмічне кодування
- •Порядок виконання лабораторної роботи
- •Завдання
- •Контрольні запитання
- •Оператори кросинговеру
- •Оператори мутації
- •Тестові приклади
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота №3 Рішення завдання комівояжера за допомогою генетичних алгоритмів Загальні відомості
- •Представлення сусідства
- •Порядкове представлення
- •Шляхове представлення
- •Завдання
- •Контрольні питання
- •Лабораторна робота №4 Генетичне програмування Загальні відомості
- •Термінальна множина
- •Функціональна множина
- •Структури для представлення програм
- •Деревовидна структура
- •Лінійні структури
- •Графоподібні структури
- •Ініціалізація початкової популяції
- •Ініціалізація деревовидних структур
- •Ініціалізація лінійних структур
- •Кросинговер в генетичному програмуванні
- •Виконання ок на деревовидних структурах
- •Ок на лінійних структурах
- •Виконання ок для графоподібних структурах
- •Мутація в генетичному програмуванні
- •Виконання мутації на деревовидних структурах
- •Виконання мутації на лінійних структурах
- •Виконання мутації на графоподібних структурах
- •Фітнес-функція в генетичному програмуванні
- •Інтрони
- •Загальний алгоритм генетичного програмування
- •Порядок виконання лабораторної роботи
- •Завдання
- •Контрольні запитання
- •Литература
- •Методичнi вказiвки До виконання лабораторних робіт
Оператори кросинговеру
Оператор схрещування безперервного ГА, або кросовер, породжує одного або декількох нащадків від двох хромосом. Власне кажучи, потрібно із двох векторів речовинних чисел одержати нові вектори за якими-небудь законами. Більшість real-coded алгоритмів генерують нові вектори в околиці батьківських пар. Далі представлені прості й популярні кросовери.
Нехай C1=(c11,c21,...,cn1) і C2=(c12,c22,...,cn2) - дві хромосоми, обрані оператором селекції для схрещування. Після формули для деяких кросоверов приводиться малюнок - геометрична інтерпретація його роботи. Передбачається, що ck1<=ck2 якщо f(C1)>=f(C2).
Плоский кросовер (flat crossover): створюється нащадок H=(h1,…,hk,…,hn), де hk, (k=1,…,n)– випадкове число з інтервалу [ck1,ck2].
Найпростіший кросовер (simple crossover): випадковим образом вибирається число k з інтервалу {1,2,…,n-1}, генеруються два нащадки H1=(c11,c21,…,ck1,ck+12,…,cn2) і H2=(c12,c22,…,ck2,ck+11,…,cn2)...
Арифметичний кросовер (arithmetical crossover): створюються два нащадки H1=(h11,…,hn1), H2=(h12,…,hn2), де hk1=w*ck1+(1-w)*ck2, hk2=w*ck2+(1-w)*ck1, k=1,…,n; w або константа (рівномірний арифметичний кросовер) з інтервалу [0;1], або змінюється зі збільшенням епох (нерівномірний арифметичний кросовер).
Рис. 2.1. Арифметичний кросовер.
Геометричний кросовер (geometrical crossover): створюються два нащадки H1=(h11,…,hn1), H2=(h12,…,hn2), де hk1=(сk1)w*(ck2)(1-w), (ck2)w*(ck1)(1-w), де w – випадкове число з інтервалу [0;1].
Рис. 2.2. Геометричний кросовер.
Змішаний кросовер (blend, BLX-alpha crossover): генерується один нащадок H=(h1,…,hk,…,hn), де hk – випадкове число з інтервалу [cmin–I*alpha,cmax+I*alpha], cmin=min(ck1,ck2), cmax=max(ck1,ck2), I=cmax–cmin. BLX-0.0 кросовер перетворюється в плоский.
Рис. 2.3. Змішаний кросовер.
Лінійний кросовер (linear crossover): створюються три нащадки Hq=(h1q,…,hkq,…,hnq), q=1,2,3, де hk1=0.5*ck1+0.5*ck2, hk2=1.5*ck1-0.5*ck2, hk3=–0.5*сk1+1.5*ck2. На етапі селекції в цьому кросовере відбираються два найбільш сильні нащадки.
Рис. 2.4. Лінійний кросовер.
Дискретний кросовер (discrete crossover): кожний ген hk вибирається випадково за рівномірним законом з кінцевої множини {ck1,ck2}.
Рис. 2.5. Дискретний кросовер.
Розширений лінійний кросовер (extended line crossover): ген hk=ck1+w*(ck2–ck1), w – випадкове число з інтервалу [-0.25;1.25].
Рис. 2.6. Розширений лінійний кросовер.
Евристичний кросовер (Wright’s heuristic crossover). Нехай C1 - один із двох батьків із кращою пристосованістю. Тоді hk=w*(ck1-ck2)+ck1, w - випадкове число з інтервалу [0;1].
Рис. 2.7. Евристичний кросовер.
Нечіткий
кросовер
(fuzzy recombination, FR-d crossover): створюються два
нащадки H1=(h11,…,hn1),
H2=(h11,…,hn2)...
Імовірність того, що в i-тім гені з'явиться
число vi
, задається розподілом p(vi)
{F(ck1),F(ck2)},
де F(ck1),F(ck2)
– розподілу ймовірностей трикутної
форми (трикутні нечіткі функції
приналежності) з наступними властивостями
(ck1<=ck2
і I=|ck1–ck2|)
таб.2.1.
Параметр d визначає ступінь перекриття трикутних функцій приналежності, за замовчуванням d=0.5.
Таблиця 2.1.
-
Розподіл імовірностей
Мінімум
Центр
Максимум
F(ck1)
ck1–d*I
ck1
ck1+d*I
F(ck2)
ck2–d*I
ck2
ck2+d*I
Рис. 2.8. Нечіткий кросовер.
Мін-максний кросинговер
Для представлення хромосоми числами із плаваючою крапкою використається практично тільки мін-максный кросовер або його модифікації:
Для
батьків
і
виходять 4 нащадка
,
,
,
.
Вибираються два кращих із цих чотирьох нащадків.
Розглянуті кросовери історично були запропоновані першими, однак у багатьох завданнях їхня ефективність виявляється невисокою. Виключення становить BLX-кросовер з параметром alpha=0.5 - він перевершує по ефективності більшість простих кросоверів. Пізніше були розроблені поліпшені оператори схрещування, аналітична формула яких і ефективність обґрунтовані теоретично. Один з таких кросоверов - SBX.
SBX кросовер
SBX (англ.: Simulated Binary Crossover) - кросовер, що імітує двійковий. Був розроблений в 1995 році дослідницькою групою під керівництвом K. Deb'а. Як треба з його назви, він моделює принципи роботи двійкового оператора схрещування.
SBX
кросовер був отриманий у такий спосіб.
У двійкового кросовера була виявлена
важлива властивість – середнє значення
функції пристосованості залишалося
незмінним у батьків і їхніх нащадків,
отриманих шляхом схрещування. Потім
автором було уведене поняття сили пошуку
кросовера (search power). Це кількісна величина,
що характеризує розподіл імовірностей
появи будь-якого нащадка від двох
довільних батьків. Спочатку була
розрахована сила пошуку для однокрапкового
двійкового кросовера, а потім був
розроблений речовинний SBX кросовер з
такою же силою пошуку. У ньому сила
пошуку характеризується розподілом
імовірностей випадкової величини
:
Для
генерації нащадків використовується
наступний алгоритм, що використовує
вираження для P(
) . Створюються два нащадки Hk=(h1k,
…, hjk,
…, hnk),
k=1,2, де
,
,
–
число, отримане по формулі:
У формулі u(0,1) – випадкове число, розподілене за рівномірним законом, n [2,5] – параметр кросовера.
На малюнку наведена геометрична інтерпретація роботи SBX кросовера при схрещуванні двох хромосом, що відповідають речовинним числам 2 і 5. Видно, як параметр n впливає на кінцевий результат: збільшення n спричиняє збільшення ймовірності появи нащадка в околиці батька й навпаки.
Рис. 2.9. SBX кросовер.
Експерименти автора SBX кросовера показали, що він у багатьох випадках ефективніше BLX, хоча, напевно, не існує жодного кросовера, ефективного у всіх випадках. Дослідження показують, що використання декількох різних операторів кросовера дозволяє зменшити ймовірність передчасної збіжності, тобто поліпшити ефективність алгоритму оптимізації в цілому. Для цього можуть використатися спеціальні стратегії, що змінюють імовірність застосування окремого еволюційного оператора залежно від його «успішності», або використання гібрідних кросоверов, яких у цей час налічується кілька десятків.