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. |