Sei sulla pagina 1di 28

ALGORITMI DI OTTIMIZZAZIONE DI TIPO EVOLUZIONISTICO

6.1

Introduzione

Come evidenziato nei capitoli precedenti, sia la logica fuzzy che le reti neurali implicano processi di ottimizzazione. In particolare per la fuzzy logic si rendono necessari algoritmi di ottimizzazione che possano consentire di determinare con criteri di ottimo invece che con tecniche empiriche, il numero di regole, il numero di fuzzy set e la loro posizione nelluniverso del discorso. Tale processo coinvolge in genere un elevato numero di variabili e richiede quindi algoritmi di ottimizzazione particolarmente efficienti. Analogamente, nel campo delle reti neurali possono essere di notevole utilit algoritmi di ottimizzazione in grado di trovare il minimo globale di una funzione di molte variabili, per superare i limiti intrinseci degli algoritmi di apprendimento basati sulla tecnica del gradiente. In questo capitolo verranno quindi descritti gli algoritmi evoluzionistici, che sembrano rispondere alle caratteristiche richieste dal Soft Computing sia per quanto riguarda la versatilit, che lefficienza e la bont dei risultati ottenuti. Gli algoritmi genetici si sono affermati come una valida procedura di ottimizzazione globale applicabile in moltissimi settori dellingegneria [10], [11], [12], [13], [14], [15]. La facile implementazione e le potenzialit insite nellapproccio evoluzionistico rendono gli algoritmi genetici un potente strumento di ottimizzazione per funzioni non convesse. Gli A.G. (acronimo per Algoritmi Genetici) rappresentano una nuova procedura di ottimizzazione fondata sul principio dell'evoluzione naturale di Darwin. Adottando questa analogia, all'interno di una popolazione in continua evoluzione, l'individuo che meglio si adatta ai vincoli ambientali corrisponde alla soluzione ottima del problema da risolvere. Ad esempio: in un ambiente formato esclusivamente da piante ad alto fusto la soluzione ottima al problema dell'adattamento rappresentata dalle giraffe, capaci di sopravvivere grazie alla confor-

141

mazione del loro collo e non sicuramente dalle tartarughe la cui struttura fisica caratterizzata da ben altre peculiarit. Come noto dalla teoria darwiniana, il lento allungarsi del collo della giraffa un processo di ottimizzazione vincolato dalle caratteristiche ambientali, ed proprio a fenomeni simili che si ispirano gli algoritmi genetici. L'analogia quindi tra: Popolazione Vincoli ambientali Individuo meglio adat tato e Possibili soluzioni al problema da ottimizzare Vincoli matematici

imposti Soluzione ottima possibile individuare con chiarezza in che punto collocare gli A.G., tra le varie tecniche di ottimizzazione, analizzando la figura 6-1.

Fig. 6-1: Metodi di ottimizzazione.

142

In generale gli algoritmi di ottimizzazione possono essere divisi in tre grandi classi: Metodi numerici, Ricerca Random, Tecniche Enumerative. I Metodi numerici sono basati su un insieme di condizioni necessarie e sufficienti che vengono verificate utilizzando delle procedure di ottimizzazione. In particolare tali metodi sono divisi in due sottogruppi: i metodi diretti e quelli indiretti. I metodi diretti consistono nella ricerca della soluzione di un insieme di equazioni non lineari derivanti dall'aver posto uguale a zero il gradiente della funzione da ottimizzare. I metodi indiretti, come quello di Newton e quello di Fibonacci, sono dei metodi iterativi, anche essi basati sulle informazioni fornite dal gradiente della funzione obiettivo. Mentre il metodo diretto tramite la soluzione di un sistema di equazioni determina direttamente il punto di ottimo, il metodo diretto sposta il punto di lavoro all'interno del dominio d'interesse valutando di volta in volta le informazioni provenienti dal gradiente calcolato nel punto considerato. Sebbene siano i pi usati, tali metodi non garantiscono la condizione di ottimi globale risultando inoltre efficaci solo per un insieme di problemi ben posto. Le tecniche enumerative discretizzano il domino d'interesse e calcolano la funzione obiettivo su tutti i punti presi in considerazione. Sono di facile implementazione ma onerosi da un punto di vista computazionale. La programmazione dinamica un esempio classico di tecnica enumerativa. I metodi di ricerca random sono basati su tecniche enumerative, ma durante la loro esecuzione vengono utilizzate anche delle informazioni complementari che risultano d'ausilio nella ricerca dell'ottimo. Sono di applicazione generale e utili in molti problemi complessi. Anche tali metodi sono divisi in sottogruppi: gli algoritmi evoluzionistici ed il simulated annealing. Entrambi simulano dei fenomeni naturali. Il Simulated Annealing si ispira ad un processo termodinamico che simula il lento raffreddamento di un corpo mentre gli Algoritmi Evoluzionistici traggono spunto dalla simulazione del processo dell'evoluzione naturale.

