
- •Введення
- •Лабораторна робота №1 Основи генетичних алгоритмів. Простій генетичний алгоритм Загальні відомості
- •Генетичні оператори
- •Репродукція
- •Оператор кросинговера (схрещування)
- •Мутація
- •Представлення рішень в двійковій формі
- •Логарифмічне кодування
- •Порядок виконання лабораторної роботи
- •Завдання
- •Контрольні запитання
- •Оператори кросинговеру
- •Оператори мутації
- •Тестові приклади
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота №3 Рішення завдання комівояжера за допомогою генетичних алгоритмів Загальні відомості
- •Представлення сусідства
- •Порядкове представлення
- •Шляхове представлення
- •Завдання
- •Контрольні питання
- •Лабораторна робота №4 Генетичне програмування Загальні відомості
- •Термінальна множина
- •Функціональна множина
- •Структури для представлення програм
- •Деревовидна структура
- •Лінійні структури
- •Графоподібні структури
- •Ініціалізація початкової популяції
- •Ініціалізація деревовидних структур
- •Ініціалізація лінійних структур
- •Кросинговер в генетичному програмуванні
- •Виконання ок на деревовидних структурах
- •Ок на лінійних структурах
- •Виконання ок для графоподібних структурах
- •Мутація в генетичному програмуванні
- •Виконання мутації на деревовидних структурах
- •Виконання мутації на лінійних структурах
- •Виконання мутації на графоподібних структурах
- •Фітнес-функція в генетичному програмуванні
- •Інтрони
- •Загальний алгоритм генетичного програмування
- •Порядок виконання лабораторної роботи
- •Завдання
- •Контрольні запитання
- •Литература
- •Методичнi вказiвки До виконання лабораторних робіт
Кросинговер в генетичному програмуванні
У початковій популяції хромосоми (потенційні рішення), як правило, мають низькі (погані) значення фітнес-функції. В процесі еволюції за допомогою генетичних операторів популяція розвивається і значення фітнес-функції покращуються. У ГП використовуються ті ж, що і в ГА, генетичні оператори кросинговер (ОК), мутація і репродукція. Відзначимо, що в термінах машинного навчання вони відповідають операторам пошуку рішення. Далі ми розглянемо виконання генетичних операторів на розглянутих структурах.
Виконання ок на деревовидних структурах
Для деревоподібної форми використовуються наступні три основні оператори кросинговеру (ОК):
а) вузловий ОК;
б) кросинговер піддерев;
в) змішаний.
У вузловому ОК вибираються два дерева (батьки) і вузли в цих деревах. Перше дерево називається доминантом, друге, - рецесивом. Вузли в деревах можуть бути різного типу. Тому спочатку необхідно переконатися, що вибрані вузли у дерев є взаємозамінними. Якщо вузол в другому дереві не відповідає типу вузла першого дерева, то випадковим чином вибирається інший вузол в другому дереві, який знову підлягає перевірці на предмет сумісності. Далі проводиться обмін вузлів.
У кросинговері піддерев дерева обмінюються не вузлами, а визначеними ними піддеревами. Оператор виконується таким чином:
Вибираються дерева (один - домінантний, інший - рецесивний). Далі необхідно переконатися, що вибрані вузли взаємозамінні, тобто належать одному типу. Інакше, як і у попередньому випадку в рецесивному дереві вибирається інший вузол з подальшою перевіркою.
Потім проводиться обмін піддерев, які визначені цими вузлами.
Обчислюється розмір очікуваних нащадків. Якщо очікуваний розмір (складність нащадка) не перевищує заданий поріг, такий обмін запам'ятовується.
Цей тип ОК є основним. При цьому під розміром (під) дерева розуміється, як і раніше, або його висота, або число його вершин.
При змішаному ОК для деяких вузлів виконується вузловий ОК, а для інших - ОК піддерев.
Ок на лінійних структурах
Схрещування на лінійних структурах виконується досить просто. Тут у дерев виконується обмін лінійними сегментами, як це показано на рис.4.6.
Рис.4.6. Кросинговер на лінійних структурах.
При цьому в кожній з двох хромосом вибирається сегмент, починаючи з випадкової позиції і має випадкову довжину. Далі проводиться обмін вибраних сегментів програм. Якщо розмір хоч би одного з нащадків перевищує деякий поріг, то результати ОК анулюються. При цьому точки схрещування вибираються лише між операторами.
Виконання ок для графоподібних структурах
Кросинговер комбінує генетичний матеріал з двох програм шляхом обміну деяких частин програм. ОК для цієї моделі може бути реалізований двома способами.
Перший спосіб схожий на ОК піддерев, який визначений на деревоподібних структурах шляхом обміну піддерев. Тут обмін проводиться підграфами, як це показано на рис.4.7.
Рис.4.7. Кросинговер на графоподібних структурах.
При цьому в кожній хромосомі - вибирається випадковим чином множину суміжних вузлів і проводиться обмін 2-х підграфів між цими підграфами.
Другий
тип ОК виконує лінійний ОК. Тут для
кожній з двох вибраних хромосом
вибирається лінійний сегмент (у одному
вузлі графа), що починається з випадкової
позиції даного сегменту і має випадкову
довжину. Далі, як завжди, проводиться
обмін цими лінійними сегментами. Якщо
розмір хоч би одного з нащадків перевищує
деякий поріг, то результати ОК анулюються
і виконується обмін рівними сегментами
меншої довжини. Зазвичай лінійний ОК
виконується у вірогідністю
.
Приклад виконання цього ОК представлений
на рис.4.8.
Батьки Нащадки
Рис.4.8. Лінійний кросинговер на графах.
Як правило, в процесі еволюції використовуються ОК обох типів. В цілому ОК виконується таким чином:
1) Вибір
точки схрещування
в обох хромосомах.
2) Вибір
із заданою вірогідністю типа ОК (для
1-го типа з вірогідністю
,
для 2-го з вероятностью
1-
).
Якщо вибрано 1-й тип - перехід на п.3,
інакше на п.4.
3) Якщо розмір нащадка не перевищує поріг, то виконати ОК 1-го типу, перехід на п.5.
4) Якщо розмір нащадка не перевищує поріг, то виконати ОК 2-го типу.
5) Кінець.