Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Sfida: Costruire un Algoritmo Genetico | Algoritmi Genetici
Algoritmi Bio-Ispirati
Sezione 2. Capitolo 4
single

single

Sfida: Costruire un Algoritmo Genetico

Scorri per mostrare il menu

Compito

Scorri per iniziare a programmare

Sei incaricato di implementare il ciclo principale di un algoritmo genetico per trovare il valore massimo di una funzione matematica. La funzione da ottimizzare è una semplice parabola: f(x) = -(x - 3)² + 10. Questa funzione presenta un picco ben definito in x = 3, dove il suo valore è 10.

Tutte le funzioni di supporto (init_population, fitness_function, tournament_selection, arithmetic_crossover, mutate) e la struttura del ciclo principale sono già fornite.

Il tuo compito è completare la logica centrale del processo evolutivo:

  1. All'interno del ciclo principale for, devi prima valutare l'intera population applicando la fitness_function a ciascun individuo. Memorizza questi punteggi nella lista fitness.
  2. Trova l'indice dell'individuo con le migliori prestazioni nella generazione corrente e salvalo in gen_best_idx. (Suggerimento: np.argmax() è utile in questo caso).
  3. All'interno del ciclo while len(new_population) < POP_SIZE:, devi creare un nuovo individuo:
  • Selezionando parent1 tramite la funzione tournament_selection.
  • Selezionando parent2 tramite la funzione tournament_selection.
  • Creando un child combinando i genitori con la funzione arithmetic_crossover.
  • Applicando una variazione al child tramite la funzione mutate.
  1. Dopo il ciclo while, sostituisci la vecchia population con la new_population per completare la generazione.

Soluzione

Switch to desktopCambia al desktop per esercitarti nel mondo realeContinua da dove ti trovi utilizzando una delle opzioni seguenti
Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 2. Capitolo 4
single

single

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

some-alt