
- • І. І. Скрильник Вступ
- •Лекція 1 Математичний апарат кібернетики (мак): елементи теорії множин. Аналіз систем на основі нечітких множин
- •1. Основні визначення
- •2. Логічні операції над множинами та їх властивості. Тотожні перетворення виразів
- •3. Алгебра множин. Пріоритет операцій
- •4. Поняття впорядкованої пари та декартового добутку множин
- •5. Нечіткі множини. Операції над нечіткими множинами та їх властивості
- •Основні характеристики нечітких множин Нехай та а – нечітка множина з елементами з універсальної множини е і множиною належностей м.
- •Приклади нечітких множин
- •Властивості операцій
- •6. Аналіз систем на основі нечітких множин
- •2. Булеві функції
- •3. Логічні операції та формули мл
- •4. Булева алгебра, тотожні перетворення
- •5. Висловлення. Предикати
- •6. Двійкова арифметика
- •7. Аналіз систем на основі математичної логіки
- •2. Типи скінченних графів
- •3. Орієнтовані графи, зважені графи
- •4. Суміжність, інцидентність графів, ізоморфізм графів
- •5. Маршрути, цикли графів
- •2. Бінарні відношення. Способи задавання перерізів
- •3. Властивості бінарних відношень
- •4. Функціональні відношення
- •5. Нечіткі відношення
- •Контрольні запитання
- •Лекція 5 Синтез систем на основі поняття про теорію автоматів
- •1. Загальна характеристика автоматів
- •Скінченні автомати
- •Представлення скінченних автоматів
- •4. Аналіз скінченних автоматів
- •5. Автомати Мілі та Мура
- •Продовження таблиці 5.5.1
- •Загальні властивості алгоритму
- •3. Приклади алгоритмів. Складність алгоритмів
- •4. Генетичний алгоритм
- •Генетичний алгоритм
- •Контрольні запитання
- •Лекція 7 Задачі оптимального керування. Методи розв’язання задач лінійного керування. Задачі на умовний екстремум
- •1. Поняття про математичне моделювання економічних задач
- •2. Різні форми задач лінійного програмування
- •Контрольні запитання
- •Лекція 8 Поняття про складні системи керування
- •1. Умови існування системи керування
- •2. Види зв’язків у системах керування
- •3. Види керування
- •4. Економічна система, її загальна характеристика
- •5. Системний підхід при дослідженні економічної системи
- •6. Економічна система як система керування
- •Контрольні запитання
- •Література
4. Генетичний алгоритм
Генетичний алгоритм – це аналітичні технології, створені та перевірені самою природою за мільйони років її існування. Вони дозволяють розв’язувати задачі прогнозування, класифікації, пошуку оптимальних варіантів, і є незамінні у тих випадках, коли у звичайних умовах розв’язування задачі основано на інтуїції або досвіді, а не на строгому (математичному змісті) її опису.
Природний відбір у природі. Еволюційна природа стверджує, що кожний біологічний вид цілеспрямовано розвивається та змінюється для того, щоб найкращим чином пристосуватися до навколишнього середовища. У процесі еволюції багато видів комах, риб дістали захисний колір, людина стала володарем найскладнішої нервової системи. Можна сказати, що еволюція – це процес оптимізації всіх живих організмів.
Основний механізм еволюції – це природний добір. Його суть полягає у тому, що найбільш пристосовані особини мають більше можливостей виживання і розмноження, а як наслідок – приносять більше потомства, ніж погано пристосовані особини. При цьому за допомогою передачі генетичної інформації (генетичного наслідування) потомки наслідують від батьків основні їх якості. Таким чином, потомки сильних індивідуумів також відносно добре пристосовані та їх частка у загальній масі буде зростати. Після зміни декількох десятків або сотень поколінь середня пристосованість цього виду значно зростає. Щоб зробити зрозумілими принципи роботи генетичних алгоритмів, пояснимо, як налаштовані механізми генетичного наслідування у природі.
У кожній клітині будь-якої тварини міститься вся генетична інформація цієї особини. Вона записана у вигляді набору дуже довгих молекул ДНК. Кожна така молекула – це ланцюг, що складається з молекул нуклеотидів чотирьох типів (A, T, C, G). Інформація несе порядок слідування нуклеотидів у ДНК. У тваринній клітині кожна молекула ДНК оточена оболонкою, таке утворення називається хромосомою. Кожна спадкова якість особини (колір очей, спадкові хвороби, тип волосся, тощо) кодується визначеною частиною хромосом, яка називається геном цієї властивості.
При розмноженні тварин відбувається злиття двох батьківських статевих клітин та їх ДНК взаємодіють, утворюючи ДНК потомка. Основний спосіб взаємодії – кросовер (схрещування). При кросовері ДНК предків діляться на дві частини, а потім обмінюються своїми половинками. При наслідуванні можливі мутації через радіоактивність або інші впливи, у результаті яких можуть змінитися деякі гени у статевих клітинах одного з батьків. Змінені гени передаються потомку і дають йому нові властивості. Якщо ці нові властивості корисні, то скоріше за все вони збережуться у певному виді – при цьому відбудеться скачкоподібне підвищення пристосованості виду.
Що таке генетичний алгоритм? Нехай дана деяка складна функція (цільова функція), що залежить від декількох змінних, і потрібно знайти такі значення змінних, при яких значення змінних буде максимальним. Задачі такого виду називаються задачами оптимізації й трапляються на практиці доволі часто. Одним з таких прикладів є задача розподілу інвестицій. У цій задачі змінними є обсяги інвестицій у кожний проект, а функцією, яку можна максимізувати, – сумарний дохід інвестора. Також дано значення мінімального та максимального обсягу вкладень у кожний із проектів, котрі задають область зміни кожної із змінних. Спробуємо розв’язати цю задачу, застосовуючи відомий нам природний спосіб оптимізації. Будемо розглядати кожний варіант інвестування (набір значень змінних) як індивідуума, а дохідність цього варіанта – як пристосованість цього індивідуума. Тоді у процесі еволюції (якщо ми зможемо це організувати) пристосованість індивідуумів буде зростати, а значить, будуть з’являтися все бльш і більш дохідні варіанти інвестування. Спинивши еволюцію у деякий момент та вибравши найкращого індивідуума, ми отримаємо достатньо оптимальний розв’язок задачі.
Генетичний алгоритм – це проста модель еволюції у природі, реалізована у вигляді комп’ютерної програми. У ній використовується як аналог механізму генетичного наслідування, так і аналог природного відбору. При цьому зберігається біологічна термінологія в спрощеному вигляді (табл. 6.4.1).
Моделювання генетичного наслідування
Таблиця 6.4.1
Хромосома |
Вектор (послідовність) з нулів та одиниць. Кожна позиція (біт) називається геном. |
Індивідуум = генетичний код |
Набір хромосом = варіант розв’язку задачі |
Кросовер |
Операція, при яких дві хромосоми обмінюються своїми частинами |
Мутація |
Випадкова зміна однієї або декілької позицій у хромосомі |
Щоб змоделювати еволюційний процес, згенеруємо спочатку випадкову популяцію – декілька індивідуумів з випадковим набором хромосом (числовий вектор). Генетичний алгоритм імітує еволюцію цієї популяції як циклічний процес схрещування індивідуумів та зміни поколінь.
Життєвий цикл популяції – це процес формування нової популяції із старої, після чого стара популяція гине. Після відбору до нової популяції знову застосовується операція кросовера й мутації, потім знову відбувається відбір і т. д.
Відбір у генетичному алгоритмі тісно пов’язаний з принципами природного відбору наступним чином (табл. 6.4.2):
Зв’язок генетичного алгоритму з природним відбором
Таблиця 6.4.2
Пристосованість індивідуума |
Значення цільової функції на цьому індивідуумі |
Виживання найбільш пристосованих |
Популяція наступного покоління формується згідно з цільовою функцією. Чим пристосованіший індивідуум, тим більше вирогідність його участі у кросовері, тобто розмноженні. |
Таким чином, модель відбору визначається, яким чином потрібно будувати популяцію наступного покоління. Як правило, вірогідність участі індивідуума у схрещуванні береться пропорціональною до його пристосованості. Часто використовується так звана стратегія елітизму, при котрій декілька найкращих індивідуумів переходять у наступне покоління без змін, не беручи участі у кросоверзі та відборі. В будь-якому випадку кожне наступне покоління буде у середньому краще від попереднього. Коли пристосованість індивідуумів перестає помітно збільшуватися, процес спиняють і у як розв’язок беруть найкращий зі знайдених індивідуумів.
Повертаючись до задачі оптимального розподілу інвестицій, пояснимо особливості реалізації генетичного алгоритму в цьому випадку.
Індивідуум
= варіант розв’язку задачі
= набір із 10 хромосом
Хромосома = обсяг вкладення у проект j=16-розрядний запис цього числа.
Оскільки обсяги вкладень обмежені, не всі значення хромосом є допустимими. Це враховується при генерації популяції.
Оскільки сумарний обсяг інвестицій фіксований, то реально варіюють лише 9 хромосом, а значення 10-ї визначається за ними однозначно.