You are on page 1of 7

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

Харківський національний університет

радіоелектроніки Кафедра біомедичної інженерії

ЗВІТ

з лабораторної роботи №3

Тема: «ЗАСТОСУВАННЯ ГЕНЕТИЧНИХ АЛГОРИТМІВ ДЛЯ МАКСИМІЗАЦІЇ


ФУНКЦІЇ»
Дисципліна: «Методи обробки біомедичних даних»

Виконав: Перевірив:
ст.гр. БІБМІ-21-1
Трубіцин О.О
Фостенко.Є

Харків 2023
ЗАСТОСУВАННЯ ГЕНЕТИЧНИХ АЛГОРИТМІВ ДЛЯ МАКСИМІЗАЦІЇ
ФУНКЦІЇ

Мета роботи

Навчитися вирішувати задачі оптимізації за допомогою генетичного алгоритму.

Короткі теоретичні відомості

Генетичний алгоритм – потужний інструмент для вирішення складних задач. Він


знайшов своє застосування серед завдань оптимізації, інженерії, штучного інтелекту. В
основу алгоритму покладено принципи біології і генетики – створення популяції
індивідів, кожен із яких представляється як хромосоми. Своїм існуванням генетичні
алгоритми зобов'язані спробам наслідування природних процесів, що відбуваються у
живих організмах – селекції та еволюції популяції живих істот.
Ідею генетичного алгоритму 1975 року запропонував Джон Холланд (J. H.
Holland). Він припустив, що складений відповідним чином алгоритм біологічної
еволюції може бути покладено основою рішення складні проблеми.

Порядок виконання роботи

Розв'язати задачу максимізації функції на відрізку [0; 31]. Для кодування


потрібно вибрати двійковий код. Виберіть початкову популяцію, що складається з
чотирьох п'ятибітних ланцюжків, за варіантом таблиці 3.2.

Таблиця 3.2 – Цільова функція та фенотип


Функція Фенотип

f(x) = 3x3 + 8 11,28,9,5


Знайдіть значення цільової функції. Визначте середнє значення цільової функції.
Отриману популяцію розкладіть на рулетці для проведення вибору хромосом
Побудуйте рулетку для відбору хромосом у вигляді об'ємної кругової діаграми за
допомогою команди Matlab pie3. Команда pie3 будує кругову діаграму відсоткового
відношення цільової значень функції до суми. Синтаксис команди pie3 має такий
вигляд. Чином:

Програма:

% Вибір початкової популяції


initial_population = [11, 28, 9, 5];
% Обчислення значень цільової функції для кожного фенотипу
function_values = 3 * initial_population.^3 + 8;
% Обчислення середнього значення цільової функції
mean_value = mean(function_values);
% Побудова рулетки
figure;
pie3(function_values);
legend('1 хромосома', '2 хромосома', '3 хромосома', '4 хромосома');

Рисунок 3.1 – Рулетка з розподілом фенотипів


Отримавши батьківський пул, необхідно застосувати генетичні оператори –
схрещування та мутацію. Для цього необхідні всі фенотипи уявити як хромосом,
тобто. перевести до бінарного коду. Для проведення схрещування кожній хромосомі
необхідно підібрати пару. Виберіть номер партнера для схрещування з таблиці 3.3.

Таблиця 3.3 – Параметри генетичних операторів

Номери Лінія схрещування Номери позицій


партнерів для першої для другої зміни

пари пари хромосоми

2 1; 4 3 3 4 3, 6, 18, 9

Таблиця 3.4 – Вибір партнера для схрещування

№ Хромосоми Батьківський пул Номер партнера Лінія


схрещування

1 11 2 1; 4

2 28 1 3

3 9 4 6

4 5 3 18

Таблиця 3.5 - Результат застосування генетичних операторів

№ Хромосоми Нова популяція Фенотип Значення функції

1 3 6 197

2 9 18 4.561

3 28 9 6.944
4 11 5 833

Оцініть середнє значення функції після першої генерації. Зробіть висновки про
поліпшення чи погіршення стану популяції з погляду максимізації цільової функції
фенотипами, що становлять отриману Населення. Повторіть кроки для отримання
нового покоління двічі та оцініть результати.

Побудуйте у Matlab графік вашої функції f на інтервалі x від 0 до 31 с кроком 1:

% Задані дані
function_values = [197, 4.561, 6.944, 833];
best_phenotypes = [6, 18, 9, 5];
% Побудова графіка функції
x = 0:31;
f = 3 * x.^3 + 8;
plot(x, f, 'LineWidth', 2);
hold on;
% Відмітка найкращих фенотипів з кожного покоління
plot(best_phenotypes(1), function_values(1), 'ro', 'MarkerSize', 10);
plot(best_phenotypes(2), function_values(2), 'gv', 'MarkerSize', 10);
plot(best_phenotypes(3), function_values(3), 'ms', 'MarkerSize', 10);
% Легенда
legend('Функція', '1-е покоління', '2-ге покоління', '3-тє покоління');
Рисунок 3.2 - Графік функції f на інтервалі x від 0 до 31 з шагом 1

ВИСНОВКИ

Під час виконання даної роботи було вивчено і застосовано генетичний алгоритм
для максимізації функції. Генетичний алгоритм, заснований на принципах біології та
генетики, є потужним інструментом для вирішення складних оптимізаційних задач.

Був побудований графік функції на інтервалі від 0 до 31 з кресленням кращих


фенотипів з кожного покоління. За допомогою генетичного алгоритму було досягнуто
збільшення значення функції і знаходження оптимальних фенотипів.

Використання генетичного алгоритму дозволяє ефективно розв'язувати задачі


оптимізації та досягати покращення результатів з кожним наступним поколінням.
Генетичні алгоритми виявляються потужним інструментом для вирішення складних
проблем та знаходження оптимальних рішень.

You might also like