143

Gli algoritmi evoluzionistici a loro volta possono essere divisi in Algoritmi Genetici e Strategie evoluzionistiche. Rimarcando l'analogia con i processi naturali i primi agiscono pi ad un livello genetico mentre i secondi enfatizzano maggiormente il legame comportamentale tra genitori e figli. Gli Algoritmi Genetici presentano delle caratteristiche che li rendono, in alcune applicazioni, l'unica valida alternativa rispetto ai classici metodi di ottimizzazione. Un A.G. non processa un singolo punto del dominio d'interesse bens tratta contemporaneamente una popolazione di punti. In tal modo possibile risalire in parallelo le colline di una funzione multimodale, evitando di rimanere intrappolati in minimi locali. Gli A.G. durante la loro esecuzione usano regole di transizione probabilistiche e non deterministiche, come avviene per i classici metodi di ottimizzazione. Gli A.G. necessitano, per la determinazione dell'ottimo, solo della conoscenza della funzione obiettivo. Non necessaria quindi la conoscenza di derivate n-esime o di ulteriori informazioni sulla funzione da ottimizzare. Questa caratteristica, prescindendo dall'approccio 'darwiniano', forse quella che rende tali algoritmi pi efficaci ed alternativi rispetto le tradizionali tecniche di ottimizzazione.

6.2

Struttura di un Algoritmo Genetico

Come detto precedentemente, a differenza dei metodi classici quali il metodo del gradiente o del simplesso, un A.G. elabora un insieme di punti, chiamato popolazione, anzich un singolo valore. Tali punti sono tutti punti appartenenti al dominio della funzione da ottimizzare. In particolare, mentre i metodi di ottimizzazione come il metodo del gradiente, si muovono nella direzione determinata dal gradiente nel punto considerato, gli algoritmi genetici processano in parallelo un insieme di punti facendo in modo che le informazioni caratteristiche di

144

ognuno di essi possano essere trasmesse e combinate con quelle degli altri. Generalmente, i punti del dominio d'interesse sono codificati in strutture che richiamano una conformazione cromosomica. Anche in questo quindi possibile cogliere un'analogia con i fenomeni naturali. Una possibile struttura, generalmente la pi usata, quella a stringa binaria. Supponendo di essere nel caso mono-dimensionale, cio di dover ottimizzare una funzione ad una sola variabile indipendente, un generico valore x* appartenente al dominio della variabile di ottimizzazione x pu essere codificato come in figura 6-2.

Fig. 6-2: Codifica Binaria.

In questo caso per ottenere il valore della x stata effettuata la semplice conversione binario-reale. Sfruttando altri tipi di conversione, possibile, sempre partendo da strutture a stringa binaria, sia mappare i punti all'interno di un dominio prefissato [xmin, xmax], sia adottare rappresentazioni in virgola mobile sfruttando mantissa ed esponente. Se si intende ottimizzare una funzione di pi variabili si usa la cosiddetta concatenazione multiparametro. Tale rappresentazione consiste nel collegare le stringhe binarie rappresentanti le singole variabili in un unica stringa, identificata automaticamente come elemento di popolazione. Un esempio riportato in figura 6-3.

145

Fig. 6-3: Concatenazione multiparametro.

Durante l'esecuzione del programma, ovvero durante la creazione di nuove generazioni, su tutti gli elementi della popolazione vengono applicati uno o pi dei seguenti operatori: Riproduzione: consiste nel ricopiare un elemento dell'attuale popolazione in una nuova popolazione, rappresentante la 'generazione successiva'. Cross-over: fissate due stringe, scambiando fra di esse sottostringhe di lunghezza casuale, vengono creati due elementi della nuova generazione, come rappresentato in figura 6-4.

Fig. 6-4: Cross Over.

146

Mutazione: data una stringa, un bit scelto a caso viene complementato ed il nuovo elemento cos ottenuto sar inserito nella nuova generazione. L'azione di questo operatore visibile in figura 6-5. I tre operatori, come sar meglio chiarito in seguito, durante l'esecuzione dell'algoritmo vengono applicati rispettivamente con probabilit pr, pc e pm.. Tutti gli elementi della popolazione sono caratterizzati da un indice di bont indicato come funzione fitness o fisicit. La fisicit di una stringa strettamente collegata al valore assunto dalla funzione da ottimizzare in quel particolare punto. Tanto pi alto il valore della fisicit, tanto pi quel punto, appartenente al dominio della funzione da ottimizzare, sar prossimo al punto di ottimo globale.

Fig. 6-5: Mutazione.

