Лабораторна робота №6

You might also like

You are on page 1of 5

Звіт

Лабораторна робота №6
Моделювання та оптимізація інформаційних систем
студента групи МІТ-41
Маніла Дмитра
Хід роботи:
Варіант 11
Завдання до лабораторної роботи:
1. Засвоїти схему генетичного алгоритму та призначення основних параметрів
популяції, алгоритму та функцій графіки, зрозуміти роботу функцій відбору,
кросовера та мутації.
2. Знайти мінімум функції двох змінних генетичним алгоритмом. Створити
функцію myfun.
Провести дослідження цієї функції за допомогою генетичних алгоритмів та
заповнити таблицю, змінюючи ймовірність схрещування та розмір початкової
популяції. Вибрати оператор мутації по Гауссу, ймовірність мутації прийняти
рівним за умовчанням 1,0

Створимо функцію myfun;


function f = myfun(x)
f = (1 + x(1))^2 - 10 * x(1)^2 - (x(2) + x(1)^2)^2;
end

Та myfun1:
function f = myfun1(x,y)
f = (1 + x).^2 - 10 .* x .^2 - (y + x .^2) .^2;
end
Генетичний алгоритм;(Task2_1, Task2):
Кількість популяції змінюється вручну (script);
Змінні Розмір початкової популяції
10 20 35 50 100

Імовірніст 1 x1= -2.9474 2.9814 -2.5646 -2.9768 -2.9572


ь x2= 2.9673 2.9459 2.9418 2.9542 2.9276
кросоверу f(x1,x2) - - - -224.308 -
= 218.903 213.1003 153.9358 219.874
1
0.8 x1= 3.0000 -3.0000 3.0000 3.0000 -3.0000
x2= 1.2910 3.0000 3.0000 3.0000 3.0000
f(x1,x2) - - - -218.000 -
= 179.905 229.9997 218.0000 230.000
1

0.6 x1= 3.0000 -3.0000 -3.0000 -3.0000 -3.0000


x2= 3.0000 3.0000 3.0000 3.0000 3.0000
f(x1,x2) - - - -230.000 -
= 218.000 229.9995 230.0000 230.000
0
0.3 x1= -2.9999 -3.0000 -3.0000 -3.0000 -3.0000
x2= 3.0000 3.0000 3.0000 3.0000 3.0000
f(x1,x2) - -230.000 - -230.000 -
= 229.981 230.0000 230.000
3

0 x1= -2.9727 -3.0000 -3.0000 -3.0000 -3.0000


x2= 2.5009 3.0000 3.0000 3.0000 3.0000
f(x1,x2) - -229.999 - -230.000 -
= 213.028 230.0000 230.000
6

3. Знайти глобальний максимум функції myfun у межах –3 xj 3, j = 1, 2 та при


додаткових обмеженнях –Nx1 + 5x2 <= 7, 3x1 + Nx2 <= 9 за кількох значеннях
числа елітних особин (приклад 6.2). Де N- номер варіанту (приклад 6.2). N = 11:
-11*x1 + 5x2 <= 7, 3x1 + 11x2 <= 9
Task3:
clc;
options=gaoptimset('PlotFcns', @plotfun1,'PopulationSize',10);
[x,fval,exit,output]=ga(@(x)-myfun(x),2,[-11 5],[7],[3 11],[9],[-3 -3],[3 3],[],options);
disp('x = ');
disp(x);
disp('fval = ');
disp(fval*(-1));

4. Застосувати генетичний алгоритм до функції заданої в таблиці 6.3 , створити


функцію multiextr1 на області –3 xj 4, j = 1, 2 з метою знаходження глобальних
максимумів при декількох розмірах популяції від 10 до 50(приклад 6.3)

Створимо файл multiextr.m в якому опишемо функцію


function f = multiextr(x)
f = 0.1*x(1)^2 + 0.1*x(2)^2 - 4*cos(0.8*x(1)) - 4*cos(0.8*x(2)) + 8;
end

Тепер створимо файл Task3.m:


clc;
options=gaoptimset('PlotFcns', @plotfun1,'PopulationSize',10);
% Find MIN
[x,fval,exit,output]=ga(@multiextr,2,[],[],[],[],[-16 -16],[16 16],[],options);
disp('x = ');
disp(x);
disp('fval = ');
disp(fval);
% Find MAX
[x,fval,exit,output]=ga(@(x)-multiextr(x),2,[],[],[],[],[-16 -16],[16 16],[],options);
disp('x = ');
disp(x);
disp('fval = ');
disp(fval*(-1));

Кількість популяцій змінюємо вручну (Task4).

Змінні Розмір початкової популяції

10 20 35 50

Мінімум x1 0.0000 0.1327 -0.1878 0.6135

x2 -7.2648 0.0426 0.7886 -0.9124

fval 5.7139 2.6822e-10 9.0695e-11 1.6683e-10

Максимум x1 16.0000 16.0000 16.0000 -15.9999

x2 -16.0000 -15.9999 16.0000 16.0000

fval 51.4173 51.4169 51.4173 51.4171

Висновок: виконавши лаборатону роботу я протестував та опанував


використання генетичних алгоритмів для оптимізації інформаційних систем.

You might also like