Генетичні алгоритми: суть, опис, приклади застосування

Особливості ГА

Перерахуємо головні відмінності ГА від більшості інших методів пошуку оптимального рішення.

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

Критерії роботи

Генетичні алгоритми проводять розрахунки виходячи з двох умов:

  • Виконання заданого числа ітерацій.
  • Якість знайденого рішення відповідає вимогам.
  • При виконанні одного з цих умов генетичний алгоритм перестане виконувати подальші ітерації. Крім цього, використання ГА різних областей простору рішень дозволяє їм куди краще знаходити нові рішення, які мають відповідні значення цільової функції.

    Базова термінологія

    Зважаючи на те, що ГА засновані на генетику, то і більша частина термінології відповідає їй. Будь генетичний алгоритм працює на основі початкової інформації. Безліч початкових значень є популяція Пt = {п1, п2, …, пп}, де пі = {п1, …, гv}. Розберемо докладніше:

    • t – номер ітерації. t1, …, tk – означає ітерації алгоритму з 1 по k, і на кожній ітерації створюється нова популяція рішень.
    • n – розмір популяції Пt.
    • п1, …, пі – хромосома, особина, або організм. Хромосома або ланцюжок – це закодована послідовність генів, кожен з яких має порядковий номер. При цьому слід мати на увазі, що хромосома може бути приватним випадком особини (організму).
    • гv – це гени, що є частиною закодованого рішення.
    • Локус – це порядковий номер гена в хромосомі. Алель – значення гена, який може бути як цілим, так і функціональним.

    Що значить “закодований” в контексті ГА? Зазвичай будь-яке значення кодується на основі будь-якого алфавіту. Найпростішим прикладом є переклад чисел з десятеричной системі числення у двійкове подання. Таким чином алфавіт представляється як множина {0, 1}, а число 15710 буде кодуватися хромосомою 100111012 , що складається з восьми генів.