Occorre distinguere tra il concetto di funzione obiettivo e fisicit. La funzione obiettivo fornisce una misura delle performance rispetto a una particolare soluzione mentre la funzione fitness trasforma questa misura in una nuova grandezza utile ai fini della riproduzione. Il valore della fisicit risulta quindi determinate per individuare quegli elementi della popolazione che risultano pi promettenti, cio quelli che in senso evoluzionistico sono meglio adattati e che hanno quindi maggiore probabilit, riproducendosi, di tramandare nelle generazioni successive il loro patrimonio genetico. Infatti, scegliendo gli elementi

147

della popolazione in maniera probabilistica in accordo al valore della fisicit, vengono individuati gli elementi migliori della popolazione e su questi vengono applicati i tre operatori prima descritti. Nel complesso un A.G. pu cos essere schematizzato come rappresentato in figura 6-6. Con l'avvicendarsi delle generazioni, solo gli elementi con un alto valore della fisicit avranno la possibilit di riprodursi, tramite la selection, e tramandare i propri geni (bit), tramite il cross over. Questi elementi rappresentano quelle variabili il cui valore della funzione obiettivo prossimo all'ottimo. Al termine di tale processo, l'elemento con la fisicit pi elevata, ovvero il meglio adattato, corrisponde, nei limiti del criterio di stop predefinito, alla soluzione ottima del problema. Per terminare l'algoritmo possibile utilizzare diversi criteri di stop. Il pi semplice consiste nel fissare il numero massimo di generazioni e nell'eleggere, al termine dell'algoritmo, l'elemento con fisicit pi alta come soluzione ottima. Un'altra tecnica consiste nel monitorare il valor medio e massimo della fisicit e quando la differenza tra questi due valori raggiunge un valore prefissato l'algoritmo viene automaticamente bloccato. In questo caso tutti gli elementi della popolazione sono ormai prossimi al valore d'ottimo tanto che fisicit media e massima coincidono. Analizziamo in particolare l'effetto dei tre operatori prima introdotti. L'operatore di riproduzione utilizzato per incrementare nelle popolazioni la presenza degli elementi con fisicit pi elevata e quindi pi promettenti. Il cross over viene utilizzato per ricombinare le informazioni 'genetich appartenenti a differenti genitori, permettendo cos di trasferire le caratteristiche migliori alle stringhe di una nuova generazione. Infine, l'operatore di mutazione introduce nuovi elementi nella popolazione. In particolare la mutazione di un bit, se causa grosse variazioni sul valore della fisicit di una stringa, permette di uscire da minimi locali, mentre se comporta piccole variazioni permette un affinamento numerico della funzione da ottimizzare intorno al punto raggiunto.

148

Fig. 6-6: Diagramma a blocchi di un Algoritmo Genetico.

149

Si prima accennato a pr, la probabilit di riproduzione, pc, la probabilit di cross over e pm, la probabilit di mutazione. Vediamo in particolare di cosa si tratta. Va dapprima puntualizzato che questi parametri sono delle quantit prefissate, e che rimangono, generalmente, costanti durante tutto il processo di ottimizzazione. Sono riportati in letteratura i valori orientativi da associare alle tre probabilit ma si visto che al variare dell'applicazione conveniente, per migliorare le performance dell'algoritmo, variare anche i valori di tali parametri. Per il tuning dei parametri quindi necessario far uso dell'esperienza dell'utente. Ogni qual volta un elemento ben adattato viene scelto in accordo al valore della fisicit bisogna decidere quale operatore applicare su di esso. Viene quindi generato un numero casuale p*, compreso tra zero ed uno, se pr p* allora l'elemento in considerazione sar scelto per far parte della nuova popolazione. Se invece pr > p* l'elemento sar scartato e non far parte della nuova popolazione che si sta creando. La procedura del tutto analoga per gli operatori di cross over e mutazione, l'unica precisazione che va fatta che prima di applicare il cross over necessario scegliere due stringhe e non una sola. L'applicazione degli operatori descritti, comportando esclusivamente la generazione di numeri casuali, la copia e lo scambio di stringhe binarie rendono gli A.G. estremamente facili da implementare. Un altro espediente adottato per migliorare le performance di un A.G. il cosiddetto elitismo. Tale tecnica consiste, al trascorrere delle generazioni, nel mantenere, ricopiandolo, l'elemento con fisicit pi elevata. Dato l'effetto del cross over, della riproduzione e della mutazione non infatti garantita, in un semplice algoritmo genetico, la sopravvivenza dell'individuo meglio adattato. Particolare attenzione, nell'implementare l'algoritmo, v dedicata alla determinazione della fisicit di ciascun elemento della popolazione. Generalmente, la fitness direttamente collegata al valore assunto dalla funzione obiettivo. Comunque, nel determinare la fisicit posso-

150

no essere utilizzate delle routine che tengano conto di vincoli applicando dei termini correttivi al valore della fitness.

6.3

