Vai al contenuto

Ottimizzazione

Definire l'algoritmo genetico

Quando si discute di come i cBot potrebbero essere ottimizzati, abbiamo menzionato che i cBot possono essere perfezionati utilizzando il metodo dell'algoritmo genetico. In questa guida spieghiamo esattamente cos'è e come funziona.

Il metodo dell'algoritmo genetico si basa sulla teoria della selezione naturale. Questa teoria afferma che solo gli individui più adatti sopravvivono per la riproduzione successiva.

Nell'ottimizzazione dei cBot, ogni passaggio di ottimizzazione è considerato un individuo. Per valutare i singoli passaggi, l'algoritmo genetico calcola un determinato punteggio di idoneità per ogni passaggio e confronta questo punteggio con tutti gli altri passaggi.

Affinché funzioni, l'algoritmo genetico necessita di una popolazione iniziale. Per generarla, l'ottimizzatore eseguirà diversi passaggi con parametri randomizzati. Dopo aver creato la sua popolazione iniziale, l'algoritmo avvierà il processo di ricerca del passaggio di ottimizzazione più adatto. Questo processo continua fino a quando i punteggi di idoneità dei passaggi figli iniziano a ristagnare e convergere. A questo punto, l'algoritmo viene interrotto.

Fasi dell'algoritmo genetico

Qualsiasi algoritmo genetico ha le seguenti fasi.

graph TB
  B([Selezione]) ==> C([Crossover]);
  C ==> D([Mutazione]);
  D ==> B;

Le fasi sono spiegate come segue.

Selezione

Durante questa fase, l'algoritmo trova i due passaggi di ottimizzazione più adatti utilizzando i rispettivi punteggi di idoneità.

Crossover

Dopo aver trovato i due passaggi di ottimizzazione più adatti, l'algoritmo li utilizza per creare nuovi passaggi figli (o discendenti) utilizzando combinazioni dei valori dei parametri di entrambi i passaggi genitori.

Esempio

Se il tuo cBot ha quattro parametri diversi per l'ottimizzazione, l'algoritmo otterrà i valori del primo e del secondo parametro dei passaggi discendenti da un genitore e il terzo e il quarto parametro dal secondo genitore.

Mutazione

In questa fase, l'algoritmo muta i passaggi discendenti modificando casualmente uno o più valori dei parametri.

Dopo la fase di mutazione, l'ottimizzatore eseguirà un nuovo passaggio di ottimizzazione discendente. Successivamente, ripeterà tutte le fasi ma solo se il punteggio di idoneità di un passaggio discendente era superiore all'ultimo passaggio di ottimizzazione più adatto. Tale risultato significherebbe che c'è margine di miglioramento, indicando che l'ottimizzazione dovrebbe continuare.

Altrimenti, l'algoritmo aumenterà il suo contatore di stagnazione. Se il contatore di stagnazione raggiunge il valore del parametro del periodo di stagnazione dell'algoritmo, il processo di ottimizzazione verrà automaticamente interrotto.

Parametri dell'algoritmo genetico

L'algoritmo genetico ha diversi parametri che utilizza durante la sua vita. Questi parametri non possono essere modificati.

Parametro Definizione
Dimensioni popolazione La dimensione massima di una popolazione o il numero massimo di passaggi effettuati durante ogni iterazione di ottimizzazione.
Numero massimo di iterazioni Il numero massimo di iterazioni di ottimizzazione eseguite dall'algoritmo.
Periodo di stagnazione Il valore massimo del contatore di stagnazione. Se questo valore viene raggiunto, l'algoritmo viene interrotto.
Percentuale elite Questo valore viene utilizzato per selezionare una percentuale X di individui con i punteggi di adattività più alti dall'iterazione corrente dell'algoritmo. Questi passaggi sopravvivranno all'iterazione successiva.
Percentuale dimensione torneo Questo valore viene utilizzato per selezionare una percentuale X di individui da un'iterazione per trovare i passaggi genitori.
Percentuale migranti Questo valore viene utilizzato per aggiungere una percentuale X di passaggi creati casualmente durante ogni nuova iterazione o generazione di popolazione.
Percentuale mutazione La percentuale dei parametri dei passaggi figli da mutare.
Percentuale probabilità di mutazione La percentuale di passaggi figli da mutare. I passaggi non inclusi in questa percentuale non passeranno attraverso la fase di mutazione.