next up previous
Next: Analisi teorica Up: Introduzione agli algoritmi genetici Previous: Introduzione agli algoritmi genetici

Definizioni e terminologia

Per esplicare la terminologia utilizzata nel formalizzare problemi con l'approccio genetico viene ora brevemente svolta la trattazione di un generico problema di ottimizzazione, cui può essere ricondotto quello relativo alla ricerca degli angoli ottimali per l'emulatore.

Il generico problema di ottimizzazione ha come obiettivo quello di determinare un $ x_0\in X$ tale che $ f(\cdot)$ sia massima in $ x_0$ con $ f\: : \: X \rightarrow R$ arbitraria funzione reale, cioè tale che $ f(x_0)=max_{x \in X} f(x)$.

In pratica spesso non è possibile ottenere soluzioni globalmente ottime in senso stretto, come richiesto dalla relazione precedente, tuttavia una vasta classe di problemi può essere efficacemente risolta richiedendo solamente che la funzione di valutazione assuma per le soluzioni valori il più possibile prossimi al massimo.

Il dominio delle singole soluzioni indicato con $ X$ è in generale uno spazio in n dimensioni; l'algoritmo genetico non lavora sull'effettiva soluzione ma su una sua versione codificata tipicamente in binario o in virgola mobile.

La versione codificata della generica soluzione si ottiene dalla funzione codifica

$\displaystyle c\: : \: X \rightarrow S\; , $

dove con $ S$ si indica lo spazio delle stringhe in binario o virgola mobile che descrivono le soluzioni

L'insieme delle possibili soluzioni, cioè l'insieme di tutti gli $ x_i$ con $ x_i \in X$ , prende il nome di popolazione, invece la funzione $ f$, che assegna ad ogni membro della popolazione (individuo) la valutazione sulla sua attitudine a risolvere il problema in questione, viene chiamata funzione di fitness.

In questo senso il problema può essere riformulato in questi termini: determinare $ x_0\in X$ tale che $ f(c(x_0))$ sia quanto più prossimo possibile al massimo assoluto.

La struttura base algoritmo genetico può essere così riassunta [6] :

Nel seguito si darà breve spiegazione delle procedure utilizzate:

Gli algoritmi genetici presentano perculiarità che li rendono competitivi rispetto ai tradizionali metodi di ottimizzazione in quanto possono lavorare agevolmente su domini di soluzioni n-dimensionali, continui o discreti, inoltre l'informazione codificata rende computazionalmente rapido il calcolo ed efficace lo sfruttamento della memoria [11] .

Si sottilenea che l'algoritmo lavora su un sottoinsieme di soluzioni, in questo modo si può pervenire più facilmente a una soluzione prossima all'ottimo, scongiurando la convergenza verso massimi relativi e senza la necessità di sviluppare calcoli addizionali come le derivate.

Anche la terminologia utilizzata viene mutuata dall'ambito biologico-evoluzionistico; si parla infatti di popolazione per indicare il dominio delle possibili soluzioni, di soggetto per indicare una possibile soluzione, le cui specifiche attitudini sono contenute nei geni e cromosomi. Il singolo cromosoma contiene pertanto l'informazione sulla performance del soggetto rispetto a un ben determinato parametro.


next up previous
Next: Analisi teorica Up: Introduzione agli algoritmi genetici Previous: Introduzione agli algoritmi genetici
Leonardo Sabaini 2003-08-16