Un esempio numerico

Consideriamo una popolazione costituita da quattro stringhe ciascuna di cinque bit ed ottimizziamo, in questo caso massimizziamo, la funzione obiettivo: f(x)=2 * x. Data una stringa binaria tale funzione, che supponiamo per comodit definita in 0 x 31, associa a tale stringa il corrispondente valore di x cio: f(00000)=0, f(00001)=2, f(00010)=4, etc.. La popolazione iniziale come detto prima creata casualmente, generando un insieme di punti appartenenti al dominio considerato. Nelle prime cinque colonne della tabella 1.1 sono riportati rispettivamente: Il numero delle stringhe. La codifica binaria. La fisicit, calcolata in questo caso come: fi = f(xi) = 2 * xi. La percentuale, associata ad ogni stringa, della fisicit totale,

f
fi

fi

Il numero stimato di copie di un elemento nella popolazione successiva dato da:

f medio
Il valore riportato nella quarta colonna indica la probabilit del singolo elemento della popolazione di essere scelto per l'applicazione dei tre operatori. Tale valore chiaramente legato al valore della fisicit. Il punto rappresentato da 11000 ha quindi una probabilit di essere scelto per

151

far parte della popolazione successiva del 38.1/100, mentre il punto codificato da 00101 ha il 7.9/100 e cos via. Il processo di selezione pu essere attuato tramite un giro della 'weighted roulette wheel' ovvero di una roulette con settori di ampiezza proporzionale alla fisicit, come quella riportata in figura 6-7. Sfruttando tale roulette sono stati scelti gli elementi che creeranno la generazione successiva, in particolare l'ultima colonna della tabella 6-1 indica quante volte quell'elemento stato scelto per far parte della nuova popolazione dopo essere stato processato dagli operatori di cross over e mutazione. Da questi valori, che durante l'esecuzione dell'algoritmo vengono monitorizzati solo a fini statistici, possibile notare come la stringa 1 avente fisicit pi elevata sia stata scelta due volte, mentre la 3 e la 4 sono state selezionate una sola volta, e la seconda, avendo un basso valore di fisicit stata scartata. Una nuova popolazione viene quindi creata individuando solo gli elementi pi promettenti e applicando su questi gli operatori di riproduzione cross over e mutazione.

Fig. 6-7: Roulette con settori proporzionali alla fisicit.

152

Stringa xi Fisicit f(xi)=2 xi 11000 00101 10110 01100 Somma Media Max 48 10 44 24 126 31.5 48

fi

Numero stima- Numero to di copie reale di copie fi

f medio
1 2 3 4 0.381 0.079 0.349 0.191 1.0 0.250 0.381 1.524 0.317 1.397 0.726 4.0 1.0 1.524 2 0 1 1 4 1 2

Tab. 6-1: Popolazione iniziale e parametri caratteristici.

possibile vedere in tabella 6-2 come in una sola generazione la fisicit media aumentata del 30 per cento ed il valore massimo del 25 per cento.

Dopo la ri- Comproduzione pagno 11-000 1-1000 10-110 0-1100 Somma Media Max x3 x4 x1 x2

Punto di Dopo il Fisicit cross o- cross over f(xi) = 2 xi ver 2 11110 60 1 11100 56 2 10000 32 1 01000 16 164 41 60

Tab. 6-2: Popolazione dopo selezione e cross over.

153

Questo semplice processo viene reiterato finch, come detto prima, non sia verificato un fissato criterio di stop. Una volta bloccato l'algoritmo, l'individuo 11111, ottenuto dopo cinque generazioni, rappresenta il punto di ottimo per la funzione obiettivo. Un ulteriore esempio, che mostra la capacita degli A.G. di processare in parallelo tutti i punti della popolazione nel risalire i massimi (minimi) locali delle funzione da ottimizzare, di seguito riportato. La funzione presa in considerazione, la nota y=sin2(x)/x, pu essere chiaramente massimizzata utilizzando metodi di ottimizzazione standard ed stata scelta esclusivamente per motivi grafici in quanto ben permette di vedere come evolvono, spostandosi, le possibili soluzioni. La figura 6-8 riporta la funzione da massimizzare, mentre le figure da 6-9 a 6-12 mostrano le soluzioni al variare delle generazioni. In particolare gli asterischi plottati sulla funzione rappresentano i fenotipi, ovvero i valori assunti dai parametri da ottimizzare, al variare delle generazione e sotto leffetto degli operatori genetici.

Fig. 6-8: Grafico della funzione.

154

Fig. 6-9: Distribuzione dei fenotipi della popolazione (f(x)) nella popolazione iniziale.

Fig. 6-10: Distribuzione dei fenotipi della popolazione (f(x)) alla quinta generazione.

155

Fig. 6-11: Distribuzione dei fenotipi della popolazione (f(x)) alla decima generazione.

