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

Ініціалізація початкової популяції

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

Ініціалізація деревовидних структур

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

Ініціалізація деревовидних структур виконується випадковим вибором функціональних і термінальних символів при заданій максимальній глибині дерева. Застосовуються два основні методи: а) повна (full) і б) зростаюча (grow) ініціалізація.

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

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

а) б)

Рис.4.5. Дерева, що генеруються при ініціалізації різними методами.

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

Ініціалізація лінійних структур

В цьому випадку процес ініціалізації виконується абсолютно по-іншому. Перш за все, хромосома - програма розбивається на наступні чотири частини:

1) Заголовок;

2) тіло;

3) «підвал»;

4) вихід (повернення).

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

1) Вибір випадкової довжини із заданого діапазону;

2) Копіювання заготовленого заголовка;

3) Ініціалізація і поповнення операторів в програму доки не досягнута довжина, визначена в пункті 1. Оператори вибираються випадково, спочатку тип, потім змінна або константа із заданого діапазону;

4) Копіювання в кінець програми заготовленого «підвал»;

5) Копіювання в кінець програми заготовлених операторів виходу.