Algoritmi genetici - Condizione di risoluzione

La condizione di conclusione di un algoritmo genetico è importante per determinare quando terminerà una corsa GA. È stato osservato che inizialmente il GA progredisce molto velocemente con soluzioni migliori che arrivano ogni poche iterazioni, ma questo tende a saturare nelle fasi successive in cui i miglioramenti sono molto piccoli. Di solito vogliamo una condizione di terminazione tale che la nostra soluzione sia vicina all'ottimale, alla fine della corsa.

Di solito, manteniamo una delle seguenti condizioni di risoluzione:

  • Quando non c'è stato alcun miglioramento nella popolazione per le iterazioni X.
  • Quando raggiungiamo un numero assoluto di generazioni.
  • Quando il valore della funzione obiettivo ha raggiunto un certo valore predefinito.

Ad esempio, in un algoritmo genetico teniamo un contatore che tiene traccia delle generazioni per le quali non c'è stato alcun miglioramento nella popolazione. Inizialmente, impostiamo questo contatore su zero. Ogni volta che non generiamo discendenti migliori degli individui della popolazione, incrementiamo il contatore.

Tuttavia, se la forma fisica di una qualsiasi delle molle è migliore, azzeriamo il contatore. L'algoritmo termina quando il contatore raggiunge un valore predeterminato.

Come altri parametri di un GA, anche la condizione di terminazione è altamente specifica per il problema e il progettista di GA dovrebbe provare varie opzioni per vedere quale si adatta meglio al suo particolare problema.