Fig. 6-12: Distribuzione dei fenotipi della popolazione (f(x)) alla quindicesima generazione.

156

6.4

Il teorema degli schemi

La suggestiva analogia alla teoria darwiniana e la facile implementazione potrebbero far apparire gli A.G. pi un 'game optimization softwar che una valida alternativa ai tradizionali metodi di ottimizzazione. Una rigorosa trattazione teorica riguardo gli A.G stata comunque gi sviluppata dapprima da Holland e successivamente da Goldberg [1], [2]. Al fine di formalizzare quanto detto precedentemente necessario introdurre alcune definizioni: Definizione 1 Adottando una rappresentazione binaria nella codifica delle variabili da ottimizzare, si definisce schema una 'somiglianza nelle form fra stringhe del tipo:

H = ( b1 , b2 , b3 ,......, bl ) con bi ( 0,1,*)

dove il simbolo * un simbolo pu assumere sia il valore 1 che il valore 0. Date, per esempio le due stringhe binarie A=1 0 1 0 0 1 0 B=1 1 0 1 1 1 1 possibile osservare come entrambe abbiano un 1 nella prima e nella sesta posizione. La somiglianza nelle forme pu quindi essere formalizzata sfruttando la seguente struttura: H=1 * * * * 1 Questo schema caratterizza quindi non solo le due stringhe A e B bens 25 differenti stringhe aventi il valore 1 fisso nella prima e nella sesta posizione. Si suol dire che queste due stringhe sono parte di 25 stringhe che appartengono od istanziano quello schema. Definizione 2 Si definisce ordine di uno schema H il numero di posizioni fisse nello schema considerato, ad esempio per lo schema (1.3) vale: (H)= (1****1*)=2

157

Definizione 3 La lunghezza di uno schema H data dalla distanza fra le due estreme posizioni fissate, sempre in (1.3) vale: (H)= (1****1*)=6-1=5 Una volta introdotte queste grandezze caratteristiche possibile introdurre il teorema fondamentale degli A.G., detto Teorema degli schemi. Teorema 6.1 Supponendo che la riproduzione avvenga in maniera proporzionale alla fisicit, sotto l'effetto del cross over e della mutazione, il numero di copie m di uno schema all'istante t+1 determinato dalla seguente espressione:

m( H , t + 1) m( H , t )

(H) f (H) 1 pc l 1 pm ( H ) f

dove f(H) rappresenta la fitness dello schema H (ovvero la fisicit media di tutte le stringhe della popolazione istanziate dallo schema H), f il valore medio della fisicit degli elementi formanti l'intera popolazione mentre pc e pm rappresentano rispettivamente la probabilit di cross over e mutazione, prima definite. Il valore di f(H) ottenuto tramite la:

f (H) =

iH

f (i)

m( H , t )

dove f(i) la fisicit del i-esimo elemento appartenente allo schema H. Una diretta conseguenza del teorema degli schemi che schemi di lunghezza non elevata e di ordine basso hanno una probabilit esponenziale di ripresentarsi nelle generazioni successive. A questo punto possibile introdurre un concetto fondamentale riguardante gli Algoritmi Genetici. Da quanto introdotto prima facile capire come, nel manipolare una popolazione di stringhe, la ricerca in realt spostata dallo spazio delle stringhe a quello delle 'stringhe simili', ovvero degli

158

schemi. Adottando una codifica binaria, una popolazione di n stringhe differenti comprende da 2 a 2*n schemi e, tenendo conto che viene processato in parallelo un numero cos alto di schemi, mentre computazionalmente si opera con un numero molto minore di elementi, possibile apprezzare la potenzialit di questo nuovo approccio ai problemi di ottimizzazione. Tale concetto in genere definito come Parallelismo Intrinseco. Negli ultimi due anni, parallelamente alle applicazioni, stata approfondito l'aspetto teorico degli A.G. caratterizzando gli aspetti salienti riguardanti la convergenza dell'algoritmo. Sebbene questo aspetto sia stato inizialmente poco curato, in quanto si preferiva una 'buona' soluzione in tempi e costi accettabili, oggi una approfondita trattazione teorica ha dato un riconoscimento accademico agli A.G. La trattazione esaustiva del problema della convergenza degli A.G. esula dai fini di questo capitolo, sono comunque di seguito riportate alcuni riferimenti bibliografici. Gli approcci seguiti per la formulazione del teorema di convergenza sono stati molteplici ed in generale quello attualmente pi seguito legato a modelli probabilistici. In [3], [4], [5], [6], [7], sfruttando la teoria delle catene di Markov, stata provata la convergenza di un algoritmo genetico in forma canonica. In particolare stato dimostrato che un algoritmo genetico implementato adottando la tecnica dell'elitismo converge verso l'ottimo globale. Altri teoremi sono stati sviluppati considerando particolari tipi di algoritmi o specifiche classi di funzioni obiettivo attualmente, comunque, sebbene grossi sforzi siano rivolti allo studio della convergenza, una attenzione sempre maggiore dedicata alla caratterizzazione dell'onere computazionale, in senso temporale, degli algoritmi genetici.

