AI-For-Beginners/translations/uk/lessons/6-Other/21-GeneticAlgorithms
localizeflow[bot] 132c5c3f8f chore(i18n): sync translations with latest source changes (chunk 1/1, 201 changes) 2026-01-30 02:51:30 +00:00
..
Diophantine.ipynb 🌐 Update translations via Co-op Translator 2025-08-30 10:45:29 +00:00
Genetic.ipynb 🌐 Update translations via Co-op Translator 2025-08-30 10:45:29 +00:00
README.md chore(i18n): sync translations with latest source changes (chunk 1/1, 201 changes) 2026-01-30 02:51:30 +00:00

README.md

Генетичні алгоритми

Тест перед лекцією

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

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

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

Якщо ви хочете реалізувати генетичний алгоритм, вам потрібно:

  • Знайти метод кодування рішень задачі за допомогою генів g∈Γ
  • На множині генів Γ визначити функцію пристосованості fit: Γ→R. Менші значення функції відповідають кращим рішенням.
  • Визначити механізм схрещування, щоб комбінувати два гени та отримати нове валідне рішення crossover: Γ2→Γ.
  • Визначити механізм мутації mutate: Γ→Γ.

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

Конкретна реалізація генетичного алгоритму може варіюватися залежно від задачі, але загальна структура виглядає так:

  1. Вибрати початкову популяцію G⊂Γ
  2. Випадково вибрати одну з операцій, яка буде виконана на цьому кроці: схрещування або мутація
  3. Схрещування:
  • Випадково вибрати два гени g1, g2 ∈ G
  • Обчислити схрещування g=crossover(g1,g2)
  • Якщо fit(g)<fit(g1) або fit(g)<fit(g2) - замінити відповідний ген у популяції на g.
  1. Мутація - вибрати випадковий ген g∈G і замінити його на mutate(g)
  2. Повторювати з кроку 2, поки не буде досягнуто достатньо малого значення fit або поки не буде досягнуто ліміту на кількість кроків.

Типові задачі

Задачі, які зазвичай вирішуються за допомогою генетичних алгоритмів:

  1. Оптимізація розкладу
  2. Оптимальне пакування
  3. Оптимальне різання
  4. Прискорення повного перебору

✍️ Вправи: Генетичні алгоритми

Продовжуйте навчання у наступних ноутбуках:

Перейдіть до цього ноутбука, щоб побачити два приклади використання генетичних алгоритмів:

  1. Справедливий розподіл скарбів
  2. Задача про 8 ферзів

Висновок

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

🚀 Виклик

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

Тест після лекції

Огляд і самостійне навчання

Перегляньте це чудове відео, яке розповідає про те, як комп'ютер може навчитися грати в Super Mario, використовуючи нейронні мережі, треновані генетичними алгоритмами. Ми дізнаємося більше про те, як комп'ютер навчається грати в такі ігри у наступному розділі.

Завдання: Діофантове рівняння

Ваше завдання - вирішити так зване Діофантове рівняння - рівняння з цілими коренями. Наприклад, розглянемо рівняння a+2b+3c+4d=30. Вам потрібно знайти цілі корені, які задовольняють це рівняння.

Це завдання натхнене цією статтею.

Підказки:

  1. Ви можете розглядати корені в інтервалі [0;30]
  2. Як ген, розгляньте список значень коренів

Використовуйте Diophantine.ipynb як відправну точку.