
- •Введення
- •Лабораторна робота №1 Основи генетичних алгоритмів. Простій генетичний алгоритм Загальні відомості
- •Генетичні оператори
- •Репродукція
- •Оператор кросинговера (схрещування)
- •Мутація
- •Представлення рішень в двійковій формі
- •Логарифмічне кодування
- •Порядок виконання лабораторної роботи
- •Завдання
- •Контрольні запитання
- •Оператори кросинговеру
- •Оператори мутації
- •Тестові приклади
- •Порядок виконання лабораторної роботи
- •Контрольні питання
- •Лабораторна робота №3 Рішення завдання комівояжера за допомогою генетичних алгоритмів Загальні відомості
- •Представлення сусідства
- •Порядкове представлення
- •Шляхове представлення
- •Завдання
- •Контрольні питання
- •Лабораторна робота №4 Генетичне програмування Загальні відомості
- •Термінальна множина
- •Функціональна множина
- •Структури для представлення програм
- •Деревовидна структура
- •Лінійні структури
- •Графоподібні структури
- •Ініціалізація початкової популяції
- •Ініціалізація деревовидних структур
- •Ініціалізація лінійних структур
- •Кросинговер в генетичному програмуванні
- •Виконання ок на деревовидних структурах
- •Ок на лінійних структурах
- •Виконання ок для графоподібних структурах
- •Мутація в генетичному програмуванні
- •Виконання мутації на деревовидних структурах
- •Виконання мутації на лінійних структурах
- •Виконання мутації на графоподібних структурах
- •Фітнес-функція в генетичному програмуванні
- •Інтрони
- •Загальний алгоритм генетичного програмування
- •Порядок виконання лабораторної роботи
- •Завдання
- •Контрольні запитання
- •Литература
- •Методичнi вказiвки До виконання лабораторних робіт
Інтрони
Програми, побудовані за допомогою методів ГП, мають тенденцію до накопичення інтронів - непотрібних і непридатних частин коду.
Наприклад:
(AND (ORXX)),
(+ (-XX)),
(MOVE_LEFT MOVE_RIGHT),
(IF (2=1) . . . ),
A:=A.
Таких фрагментів в програмі виникає досить багато (їх кількість може досягати 60%), виявлення і видалення інтронів є проблемою в ГП. Розроблено спеціальні методи для їх усунення.
Загальний алгоритм генетичного програмування
Таким чином, для вирішення завдання за допомогою ГП необхідно виконати описані вище етапи:
1) Визначити термінальну множину;
2) Визначити функціональну множину;
3) Визначити фітнес-функцію;
4) Визначити значення параметрів, такі як кількість хромосом у популяції, максимальний розмір хромосоми, вірогідність ОК і ОМ, спосіб відбору, критерій закінчення еволюції (наприклад, максимальне число поколінь) і т. п.
Після цього можна розробляти безпосередньо сам еволюційний алгоритм, що реалізовує ГП для конкретного завдання.
Наприклад, рішення задачі на основі ГП можна представити наступною послідовністю дій:
1) установка параметрів еволюції;
2) ініціалізація початкової популяції;
3) t:=0;
4) оцінка хромосом, що входять в популяцію;
5) t:=t+1;
6) відбір хромосом;
7) створення нащадків вибраних пар хромосом - виконання ОК;
8) мутація нових хромосом;
9) розширення популяції новими породженими хромосомами;
10) скорочення розширеної популяції;
11) якщо критерій закінчення алгоритму виконано, то вибір кращої хромосоми в кінцевій популяції - результат роботи алгоритму. Інакше перехід на крок 4.
Порядок виконання лабораторної роботи
1. При домашній підготовці
вивчити теоретичний матеріал;
ознайомитися з типами структур для представлення програми;
розглянути способи ініціалізації початкової популяції;
розглянути способи виконання ОК і ОМ;
виконати індивідуальне завдання на будь-якій мові високого рівня з необхідними коментарями і виводами.
2. Під час заняття
продемонструвати результати виконання роботи;
отримати допуск до захисту лабораторної роботи.
3. Захистити звіт з лабораторної роботи.
Завдання
1. Розробити еволюційний алгоритм, що реалізує ГП для знаходження заданої по варіанту функції (таб. 4.1).
- Структура для представлення програми – деревовидна.
- Термінальна множина: змінні х1, х2, х3, ..., хn, і константи відповідно до варіанта завдання.
- Функціональна множина: +, - *, /, abs(), sin(), cos(), exp(), ^.
- Фітнес-функція - міра близькості між реальними значеннями виходу інеобхідними.
Таблиця 4.1. Індивідуальні завдання.
№ |
функція |
N |
діапазон |
1 |
f1(x)=sum(x(i)^2), i=1:n; |
10 |
-5.12<=x(i)<=5.12. |
2 |
f1a(x)=sum(i·x(i)^2), i=1:n; |
9 |
-5.12<=x(i)<=5.12. |
3 |
f1b(x)=sum(sum(x(j)^2), j=1:i), i=1:n; |
8 |
-5.536<=x(i)<=65.536 |
4 |
f2(x)=sum(100·(x(i+1)-x(i)^2)^2+(1-x(i))^2), i=1:n-1; |
7 |
-2.048<=x(i)<=2.048. |
5 |
f6(x)=10·n+sum(x(i)^2-10·cos(2·pi·x(i))); i=1:n; |
9 |
-5.12<=x(i)<=5.12. |
6 |
f7(x)=sum(-x(i)·sin(sqrt(abs(x(i))))); i=1:n; |
10 |
-500<=x(i)<=500. |
7 |
f8(x)=sum(x(i)^2/4000)-prod(cos(x(i)/sqrt(i)))+1; i=1:n; |
5 |
-600<=x(i)<= 600. |
8 |
f9(x)=sum(abs(x(i))^(i+1)); i=1:n; |
8 |
-1<=x(i)<=1. |
9 |
f10(x)=-a·exp(-b·sqrt(1/n·sum(x(i)^2)))-exp(1/n·sum(cos(c·x(i))))+a+exp(1); a=20; b=0.2; c=2·pi; i=1:n; |
4 |
-2.768<=x(i)<=32.768 |
10 |
f11(x)=-sum(c(i)·(exp(-1/pi·sum((x-A(i))^2))·cos(pi·sum((x-A(i))^2)))), i=1:m, m=5; A(i),C(i)<>0, m=5 |
4 |
0<=x(i)<=10. |
11 |
f12(x)=-sum(sin(x(i))·(sin(i·x(i)^2/pi))^(2·m)), i=1:n, m=10; |
5 |
0<=x(i)<=pi. |
12 |
fBran(x1,x2)=a·(x2-b·x1^2+c·x1-d)^2+e·(1-f)·cos(x1)+e; a=1, b=5.1/(4·pi^2), c=5/pi, d=6, e=10, f=1/(8·pi); |
2 |
-5<=x1<=10, 0<=x2<=15. |
13 |
fEaso(x1,x2)=-cos(x1)·cos(x2)·exp(-((x1-pi)^2+(x2-pi)^2)); |
2 |
-100<=x(i)<=100, i=1:2. |
14 |
fGold(x1,x2)=[1+(x1+x2+1)^2·(19-14·x1+3·x1^2-14·x2+6·x1·x2+3·x2^2)]·[30+(2·x1-3·x2)^2·(18-32·x1+12·x1^2+48·x2-36·x1·x2+27·x2^2)] |
2 |
-2<=x(i)<=2, i=1:2. |
15 |
fSixh(x1,x2)=(4-2.1·x1^2+x1^4/3)·x1^2+x1·x2+(-4+4·x2^2)·x2^2; |
2 |
-3<=x1<=3, -2<=x2<=2. |
2. Представити графічно знайдене рішення на кожній ітерації.
3. Порівняти знайдене рішення з представленим в у завданні.
Зміст звіту
1. Титульний аркуш.
2. Індивідуальне завдання за варіантом.
3. Короткі теоретичні відомості.
4. Програма і результати виконання індивідуального завдання з коментарями і виводами.
5. Письмова відповідь на контрольне запитання за варіантом (номер контрольного запитання відповідає номеру варіанта).