6.5

Come migliorare le prestazioni di un A.G.

Il prototipo di algoritmo genetico descritto nei paragrafi precedenti in forma 'primitiva'. Corrisponde cio all'algoritmo standard riportato in letteratura.

159

Naturalmente sono state proposte numerosissime variazioni che hanno portato a migliorare le performance dell'algoritmo base. Idealmente si cercato di creare un algoritmo genetico general purpose capace di risolvere una grande variet di problemi; in realt le innovazioni proposte risultano utili per alcune applicazioni, meno in altre. Il primo passo per misurare le performance di un algoritmo consiste nel creare un banco di prova. In DeJong sono proposte cinque funzioni, aventi particolari caratteristiche, con le quali necessario misurasi ogni volta che si sviluppa un nuovo algoritmo [8]. Le funzioni f1....f5, di seguito riportate, hanno la caratteristica di essere discontinue, multimodali e non convesse; risultano quindi un ottimo test per qualsiasi algoritmo di ottimizzazione;

f1 ( x i ) = x i2
1

f 2 ( x i ) = 100( x12 x 2 ) 2 + (1 x1 ) 2 f 3 ( x i ) = int( x i ) f 4 ( x i ) = 0ix i4 + Gauss( 01) .


1 1 3 5

f 5 ( x i ) = 0.002 + 5
j =1

1 j + i=1 ( x i a ij ) 6
2

Per quantificare la bont di un algoritmo sono state introdotti due indici di performance chiamati rispettivamente: performance in linea e performance fuori linea

1 T f (t ) T 1 1 T * Pon = f * ( t ) T 1

Pon =

Tali grandezze rappresentano rispettivamente il valore medio della fisicit f alla T-esima generazione ed il valor medio della fisicit f*

160

della migliore stringa della popolazione sempre alla T-esima generazione. In DeJong oltre alle funzioni test sono proposte delle variazioni all'algoritmo base. Le tecniche introdotte sono le seguenti: Elitismo Modello a numero di copie previste Cross over su pi punti. Esse vengono caratterizzate in particolare come segue. La tecnica dell'elitismo come stato accennato precedentemente, consiste nel preservare la sopravvivenza dell'elemento con fisicit pi elevata al trascorrere delle generazioni. Sia a*(t) l'elemento con fisicit pi alta alla generazione A(t). Se dopo aver creato A(t+1) l'elemento a*(t) non ne fa parte allora lo si introduce come elemento (n+1)-esimo della popolazione corrente. Tale approccio risultato determinante nell'ottimizzazione di funzioni discontinue mentre risultato meno indicato nel caso di funzioni multimodali. Per ridurre l'errore stocastico intrinseco nel metodo di selezione della roulette stato utilizzato il modello a numero di copie previste che basato sulle seguenti considerazioni. Adottando il metodo della roulette spesso, a causa di errori stocastici, accade che per un elemento della popolazione il numero di compie previsto e quello effettivo non coincidono. Proprio per risolvere questo problema stata introdotta la tecnica del modello a numero di copie previsto. Il cross over ad un solo punto, cio quello precedentemente descritto, non in grado di ricombinare schemi aventi particolari caratteristiche. Come possibile notare dal seguente esempio applicando il cross over singolo punto ai due elementi a1 ed a2 non possibile combinare lo schema riportato in neretto. a1= 11011001011011 a2=00010110111100 se invece si utilizza il cross over su due punti possibile ricombinare lo schema effettuando il seguente doppio incrocio a1= 1101|100101|1011 a2=0001|011011|1100

161

