Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ГА Методичка_полная_укр.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
3.87 Mб
Скачать

Інтрони

Програми, побудовані за допомогою методів ГП, мають тенденцію до накопичення інтронів - непотрібних і непридатних частин коду.

Наприклад:

(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. Письмова відповідь на контрольне запитання за варіантом (номер контрольного запитання відповідає номеру варіанта).