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

Лабораторна робота №1 Основи генетичних алгоритмів. Простій генетичний алгоритм Загальні відомості

ГА використовують принципи і термінологію, запозичені з біологічної науки – генетики. У ГА кожна хромосома це потенційне рішення деякої проблеми. У класичному ГА хромосома кодується рядком двійкових символів, кожен біт якого називається геном. Множина хромосом – потенційних рішень складає популяцію. Пошук (суб)оптимального рішення проблеми виконується в процесі еволюції популяції - послідовного перетворення однієї множини рішень в інше за допомогою генетичних операторів репродукції, кросинговеру і мутації.

ГА використовують наступні механізми природної еволюції:

  1. Перший принцип заснований на концепції виживання сильних і природного відбору, який був сформульований Дарвіном у 1859 році в книзі «Походження видів шляхом природного відбору». Згідно з Дарвіном хромосоми, які краще здатні вирішувати задачі в своєму середовищі, виживають і більше розмножуються (репродукують). У генетичних алгоритмах кожна хромосома є вирішенням деякої проблеми. Аналогічно з цим принципом хромосоми з кращими значеннями цільової (фітнес) функції мають великі шанси вижити і репродукувати. Формалізацію цього принципу, як ми побачимо далі, дає оператор репродукції.

  2. Другий принцип обумовлений тим фактом, що хромосома нащадка складається з частин отриманих з хромосом батьків. Цей принцип був відкритий в 1865 році Менделем. Його формалізація дає основу для оператора схрещування (кросинговера).

  3. Третій принцип заснований на концепції мутації, відкритої в 1900 році де Вре. Спочатку цей термін використовувався для опису істотних (різких) змін властивостей нащадків і придбання ними властивостей, відсутніх у батьків. Аналогічно з цим принципом генетичні алгоритми використовують подібний механізм для різкої зміни властивостей нащадків і тим самим, підвищують різноманітність (мінливість) хромосом у популяції (множини рішень).

Ці три принципи складають ядро ГА. Використовуючи їх, популяція (множина рішень проблеми) еволюціонує від покоління до покоління.

Еволюцію штучної популяції – пошуку множини рішень деякої проблеми формально можна описати алгоритмом, який представлений на рис.1.1.

ГА бере множину параметрів оптимізаційної проблеми і кодує їх послідовностями кінцевої довжини в деякому кінцевому алфавіті (у простому випадку двійковий алфавіт «0» і «1») .

Заздалегідь простий ГА випадковим чином генерує початкову популяцію хромосом. Потім алгоритм генерує наступне покоління (популяцію), за допомогою трьох основних генетичних операторів:

  1. Оператор репродукції (ОР);

  2. Оператор схрещування (кросинговеру, ОК);

  3. Оператор мутації (ОМ).

Генетичні оператори є математичною формалізацією приведених вище принципів Дарвіна, Менделя і де Вре природної еволюції.

ГА працює до тих пір, поки не буде виконано задану кількість поколінь (ітерацій) процесу еволюції або на деякій генерації буде отримано задану якість популяції або унаслідок передчасної збіжності (при попаданні в деякий локальний оптимум).

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

Рис.1.1. Простій генетичний алгоритм

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

Основна термінологія в генетичних алгоритмах

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

Ген – елементарний код у хромосомі si, також називається знаком, або детектором (у класичному ГА si =0,1).

Хромосома – впорядкована послідовність генів у вигляді закодованої структури даних S =( s1,s2,…, sn), що визначає рішення (у простому випадку двійкова послідовність, де si =0,1).

Локус – місце (позиція, номер біта) розташування даного гена в хромосомі.

Алель – значення, яке приймає даний ген (наприклад {0,1}).

Особина – одне потенційне рішення проблеми (що представляється хромосомою).

Популяція – множина особин – потенційних рішень, які представляються хромосомами.

Покоління – поточна популяція ГА (для поточної ітерації алгоритму).

Генотип – набір хромосом даної особини (особинами популяції можуть бути генотипи або окремі хромосоми).

Генофонд – множина всіх можливих генотипів.

Фенотип – набір значень, відповідний даному генотипу, - декодована множина параметрів (наприклад, фенотип - десяткове значення x його двійкової коду - генотипу);

Розмір (потужність) популяції N – число хромосом у популяції.

Число поколінь – кількість ітерацій, протягом яких проводиться генетичний пошук.

Селекція – комплекс правил, що моделюють виживання хромосоми на основі її значеня ЦФ.

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

Фітнес-функція (цільова) – найважливіше поняття, що визначає міру пристосованості даної хромосоми в популяції. У завданнях оптимізації часто цільова функція визначає міру близькості до оптимального рішення. У навчанні цільова функція може бути функцією погрішності (помилки). На кожній ітерації ГА пристосованість кожної хромосоми популяції оцінюється за допомогою фітнес-функції.