ottenendo b1= 11010110111011 b2=00011001011100 dove in b1 stato ricostruito lo schema desiderato. Tale metodo risulta improduttivo se si introducono un elevato numero di punti di cross over. In questo caso si rischia infatti di spezzare in troppi punti lo schema con poche possibilit di ricostruirlo nelle generazioni successive. Altro parametro caratteristico di un algoritmo genetico il numero di elementi formante la popolazione. errato pensare che scegliere un numero elevato di elementi possa aiutare a migliorare le caratteristiche dell'algoritmo. Infatti se da un lato si ha a disposizione una maggiore quantit di informazioni sul dominio della funzione da ottimizzare dall'altro si appesantisce notevolmente il carico computazionale dell'algoritmo. D'altro canto popolazioni troppo esigue risultano insoddisfacenti perch in numero di generazioni limitato tutte le stringhe della popolazione tenderebbero ad assumere la stessa struttura di zeri ed uni e quindi a rappresentare un solo punto. riportato in letteratura che se la lunghezza cromosomica di un generico elemento della popolazione pari ad m consigliabile fissare a circa 2*m il numero massimo di elementi formanti la popolazione. Un altro fattore da considerare per migliorare le prestazioni di un algoritmo genetico il seguente. Spesso si gi a conoscenza di qualche informazione relativa al dominio della funzione che si intende ottimizzare. Si cio a conoscenza del fatto che alcune zone del dominio sono pi promettenti di altre nella ricerca dell'ottimo. Ecco nascere la cosiddetta tecnica del seeding. Tale metodo consiste nel mettere un 'seme' o pi semi nella popolazione iniziale. Il seme non altro che un punto appartenente a quella zone del dominio che ha mostrato di essere promettente nella ricerca dell'ottimo. Si forniscono quindi informazioni aggiuntive all'algoritmo indicando su quali zone del dominio concentrare la ricerca. Durante il processo di ottimizzazione di un algoritmo genetico un problema che bisogna necessariamente evitare la cosiddetta convergenza prematura. Vediamo in cosa consiste. Se durante le prime gene-

162

razioni presente tra gli elementi della popolazione una stringa con fisicit notevolmente superiore alle altre e se la pressione evolutiva molto forte, cio alto valore per le probabilit di riproduzione e cross over, allora in poche generazioni tale individuo superdotato prender il sopravvento portando ad una convergenza prematura dell'algoritmo verso un punto che difficilmente risulta essere di ottimo globale. Il problema duale si presenta invece durante la fase finale del processo di ottimizzazione. Durante tale fase infatti, la popolazione formata da punti molto prossimi l'uno a l'altro ed in vicinanza dell'ottimo globale. In questa condizione, dato che la fisicit delle stringhe praticamente la stessa per tutte risulta difficile all'algoritmo individuare tramite la semplice tecnica della roulette i pi vicini all'ottimo globale. Un possibile metodo per risolvere questo problema quello di ridefinire la funzione fisicit tramite una relazione lineare del tipo: f'=af+b I coefficienti a e b possono essere scelti in diversi modi, ma in generale si desidera che sia f'medio=fmedio e f'min=fmin. Per controllare il numero di copie che l'elemento con fisicit pi elevata produrr nella generazione successiva, si impone inoltre la seguente relazione: f'max=Cmult*fmedio Per popolazioni formate al massimo da 100 elementi il fattore moltiplicativo Cmult si pone generalmente pari a 2. Utilizzando questa procedura potrebbe succedere che elementi con fisicit f bassa, dopo aver applicato le precedenti relazioni, assumano valori di f' negativi. Per evitare ci, necessario imporre delle condizioni sui coefficienti a e b in modo che venga rispettata la condizione f'min=0. Quanto descritto facilmente implementabile sfruttando i seguenti parametri statistici dell'algoritmo genetico: valor medio, minimo e massimo della fisicit. Altro problema facilmente superabile quello legato ad una semplice codifica numero binario numero intero. Infatti i due nume ri 31 e 32 sebbene successivi hanno una rappresentazione binaria sostanzialmente differente.

163

31=011111 32=100000 Per risolvere questo problema sono disponibili diverse tecniche. La pi semplice consiste nell'utilizzare il codice Gray anzich quello binario. Un altro approccio propone invece di utilizzare direttamente numeri reali e su di essi applicare gli operatori di cross over e mutazione opportunamente adattati. Questo tipo di rappresentazione stata da pi parti contestata perch in parte snatura la rappresentazione cromosomica e non trova quindi il supporto teorico del teorema degli schemi. Per aumentare l'efficienza di un A.G. possibile creare delle varianti agli algoritmi classici che sfruttino maggiormente l'aspetto naturalistico degli algoritmi genetici. stato prima definito il concetto di parallelismo implicito e partendo da questo presupposto sono state proposte moltissime strutture a processori paralleli su cui far evolvere un algoritmo genetico. Quella che attualmente si affermata quella ad isole. Viene creata una griglia di processori e su ognuno di essi viene implementato un A.G.. Ad intervalli di tempo predefiniti viene effettuata la cosiddetta migrazione, che consiste nello scambio tra le varie isole-algoritmi dei migliori elementi della popolazione. Adottando tale tecnica, che naturalmente prevede come soluzione ottima l'elemento migliore fra tutti quelli delle varie isole, si avuto un notevole incremento dello speed up dell'algoritmo. Gli algoritmi genetici possono trattare problemi di ottimizzazione vincolata. Quando i vincoli sono espressi sotto forma di diseguaglianza, essi vengono generalmente inclusi nella funzione obiettivo per mezzo di una funzione di penalty che esprime il grado di violazione del vincolo; per esempio il problema: min[f(x)] con gi(x)0 i=1,2,n viene espresso con la funzione obiettivo:

