Секція 2. Розділ 4
single
Завдання: Створення Генетичного Алгоритму
Свайпніть щоб показати меню
Завдання
Проведіть, щоб почати кодувати
Вам доручено реалізувати основний цикл генетичного алгоритму для знаходження максимального значення математичної функції. Функція для оптимізації — це проста парабола: f(x) = -(x - 3)² + 10. Ця функція має чіткий максимум при x = 3, де її значення дорівнює 10.
Усі допоміжні функції (init_population, fitness_function, tournament_selection, arithmetic_crossover, mutate) та структура основного циклу вже надані.
Ваше завдання — заповнити основну логіку еволюційного процесу:
- Усередині основного циклу
forспочатку оцініть всюpopulation, застосувавшиfitness_functionдо кожного індивіда. Збережіть ці оцінки у спискуfitness. - Знайдіть індекс найкращого індивіда поточного покоління та збережіть його у
gen_best_idx. (Підказка: корисно використатиnp.argmax()). - Усередині циклу
while len(new_population) < POP_SIZE:необхідно створити нового індивіда шляхом:
- Вибору
parent1за допомогою функціїtournament_selection. - Вибору
parent2за допомогою функціїtournament_selection. - Створення
childшляхом комбінування батьків за допомогою функціїarithmetic_crossover. - Застосування варіації до
childза допомогою функціїmutate.
- Після завершення циклу
whileзамініть старуpopulationнаnew_population, щоб завершити поточне покоління.
Рішення
Все було зрозуміло?
Дякуємо за ваш відгук!
Секція 2. Розділ 4
single
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат