Contenuto principale

Questa pagina è stata tradotta con la traduzione automatica. Fai clic qui per vedere l'ultima versione in inglese.

Che cos'è l'algoritmo genetico?

L'algoritmo genetico è un metodo per risolvere problemi di ottimizzazione vincolati e non vincolati, basato sulla selezione naturale, il processo che guida l'evoluzione biologica. L'algoritmo genetico modifica ripetutamente una popolazione di soluzioni individuali. A ogni passaggio, l'algoritmo genetico seleziona dalla popolazione attuale gli individui che diventeranno genitori e li utilizza per generare i figli della generazione successiva. Nel corso delle generazioni successive, la popolazione "evolve" verso una soluzione ottimale. È possibile applicare l'algoritmo genetico per risolvere una varietà di problemi di ottimizzazione che non sono adatti agli algoritmi di ottimizzazione standard, inclusi problemi in cui la funzione obiettivo è discontinua, non differenziabile, stocastica o altamente non lineare. L'algoritmo genetico può risolvere problemi di programmazione mista di numeri interi, in cui alcuni componenti possono avere solo valori interi.

Questo diagramma di flusso delinea i principali passaggi algoritmici. Per i dettagli, vedere Come funziona l'algoritmo genetico .

Flow chart: create initial population, score and scale population, retain elite, select parents, produce crossover and mutation children, return to score and scale

L'algoritmo genetico utilizza tre tipi principali di regole in ogni fase per creare la generazione successiva dalla popolazione attuale:

  • Le regole di selezione selezionano gli individui, chiamati genitori, che contribuiscono alla popolazione nella generazione successiva. La selezione è generalmente stocastica e può dipendere dai punteggi dei singoli individui.

  • Le regole del crossover uniscono due genitori per formare i figli della generazione successiva.

  • Le regole di mutazione applicano modifiche casuali ai singoli genitori per formare i figli.

An elite child is identical to its parent. A crossover child gets some of each parent. A mutation child comes from one parent, and includes a change.

L'algoritmo genetico differisce da un algoritmo di ottimizzazione classico basato sulle derivate in due modi principali, come riassunto nella seguente tabella:

Algoritmo classicoAlgoritmo genetico

Genera un singolo punto a ogni iterazione. La sequenza di punti si avvicina a una soluzione ottimale.

Genera una popolazione di punti a ogni iterazione. Il punto migliore nella popolazione si avvicina alla soluzione ottimale.

Seleziona il punto successivo nella sequenza mediante un calcolo deterministico.

Seleziona la popolazione successiva mediante un calcolo che utilizza generatori di numeri casuali.

In genere converge rapidamente verso una soluzione locale.

In genere sono necessarie numerose valutazioni di funzioni per convergere. Potrebbe convergere o meno verso un minimo locale o globale.

Vedi anche

Argomenti