min f (x ) + r* gi (x )
i =1

164

dove la funzione penalty ed r un peso dipendente dal vincolo. I vincoli possono essere espressi anche per mezzo di una codifica opportuna dei geni che permette a priori di escludere i punti non ammissibili nel dominio dinteresse. Con procedimenti simili a questi possibile problemi di ottimizzazione multiobiettivo [16] o con funzione obiettivo variabile. Gli algoritmi genetici, come provato dal sempre crescente numero di pubblicazioni scientifiche e congressi internazionali, sono stati definitivamente accettati come un efficace metodo di ottimizzazioni in diverse discipline scientifiche, complementare e non concorrente ai metodi di ottimizzazione tradizionale. Da una fase iniziale, che continua tuttoggi, caratterizzata essenzialmente dallo sviluppo formale degli algoritmi, si passati ad una massiccia applicazione di tali procedure ed alla loro integrazione, allinterno del Soft Computing, alle reti neurali ed alla logica fuzzy. Il potente hardaware a basso costo degli attuali PC rende gli A.G. agevolmente utilizzabili anche in problemi di ottimizzazione di medie dimensioni.

165

Bibliografia [1] J. H. Holland, Adaptation in Natural and Artificial System, University of Michigan Press, 1975. [2] D. E. Goldberg, Genetic Algorithms in Search, Optimization and Machine Learning, Addison Wesley, 1989. [3] A. Nix, M. Vose, Modelling Genetic Algorithm with Markov Chain Annals of Mathematics and Artificial Intelligence, Vol. 5, n. 1, pp. 79-88, 1992. [4] A. Eiben, E. Aartas, K. van Hee, Global Convergence of Genetic Algorithms: a Markov Chain Analysis, Parallel Problem Solving from Nature, Springer Verlag, Berlino, 1990. [5] G. Rudolf, Convergence Analysis of Canonical Genetic Algorithms, IEEE Transaction on Neural Networks, Vol. 5, n. 1, pp. 96101, Gennaio 1994. [6] X. Qi, F. Palmieri, Theorethical Analysis of Evolutionary Algorithms with an Infinite Population Size in Continuous Space, Part I and II, IEEE Transaction on Neural Network, Vol. 5, n. 1, pp. 102-129, Gennaio 1994. [7] T. Davis, A Simulated Annealing like Convergence Theory for Simple Genetic Algorithms, Proceedings of Fourth International Conference on Genetic Algorithms, pp. 178-181, Morgan Kaufmann, San Matteo, CA 1991. [8] K. A. De Jong, An Analysis of the Behaviour of the Class of Genetic Adaptive System, Tesi di Dottorato Universit del Michigan, 1975. [9] D. E. Goldberg, A meditation on the application of Genetic Algorithms, IlliGAL Report No. 98003, Department of General Engineeering, Universisty of Illinois at Urbana-Champaign [10] R. Caponetto, L. Fortuna, S. Graziani, M.G. Xibilia, Genetic algorithms and applications in system engineering:a survey, Trans. Inst. Measurement and Control, London, Vol. 15, No. 3, pag. 143-156, 1993.

166

[11] R. Caponetto, L. Fortuna, M.G. Xibilia, MLP optimal topology via genetic algorithms, Proc. of Int. Conf. on Neural Networks and Genetic Algorithms, pag. 670-674, Innsbruk, Austria, 1993. [12] R. Caponetto, L. Fortuna, G. Manganaro, M.G. Xibilia, Synchronization-based non linear chaotic circuit identification, SPIE's Int. Symp. on Information, Communications and Comp. Technology, Applications and Systems, Chaotic Circuits for Communications, pag. 48-56, Philadelphia, USA, Ottobre 1995. [13] R. Caponetto, L. Fortuna, G. Muscato, M.G. Xibilia, Controller Order Reduction by using Genetic Algorithms, Journal of System Engineering, Springer Verlag, London, Vol 6, pag.113-118, 1996. [14] R. Caponetto, L. Fortuna, G. Manganaro, M.G. Xibilia, Chaotic system identification via Genetic Algorithm, Proc. of First IEE/IEEE Int. Conf. on Genetic Algorithms in Engeneering Systems: Innovations and Applications (GALESIA '95), pag. 170-174, Sheffield, U.K., Settembre 1995. [15] R. Caponetto, O. Diamante, L. Fortuna, G. Muscato, M.G. Xibilia, A Genetic Algorithm Approach to Solve Non.Convex LMI Problems, Int. Symposium on the Mathematical Theory of Networks and Systems, MTNS 98, Padova, Italia, Luglio 1998. [16] Genetic Algorithms in engineering systems, edited by A.M. S. Zalzala and P.J. Fleming, Published by IEE, London, UK, 1997.

167

168