Ренгач С. М.

Вінницький торгово-економічний інститут Київського торгово-економічного університету

Застосування генетичних алгоритмів в сучасних інформаційних технологіях

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

·       Опрацьовують не значення параметрів самої задачі, а їх закодовану форму (кодування параметрів);

·       Здійснюють пошук рішення виходячи не з єдиної точки, а із деякої популяції (операції на популяціях);

·       Використовують тільки цільову функцію, а не її похідні або додаткову інформацію (використання мінімуму інформації про задачу);

·       Застосовують імовірнісні (не детерміновані) правила вибору (рандомізація операцій).

Для генетичних алгоритмів використовують визначення, залучені з генетики.  Це популяція особин, ген, хромосома, генотип, фенотип, алель. Також використовують технічні терміни, такі як ланцюг, бінарна послідовність, структура.                                                                                                Популяція – кінцева кількість особин.                                                  Особи, що входять в популяцію, в генетичних алгоритмах представляються хромосомами із закодованими в них множинами параметрів задачі, або рішень, які ще називаються точками в просторі пошуку.         Хромосоми(інша назва – ланцюги, кодові послідовності) – це упорядковані послідовності генів.                                                                   Ген(або властивість, знак чи детектор) – це атомарний елемент генотипу, хромосоми.                                                                                             Генотип(структура) – це набір хромосом даної особи.                       Фенотип – це набір значень, що відповідає даному генотипу, тобто декодована структура або множина параметрів задачі (рішення, точки простору пошуку).                                                                                                           Алель – це значення конкретного гена, також визначається як значення властивості або варіант властивості.                                                                Локус або позиція вказує місце розміщення даного гена в хромосомі (ланцюжку). Множина позицій генів – це локи.                                              Дуже важливим поняттям в генетичних алгоритмах вважається функція пристосування, або функція оцінки.  Вона визначає міру пристосування даної особи в популяції. Ця функція відіграє важливу роль, оскільки дозволяє оцінити ступінь пристосування конкретних особин в популяції і вибирати із них найбільш пристосованих (тобто тих, які мають найбільше значення функції пристосування) у відповідності з еволюційним принципом виживання найсильнішого (найкраще пристосованого). Функція пристосування чинить сильний вплив на функціонування генетичних алгоритмів і повинна мати точне і конкретне визначення. В задачах оптимізації цільова функція як правило і називається цільовою функцією. В теорії управління функція пристосування має вигляд функції погрішності, а в теорії ігор – вартості функції. У прогнозуванні функція пристосування повинна відображати точність прогнозу. На кожній ітерації генетичного алгоритму пристосованість кожної особини даної популяції оцінюється за допомогою функції пристосування, і на цій основі створюється наступна популяція особин, що утворюють множину потенційних рішень проблеми.                                                                 Класичний генетичний алгоритм (простий генетичний алгоритм) складається з наступних етапів:

·       Ініціалізація, вибір початкової популяції хромосом;

·       Оцінка пристосованості хромосом в популяції;

·       Перевірка умови зупинки алгоритму;

·       Застосування генетичних операторів;

·       Формування нової популяції;

·       Вибір найкращої хромосоми.

Найбільш популярним програмним продуктом для вирішення задач оптимізації за допомогою генетичних алгоритмів є комплект Genetic Algorithm Tool математичного пакету Matlab. Даний пакет дозволяє знайти оптимальне рішення для оптимізовуваної функції, виходячи з деякої початкової популяції рішень а також  дозволяє визначити масштабування, оператори відбору, репродукції, мутації, схрещування.                                                                 Для створення власних програмних продуктів на основі генетичних алгоритмів використовують бібліотеку класів Galib, написану на С++, що поширюється на основі ліцензії GPL.

Література:

1.  Рутковская Д., Пилиньский М., Рутковский Л. Нейронные сети, генетические алгоритмы и нечеткие системы: Пер. С польск. И. Д. Рудинского. – М.: Горячая линия – Телеком, 2006. – 452 с.: ил.

2.       Панченко, Т. В. Генетические алгоритмы : учебно-методическое

пособие / под ред. Ю. Ю. Тарасевича. — Астрахань : Издательский дом

«Астраханский университет», 2007. — 87 .

3. www.habrahabr.ru – стаття «Генетические алгоритмы в MATLAB»