
- •Введення
- •Лабораторна робота №1 Основи генетичних алгоритмів. Простій генетичний алгоритм Загальні відомості
- •Генетичні оператори
- •Репродукція
- •Оператор кросинговера (схрещування)
- •Мутація
- •Представлення рішень в двійковій формі
- •Логарифмічне кодування
- •Порядок виконання лабораторної роботи
- •Завдання
- •Контрольні запитання
- •Оператори кросинговеру
- •Оператори мутації
- •Тестові приклади
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота №3 Рішення завдання комівояжера за допомогою генетичних алгоритмів Загальні відомості
- •Представлення сусідства
- •Порядкове представлення
- •Шляхове представлення
- •Завдання
- •Контрольні питання
- •Лабораторна робота №4 Генетичне програмування Загальні відомості
- •Термінальна множина
- •Функціональна множина
- •Структури для представлення програм
- •Деревовидна структура
- •Лінійні структури
- •Графоподібні структури
- •Ініціалізація початкової популяції
- •Ініціалізація деревовидних структур
- •Ініціалізація лінійних структур
- •Кросинговер в генетичному програмуванні
- •Виконання ок на деревовидних структурах
- •Ок на лінійних структурах
- •Виконання ок для графоподібних структурах
- •Мутація в генетичному програмуванні
- •Виконання мутації на деревовидних структурах
- •Виконання мутації на лінійних структурах
- •Виконання мутації на графоподібних структурах
- •Фітнес-функція в генетичному програмуванні
- •Інтрони
- •Загальний алгоритм генетичного програмування
- •Порядок виконання лабораторної роботи
- •Завдання
- •Контрольні запитання
- •Литература
- •Методичнi вказiвки До виконання лабораторних робіт
Контрольні запитання
Які “джерела” ГА?
Які генетичні оператори використовуються в ГА?
Яку роль в ГА грає оператор репродукції (ОР)?
Опишіть реалізацію ОР у вигляді колеса рулетки і наведіть приклад його роботи.
Придумайте іншу реалізацію ОР.
Опишіть оператор кросинговеру (ОК) і наведіть приклад його роботи.
Придумайте іншу реалізацію ОК.
Яку роль грає оператор мутації (ОМ)?
Опишіть ОМ і наведіть приклад його роботи.
Придумайте іншу реалізацію ОМ.
Виконаєте програмну реалізацію простого ГА на одній з мов програмування для пошуку максимуму функції на інтервалі [-5, 5].
Які основні параметри ГА?
Дослідити залежність роботи (швидкість збіжності) ГА від потужності популяції N.
Дослідити залежність роботи ГА від значення вірогідності ОК Pc.
Дослідити залежність роботи ГА від значення вірогідності ОК Pm.
Лабораторна робота №2.
Оптимізація багатовимірних функцій за допомогою ГА
Мета роботи: модифікація представлення хромосоми й операторів рекомбінації ГА для оптимізації багатомірних функцій. Графічне відображення результатів оптимізації.
Загальні відомості
Представлення хромосоми
При роботі з оптимізаційними завданнями в багатовимірному безперервному просторі пошуку цілком природно представляти гени безпосередньо дійсними числами. У цьому випадку хромосома є вектором дійсних чисел. Їх точність буде визначатися винятково розрядною сіткою ЕОМ, на якій реалізується real-coded генетичний алгоритм (RGA). Довжина хромосоми буде збігатися з довжиною вектора-рішення оптимізацийної задачі, інакше кажучи, кожен ген буде відповідати за одну змінну. Генотип об'єкта стає ідентичним до його фенотипу.
Вищесказане визначає список основних переваг real-coded алгоритмів:
Використання безперервних генів дає можливість пошуку у просторах великої розмірності, що важко робити у випадку бінарних генів, коли збільшення простору пошуку скорочує точність рішення при незмінній довжині хромосоми.
Однією з важливих рис безперервних ГА є їх здатність до локального настроювання рішень.
Використання RGA для представлення рішень зручно, оскільки близьке до постановки більшості прикладних задач. Крім того, відсутність операцій кодування/декодування, необхідних в BGA (генетичних алгоритмів двоїчного кодування), підвищує швидкість роботи алгоритму.
Поява нових особин у популяції канонічного ГА забезпечують кілька біологічних операторів: відбір, схрещування й мутація. Для операторів відбору особин у батьківську пару тут підходять будь-які відомі з BGA: рулетка, турнірний, випадковий. Однак оператори схрещування й мутації в класичних реалізаціях працюють із бітовими рядками. Необхідні реалізації, що враховують специфіку real-coded алгоритмів.
Також рекомендується використати стратегію элітизму - краща особина зберігається окремо й не знищується при зміні епох, приймаючи при цьому участь у відборі й рекомбінації.