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