Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Завдання: Створення Генетичного Алгоритму | Генетичні Алгоритми
Біоінспіровані алгоритми
Секція 2. Розділ 4
single

single

Завдання: Створення Генетичного Алгоритму

Свайпніть щоб показати меню

Завдання

Проведіть, щоб почати кодувати

Вам доручено реалізувати основний цикл генетичного алгоритму для знаходження максимального значення математичної функції. Функція для оптимізації — це проста парабола: f(x) = -(x - 3)² + 10. Ця функція має чіткий максимум при x = 3, де її значення дорівнює 10.

Усі допоміжні функції (init_population, fitness_function, tournament_selection, arithmetic_crossover, mutate) та структура основного циклу вже надані.

Ваше завдання — заповнити основну логіку еволюційного процесу:

  1. Усередині основного циклу for спочатку оцініть всю population, застосувавши fitness_function до кожного індивіда. Збережіть ці оцінки у списку fitness.
  2. Знайдіть індекс найкращого індивіда поточного покоління та збережіть його у gen_best_idx. (Підказка: корисно використати np.argmax()).
  3. Усередині циклу while len(new_population) < POP_SIZE: необхідно створити нового індивіда шляхом:
  • Вибору parent1 за допомогою функції tournament_selection.
  • Вибору parent2 за допомогою функції tournament_selection.
  • Створення child шляхом комбінування батьків за допомогою функції arithmetic_crossover.
  • Застосування варіації до child за допомогою функції mutate.
  1. Після завершення циклу while замініть стару population на new_population, щоб завершити поточне покоління.

Рішення

Switch to desktopПерейдіть на комп'ютер для реальної практикиПродовжуйте з того місця, де ви зупинились, використовуючи один з наведених нижче варіантів
Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 2. Розділ 4
single

single

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

some-alt