Sei sulla pagina 1di 76

DIPARTIMENTO DI INGEGNERIA MECCANICA E INDUSTRIALE

Corso di Laurea
in INGEGNERIA MECCANICA E DEI MATERIALI

Relazione Finale
Ottimizzazione mediante algoritmi evolutivi

Relatore: Chiar.mo Ing. Andrea Panteghini

Laureando:
Ratibor Shevchenko
Matricola n. 705415

Anno Accademico 2016/2017


Ringraziamenti

In primo luogo desidero ringraziare il mio relatore ing. A. Panteghini per


l'aiuto fornitomi durante la stesura di questo lavoro. Sono grato della
disponibilit e della meticolosit con cui mi ha accompagnato in que-
sto periodo intervenendo con consigli e rappresentando un fondamentale
punto di riferimento.
Un grande grazie ai miei genitori, Iryna e Damiano, che mi hanno sempre
sostenuto e permesso di arrivare no a qui, e ai miei famigliari che mi
hanno visto crescere in questi anni e sono stati un prezioso conforto nei
momenti di dicolt.
E inne un grazie ai miei amici e compagni che hanno vissuto con me,
con sorrisi e fatiche, in questi anni il viaggio che mi ha portato no a
questo importante risultato.
Un sentito grazie a tutti!

ii
Indice

1 Introduzione 1
2 Ottimizzazione 5
2.1 Formulazione matematica . . . . . . . . . . . . . . . . . 5
2.2 Tipi di ottimizzazione . . . . . . . . . . . . . . . . . . . 6

3 Metodi di ottimizzazione tradizionali 11


3.1 Metodo di Newton-Raphson . . . . . . . . . . . . . . . . 12
3.1.1 Metodi Quasi-Newton . . . . . . . . . . . . . . . 14
3.2 Alternative al metodo di Newton . . . . . . . . . . . . . 15
3.2.1 Metodo delle dierenze nite e del modello . . . . 16
3.2.2 Metodo della ricerca per coordinate e per pattern 17
3.3 Trattamento dei vincoli . . . . . . . . . . . . . . . . . . . 19

4 Algoritmi evolutivi 23
4.1 Background biologico . . . . . . . . . . . . . . . . . . . . 23
4.2 Struttura degli algoritmi evolutivi . . . . . . . . . . . . . 27
4.3 Algoritmi genetici . . . . . . . . . . . . . . . . . . . . . . 31
4.3.1 Rappresentazione degli individui . . . . . . . . . . 31
4.3.2 La funzione di tness . . . . . . . . . . . . . . . . 32
4.3.3 Ricombinazione . . . . . . . . . . . . . . . . . . . 33
4.3.4 Mutazione . . . . . . . . . . . . . . . . . . . . . . 34
4.4 Strategie evolutive . . . . . . . . . . . . . . . . . . . . . 34
4.4.1 Rappresentazione e la funzione di tness . . . . . 34
4.4.2 La ricombinazione . . . . . . . . . . . . . . . . . 35
4.4.3 La mutazione . . . . . . . . . . . . . . . . . . . . 36
4.5 Selezione . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

5 Applicazioni 41
5.1 Ottimizzazione evolutiva . . . . . . . . . . . . . . . . . . 41

iii
INDICE iv

5.2 Ottimizzazione di minimo peso . . . . . . . . . . . . . . 43


5.3 Calibrazione di un modello costitutivo . . . . . . . . . . 48

6 Conclusioni 57
A File di input per Dakota 59
A.1 Ottimizzazione di minimo peso . . . . . . . . . . . . . . 59
A.2 Calibrazione di un modello costitutivo . . . . . . . . . . 61

B Codici in Fortran 90 per l'interfaccia 63


B.1 Ottimizzazione di minimo peso . . . . . . . . . . . . . . 63
B.2 Calibrazione di un modello costitutivo . . . . . . . . . . 68

Bibliograa 73
Capitolo 1
Introduzione

"Ottimizzare " signica scegliere la soluzione migliore tra una serie di pos-
sibilit. Quando organizziamo la nostra giornata per pianicare i nostri
impegni stiamo ottimizzando, cos come quando scegliamo un itinerario
in modo da impiegare meno tempo per raggiungere la destinazione. Gli
ingegneri, ad esempio, ottimizzano per scegliere il prolo pi adatto per
un'automobile e gli economisti ottimizzano per scegliere in che modo al-
locare gli investimenti per trarne il maggior guadagno. In un certo senso
anche la natura ottimizza quando cerca di minimizzare l'energia portan-
do gli atomi verso la formazione di molecole e cos come i raggi di luce che
si propagano da un punto all'altro seguendo il percorso che minimizza il
tempo di percorrenza.
Dato un problema, il processo di ottimizzazione inizia con la denizio-
ne di un obiettivo da raggiungere, e questo viene individuato in genere
con una quantit caratteristica come il tempo, il protto, il peso o qual-
siasi altra misura distintiva. L'obiettivo dipende di solito da uno o pi
parametri, cio da variabili, che inuenzano la scelta dell' ottimo e che,
quindi, determinano nel loro insieme la totalit delle alternative. In gene-
re l'insieme delle alternative risulta essere legato a delle condizioni, dette
vincoli, che circoscrivono le variabili del problema e pongono dei limiti
su esse. Nella scelta di un percorso da un luogo ad un altro siamo vin-
colati a procedere lungo le strade, nella distribuzione degli investimenti
in un bilancio economico la loro somma non pu superare la quantit di
denaro a disposizione e la forma della carrozzeria di una automobile deve
essere suciente ampia per assicurare il comfort all'interno di essa. Al
problema quindi viene associato un obiettivo, le variabili caratteristiche
e i vincoli. Il processo che porta alla determinazione di queste quantit

1
CAPITOLO 1. INTRODUZIONE 2

viene detto modellizzazione del problema di ottimizzazione. La costru-


zione del modello il primo passo e spesso il pi importante nel processo
di ottimizzazione. Un modello una astrazione selettiva del problema
reale, deve cio selezionare quegli elementi considerati rilevanti per la
sua risoluzione. Nei settori dell'ingegneria, sica, economia e molti altri,
si ricorre alla denizione del modello di un problema utilizzando il lin-
guaggio della matematica che specica un insieme di variabili numeriche
e relazioni matematiche per riprodurre simbolicamente il sistema sotto
analisi. La formulazione del modello una operazione particolarmente
complicata e delicata e necessita di una comprensione profonda del pro-
blema che si sta arontando oltre che di un ampio bagaglio culturale ed
esperienza.
Dato un problema, e una volta ottenuto il suo modello, si pu proce-
dere quindi con la sua risoluzione. Seppur in alcuni casi una soluzione
di tentativo pu essere formulata anche intuitivamente, nella gran parte
dei problemi una soluzione dettata dal buon senso e dall'esperienza pu
non essere suciente. proprio in queste situzioni, dove il numero di
variabili grande e il legame tra di esse complesso, risulta necessaria
l'applicazione di un algoritmo. L'algoritmo caratterizzato da una se-
quenza nita di istruzioni che indica come produrre in modo uniforme
una soluzione al problema di ottimizzazione ecacemente e in tempi di
esecuzione adeguati. Lo sviluppo di un algoritmo di ottimizzazione un
processo particolarmente dicile e richiede degli studi approfonditi sia
nella fase di realizzazione che di collaudo. Per i problemi di ottimizzazio-
ne si sono sviluppati una moltitudine di algoritmi di vario genere che si
fondano sostanzialmente sull'analisi matematica e che si adattato ognuno
ad una specica classe di problemi. Oltre agli algoritmi basati sul calcolo
sono anche utilizzati i cosiddetti algoritmi enumerativi e algoritmi basati
sul caso che a dierenza dei primi presentano un'ecienza minore ma
possono applicarsi ad una classe di problemi pi ampia, si dicono pi
robusti.
E se ottimizzare signica scegliere la soluzione migliore ad un problema
allora, come in molti altri casi, una importante fonte di ispirazione la
natura e in particolare l'evoluzione. aascinante infatti osservare l'a-
nalogia tra l'evoluzione naturale della vita e i problemi di ottimizzazione.
L'evoluzione infatti pu essere interpretata come l'incessante ricerca di
un ottimo, e l'ottimo la conservazione della vita. proprio dall'analisi
del processo di evoluzione che nascono i cosiddetti algoritmi evolutivi.
CAPITOLO 1. INTRODUZIONE 3

Il loro sviluppo deriva dall'analisi e dallo studio rigoroso del processo di


adattamento dei sistemi naturali e termina nella formulazione delle tre
diverse classi di metodi nati indipendentemente l'uno dagli altri. Ne-
gli anni '60, in Germania, Bienert, Rechenberg e Schwefel sviluppano le
cosiddette strategie evolutive. Grazie agli studi di Goldberg, ma soprat-
tutto di Holland il quale negli anni settanta all'universit di Michigan
pone le basi per quelli che vengono chiamati gli algoritmi genetici. Sem-
pre negli anni '60, Lawrence Fogel presenta un altro approccio chiamato
programmazione evolutiva. Tutti i tre metodi di risoluzione si basano sui
meccanismi dell'evoluzione naturale che agisce attraverso la selezione, la
mutazione e la ricombinazione per assicurare l'adattamento dei sistemi
viventi all'ambiente circostante e per garantire la loro sopravvivenza. La
classe di algoritmi evolutivi oggigiorno rappresenta un insieme pi o me-
no indenito di approcci basati sull'evoluzione e sulla selezione naturale
adatti alla risoluzione di una ampia gamma di problemi e rappresentano
ancora oggi un campo di ricerca.
Molto frequentemente in applicazioni ingegneristiche risulta necessaria la
formulazione di un modello matematico, per esempio per rappresentare
la realt ma anche per semplicare quei problemi troppo complessi da
essere praticamente impossibili da risolvere. Per esempio se si desidera
conoscere in generale in che modo, con quale legge, si deforma una molla
possibile rilevare sperimentalmente le deformazioni a cui questa sog-
getta sottoposta a determinate forze e con opportune osservazioni notare
che la forza direttamente proporzionale alla deformazione della mol-
la. Si arriva quindi a denire il modello di comportamento di una molla
senza in realt analizzare in dettaglio le microdeformazioni della stessa,
gli eventuali difetti del materiale di cui composta agevolando in questo
modo la nostra comprensione del fenomeno. Pi in generale possiamo
quindi dire che la nostra analisi della realt, della natura delle cose, si
sviluppa attraverso la formulazione di un modello matematico che facili-
t la comprensione della natura dell'evento e quindi lo rende prevedibile.
Un modello in genere una relazione espressa con il linguaggio matemati-
co che lega tra loro varie grandezze che inuenzano il sistema analizzato.
Possiamo dire che un modello un insieme di funzioni, equazioni, e di
parametri che entrano in gioco nelle precedenti. Occorre precisare che la
conoscenza accurata delle funzioni, o relazioni, che legano le variabili del
sistema analizzato non implica l'ecienza del modello se si conoscono
solo approssimativamente i parametri che ne fanno parte. Per tornare
CAPITOLO 1. INTRODUZIONE 4

all'esempio della molla, una volta capito che all'aumentare della forza
si ha un aumento proporzionale della deformazione della stessa, prima
di poter prevedere quale sar la deformazione della molla dovuta ad una
forza applicata occorre conoscere il parametro di proporzionalit che lega
le due quantit. Se per il caso della molla la costante si pu facilmente
ricavare da poche prove sperimentali spesso la determinazione dei para-
metri un processo molto complesso. Prima di tutto occorre precisare
che nella formulazione di un modello alcuni parametri possono non essere
identicabili, non siamo quindi in grado di calcolarli in maniera univoca.
E i parametri identicabili possono essere pi o meno facilmente determi-
nabili. In quei casi dove il calcolo dei parametri risulta particolarmente
complesso si rivela molto utile l'utilizzo del processo di ottimizzazione.
L'obiettivo sar quindi di capire le basi matematiche per la formulazione
e descrizione dei problemi di ottimizzazione e studiare i meccanismi che
stanno alla base degli algoritmi evolutivi. Inne si vuole apprendere il
funzionamente di Dakota, un software di ottimizzaione open source frut-
to di attivit di ricerca e sviluppo di Sandia National Laboratories, ed
utilizzarlo per la determinazione dei parametri nei modelli dati, senza
arontare la loro formulazione completa.
In particolare verranno presentati due esempi di applicazione. Prima ver-
r studiata un'asta pesante soggetta solo al proprio peso e si cercher di
determinare quale forma, cio distribuzione di aree, deve avere in modo
da mantenere lungo tutta la sua lunghezza una sollecitazione costante, si
tratta di un esempio di ottimizzazione di minimo peso. Questo problema
presenta una soluzione analitica esatta che pu essere confrontata con i
risultati del modello, che avr la forma di un polinomio di terzo grado,
e verr utilizzato come un benchmark. Successivamente si aronter un
problema del tutto diverso, si cercher infatti di ottimizzare i parametri
di un modello costitutivo uniassiale di un metallo in modo da ottenere
un graco che sia compatibile con i punti ottenuti sperimentalmente. In
questo caso i punti rappresentano i valori di sollecitazione assiale in
funzione della deformazione plastica p e vi sono tre curve a temperature
diverse da considerare. In entrambi gli esempi verranno presentati i ri-
sultati in forma graca confrontandoli con le soluzioni ideali mostrando
in particolare l'evoluzione del modello nell'itinere.
Capitolo 2
Ottimizzazione

In questo capitolo verr presentato il concetto di ottimizzazione e la sua


rappresentazione matematica. Non ci si soermar sulla formulazione
del modello, fase essenziale e particolarmente importante del processo
di ottimizzazione e che comporta la buona riuscita e l'attendibilit dei
risultati1 .

2.1 Formulazione matematica

Matematicamente, il processo di ottimizzazione consiste nella ricerca del


minimo, o del massimo, di una, o pi funzioni soggette a vincoli. Se il nu-
mero di funzioni maggiore di uno allora si parla di ottimizzazione multi-
obiettivo 2 . In seguito si tratteranno sempre i problemi mono-obiettivo che
quindi richiedono di minimizzare, o massimizzare, una ed una sola fun-
zione obiettivo. Il problema pu essere rappresentato matematicamente
nel seguente modo3 :

ci (x) = 0, i U.
minn f (x) con (2.1)
xR ci (x) 0, i D.
dove

x il vettore delle incognite ;

f (x) la funzione obiettivo, una funzione scalare di x da minimiz-


zare o massimizzare;
1 Per una approfondita trattazione si rimanda a [2], [3] e [4].
2 Per la trattazione dell'ottimizzazione multi-obiettivo [9].
3 Da [5] p.3 .

5
CAPITOLO 2. OTTIMIZZAZIONE 6

ci (x) sono funzioni di vincolo, funzioni scalari di x che denisco


delle equazioni o disequazioni che il vettore delle incognite deve
soddisfare;
U l'insieme degli indici i che identicano i vincoli di uguaglianza ;

D l'insieme degli indici i che identicano i vincoli di disugaglianza.

Ancora pi in generale possiamo scrivere4 :

min f (x) con x S (2.2)

dove
A Rn l'insieme, detto ambiente, degli elementi che possono
rappresentare soluzioni o parametri del problema;
S A l'insieme degli elementi ammissibili determinato dai vin-
coli del problema;
In modo analogo si presenta il problema di ottimizzazione di tipo massi-
mo:
max f (x) con x S (2.3)
con lo stesso signicato dei termini. Diamo la denizione di ottimo5 :
Denizione 2.1. Ogni elemento x A tale che y S risulta f (x)
f (y), se l'ottimizzazione cerca il minimo, oppure f (x) f (y), se l'otti-
mizzazione cerca il massimo, viene detto ottimo. Il valore f (x) si dice il
valore ottimo.
Data la seguente rappresentazione matematica esiste una grande va-
riet di casi che riguarda i problemi di ottimizzazione che si dierenziano
in base al modello matematico, in base alle caratteristiche degli insiemi
A e S ed in base all'approccio adottato per risolverli.

2.2 Tipi di ottimizzazione

Ottimizzazione deterministica e stocastica


Dal punto di vista del modello e dell'algoritmo risolvente possiamo di-
stinguere inanzitutto l'ottimizzazione stocastica e deterministica. In certi
4 Da [6] p.1.
5 La denizione richiama [6] p.1.
CAPITOLO 2. OTTIMIZZAZIONE 7

casi, infatti, il modello matematico del problema dipende da parametri


sconosciuti o probabilistici il ch comporta la formulazione di una funzio-
ne obiettivo non deterministica ma legata alla probabilit e a sua volta
anche il metodo risolutivo non pu essere completamente deterministi-
co. I problemi di ottimizzazione stocastica necessitano della valutazione
dell'incertezza, della probabilit e la valutazione delle distribuzioni di
probabilit per essere risolti, questi introducono la casualit nel model-
lo, nei dati e nel procedimento, algoritmo, di risoluzione. D'altra parte
nell'ottimizzazione deterministica il modello, i dati e il l'algoritmo risolu-
tivo sono totalmente deterministici. Nel Capitolo 3 si tratteranno acluni
metodi di ottimizzazione tradizionali totalmente deniti e sono un esem-
pio di ottimizzazione deterministica. Gli algoritmi evolutivi invece hanno
una rilevante parte legata alla casualit e che, quindi, rappresentano un
tipo di algortimo stocastico6 .

Ottimizzazione continua e discreta


In relazione al problema in esame ((2.2) o (2.3)), l'insieme ambiente A,
che rappresenta l'insieme degli elementi che possono essere soluzioni o
parametri del problema di ottimizzazione, pu essere un insieme discre-
to oppure continuo e quindi si parla rispettivamente di ottimizzazione
discreta o continua. Esistono una grande variet di casi dove il signi-
cato naturale presuppone l'utilizzo di variabili discrete. il caso della
distribuzione del numero di prodotti verso i rivenditori nei problemi di
organizzazione e logistica, oppure un determinato elenco di componen-
ti unicate nei problemi di costruzione di macchine. In questi casi se
x = (x1 , x2 , . . . , xn ) allora xi A dove A un elenco di interi o reali,
se si trattano variabili booleane si avr che xi {0, 1}. L'ottimizzazione
discreta si occupa di problemi che trattano parametri che sono di tipo
intero o una lista di reali, di tipo binario, ma anche permutazioni di elen-
chi ordinati. L'ottimizzazione continua invece si occupa di problemi con
valori reali, non isolati, e rappresenta il caso pi importante per la gran
parte dei problemi di ottimizzazione.
In generale possiamo dire che l'ottimizzazione discreta risulta essere pi
dicile di quella continua perch non permette l'utilizzo della proprit
6 Per altri esempi di problemi di ottimizzazione stocastica si rimanda a [7] e [8].
CAPITOLO 2. OTTIMIZZAZIONE 8

di continui e delle informazioni sulle derivate della funzione obiettivo e


delle funzioni di vincolo7 .

Ottimizzazione vincolata e non vincolata


In molte applicazioni risulta necessario porre dei vincoli sui parametri del
problema, come per esempio la capacit di un magazzino in un problema
di logistica oppure il vincolo di resistenza di una struttura in un problema
di progettazione. In questi casi occorre trovare un ottimo che soddisfa
anche i vincoli imposti.
Se S = A oppure U = D = allora il problema di ottimizzazione si
dice non vincolato. Se, viceversa, S 6= A oppure U 6= D 6= allora il
problema si dice di ottimizzazione vincolata.
I vincoli in generale si distinguono in quelli di uguaglianza e quelli di
disuguaglianza:
ci (x) = 0 con i U
ci (x) 0 con i D
I problemi di ottimizzazione vincolata si distinguono in quelli dove sono
presenti solo ed esclusivamente i vincoli di uguaglianza, oppure in quelli
che presentano anche vincoli di disuguaglianza.
Inoltre possiamo distinguere i vincoli lineari e non lineari. La rappresen-
tazione tipica di un vincolo lineare :

Ax = b

dove x Rn il vettore delle incognite, A una matrice m n e b Rm


il vettore che determina i termini noti del sistema lineare dei vincoli.
Una importante classe di problemi con una funzione obiettivo lineare e
vincoli lineari costituisce la cosiddetta programmazione lineare, il modello
standard di questo tipo di problemi ha la seguente forma:

min cT x con Ax = b (2.4)

dove c Rn un vettore che caratterizza la funzione obiettivo lineare


del problema.
Se invece il problema di ottimizzazione non si esprime in forma (2.4) al-
lora si dice non lineare. Questo il caso pi frequente nelle applicazioni
7 Vedi [5] p.5.
CAPITOLO 2. OTTIMIZZAZIONE 9

ingegneristiche.

Ottimizzazione globale e locale


L'obiettivo dell'ottimizzazione di trovare un insieme di parametri, il
vettore x, che rappresenta la soluzione ottima al problema posto. In ge-
nerale i metodi di ottimizzazione si distinguono in metodi locali e metodi
globali. Un metodo di ricerca locale in generale ha come obiettivo di
trovare una soluzione, quindi un minimo o un massimo, in una regione
determinata dell'ambiente A. Spesso questi metodi, infatti, trovano una
soluzione che per non risulta essere l'ottimo globale e in particolare la
soluzione dipende fortemente da quale sia il punto di inizio della ricerca.
Viceversa i metodi di ottimizzazione globale sono utilizzati per stimare
un massimo o minimo globale.

Denizione 2.2. Per un problema di ottimizzazione di tipo "minimo",


dato x S se esiste un intorno I Rn tale che f (x) f (y) y I S
allora questo si dice un ottimo locale.

Denizione 2.3. Per un problema di ottimizzazione di tipo "massimo",


dato x S se esiste un intorno I Rn tale che f (x) f (y) y I S
allora questo si dice ottimo locale.

Denizione 2.4. Per un problema di ottimizzazione di tipo "minimo",


dato x S se y S f (x) f (y) allora questo si dice ottimo globale.

Denizione 2.5. Per un problema di ottimizzazione di tipo "massimo",


dato x S se y S f (x) f (y) allora questo si dice ottimo globale.

Trovare l'ottimo globale particolarmente dicile ma pu risultare


altrettanto importante se non cruciale in certe situazioni. I metodi di
ottimizzazione locale sono molto dipendenti dal punto iniziale di ricerca,
un approccio per trovare la soluzione globale utilizzando i metodi loca-
li pu consistere quindi in una serie di sottoproblemi di ottimizzazione
locale distribuiti sullo spazio di ricerca e in un nale confronto dei loro
ottimi locali.
Capitolo 3
Metodi di ottimizzazione
tradizionali

Possiamo distinguere diversi approcci per risolvere i problemi di ottimiz-


zazione. Innanzitutto occorre dierenziare in base ai problemi quelli che
possono essere arontati con i metodi che utilizzano il gradiente della
funzione obiettivo e altri che non ne fanno uso. Poi occorre anche consi-
derare quelli se i metodi sono portano ad un ottimo locale oppure sono
formulati per l'ottimizzaione globale.
Essenzialmente i metodi di ottimizzazione tradizionali appartengono alla
classe di algoritmi che svolgono la cosiddetta ottimizzazione locale, tro-
vano cio un minimo in un intorno vicino al punto di inizio della ricerca
x0 e non un minimo globale. Il principale rappresentante di questa ca-
tegoria il metodo di Newton, un metodo basato sul gradiente, che
oltretutto necessita del calcolo dell'hessiano e quindi si applica a funzioni
dierenziabili due volte, ed il metodo utilizzato pi frequentemente. Per
ovviare al calcolo dell'hessiano si sono introdotti i metodi quasi-Newton
che approssimano le derivate seconde ma necessitano ancora della die-
renziabilit della funzione. Inne i metodi basati sulle dierenze nite
o sul modello della funzione obiettivo e i metodi per coordinate o per
pattern non necessitano nemmeno della dierenziabilit della funzione
obiettivo e possono essere applicati a funzioni non lisce.
In generale gli algoritmi di ottimizzazione tradizionali si applicano a pro-
blemi non vincolati e verranno quindi presentati per i casi dove l'insieme
ammissibile S coincide con l'insieme ambiente A secondo la denizione
(2.2). In seguito si parler di come vengono trattati i problemi di ottimiz-
zazione vincolata, in particolare verranno introdotti i cosiddetti metodi

10
CAPITOLO 3. METODI DI OTTIMIZZAZIONE TRADIZIONALI 11

di penalit e metodi di barriera che trasformano un problema vincolato


in uno non vincolato il quale, quindi, pu essere risolto con i procedi-
menti descritti in questo capitolo. Osserviamo inoltre che il trattamento
dei vincoli come presentato nell'ultima sezione di questo capitolo viene
utilizzato non solo dai metodi tradizionali ma anche per l'ottimizzazione
con gli algoritmi evolutivi.

3.1 Metodo di Newton-Raphson

Dato un problema di ottimizzazione (2.2) una classe di algoritmi di ricer-


ca del minimo possono essere catalogati sotto il nome di metodi di ricerca
lineare. In particolare questo meccanismo, ssato un punto iniziale x0 di
partenza, cerca il minimo lungo una direzione pk al variare del parametro
, cio:
min f (xk + pk ) (3.1)
>0

Una volta trovato il valore del problema (3.1) si aggiorna il valore di xk


ma anche la direzione di ricerca pk dando cos origine ad una successione:

xk+1 = x + pk

A questa categoria appartengono il metodo di Newton insieme ai cosid-


detti metodi quasi-Newton.
Il problema (3.1) una ricerca lineare, infatti ad ogni iterazione k si
tratta di risolvere un problema di minimo monodimensionale risolto in
genere con i metodi di Fibonacci, di bisezione o della sezione aurea1 .
Per il metodo Newton la direzione di ricerca deriva dalla serie di Taylor
del secondo ordine della funzione f (xk + p):
1
(3.2)
def
f (xk + p) f (xk ) + pT f (xk ) + pT 2 f (xk ) p = mk (p)
2

Se vogliamo cercare la direzione p che minimizza la funzione mk (p),


supponendo che 2 f (xk ) sia denita positiva, quindi anche invertibile,
si ricava:
pN 2
k = ( f (xk ))
1
f (xk ) (3.3)
1 Non si tratta qui il processo di ricerca lineare, per le condizioni necessarie e cenni
sui problemi e metodi monodimensionali si rimanda a [5] p.30 e [1] pp.399-400.
CAPITOLO 3. METODI DI OTTIMIZZAZIONE TRADIZIONALI 12

e ponendo2 k = 1 arriviamo alla successione denitiva del metodo di


Newton:
(3.4)
1
xk+1 = xk [2 f (xk )] f (xk )

Si dimostra che il metodo di Newton ha una convergenza quadratica3


verso l'ottimo e sotto predeterminate condizioni facilmente applicabile.
D'altra parte un grande svantaggio la necessit di calcolare l'hessiano
che non permettono il suo utilizzo per problemi con la funzione obiettivo
non sucientemente liscia. Inoltre questo metodo d la possibilit di
ottenere soltanto il minimo locale, con il rischio di bloccarsi in un punto
di sella, e il risultato ottenuto risulta fortemente dipendente dal punto
iniziale della ricerca x0 .
Consideriamo un semplicissimo esempio di ottimizzazione mediante il
metodo di Newton:
x4 2x3 11x2
 
min + 12x
xR 4 3 2

Tenendo presente la (3.4) dobbiamo calcolare la derivata prima e la de-


rivata seconda della funzione. Per risolvere questo semplice esempio
suciente la seguente implementazione in Fortran 90:

PROGRAM ex_newton

! Purpose:
! Newton optimization
!
! Record of revisions:
! Date Hour Programmer Description of change
! 13/10/17 23:02 Ratibor Shevchenko Original Code

IMPLICIT NONE

! Declaration and definition of the variables


REAL(kind=16) :: x, xk
REAL(Kind=16) :: df
REAL(Kind=16) :: d2f
2 Se 6= 0 si parla di metodo di Newton rilassato, detto anche smorzato, che si
k
utilizza quando la funzione obiettivo non diminuisce abbastanza. In questi casi k
viene calcolato eseguendo una ricerca lineare.
3 Vedi [5] pp.44-46.
CAPITOLO 3. METODI DI OTTIMIZZAZIONE TRADIZIONALI 13

INTEGER :: i

x=2.35284172 !Initial point


DO i=1,100
df=x**3-2.*x**2-11.*x+12
d2f=3.*x**2-4.*x-11.
xk=x-df/d2f !Newton sequence
x=xk
END DO

! Writing of the obtained value on the terminal


WRITE(*,*) x

STOP
END PROGRAM

In questo semplice esempio il calcolo delle derivate banale ma in molte


applicazioni potrebbe essere particolarmente oneroso e soggetto ad er-
rori. Inoltre durante l'implementazione necessario invertire la matrice
delle derivate seconde e questo necessita dell'invertibilit dell'hessiano.
Ma soprattuto il principale limite l'inuenza del risultato dal punto di
partenza x0 del processo:

x0 = 2.35287527 x = 4
x0 = 2.352836323 x = 1
x0 = 2.352836327 x = 3

dove x0 sono i punti di partenza e x l'ottimo trovato. Si nota come


anche una dierenza nella decima cifra signicativa nel punto di partenza
x0 pu portare a risultati diversi.

3.1.1 Metodi Quasi-Newton


Per risolvere l'inconveniente del calcolo della 2 f (xk ) sono stati intro-
dotti dei metodi, detti quasi-Newton, che utilizzano delle approssimazioni
dell'Hessiano Hk Bk e che quindi possono essere applicati per le fun-
zioni di classe C 1 .
Concettualmente considerando che xk+1 sia molto vicino a xk e sup-
ponendo, per ora, che la funzione obiettivo sia dierenziabile due volte
CAPITOLO 3. METODI DI OTTIMIZZAZIONE TRADIZIONALI 14

possiamo scrivere:

2 f (xk ) (xk+1 xk ) = f (xk+1 ) f (xk ) (3.5)

Da questa relazione si approssima l'Hessiano seguendo la cosiddetta equa-


zione secante4 :
Bk+1 sk = yk (3.6)
dove
sk = xk+1 xk , yk = f (xk+1 ) f (xk ).

La matrice Bk viene determinata dalla precedente equazione alla quale si


aggiungono altre condizioni che dipendono dal tipo di approssimazione,
in genere si ipotizza che la matrice sia simmetrica e che la dierenza tra
le successive approssimazioni sia minima5
I metodi quasi-Newton, quindi, nascono con lo scopo di migliorare il
metodo di Newton in quanto non necessitano del calcolo dell'hessiano,
ma soltanto del gradiente della funzione obiettivo e il loro utilizzo pu
estendersi ad una pi vasta classe di funzioni. D'altra parte presenta le
stesse limitazioni in quanto un metodo locale e comunque la funzione
deve essere almeno una volta derivabile. Inoltre a dierenza dei metodi di
Newton i metodi con l'hessiano approssimato non hanno una convergenza
quadratica ma superlineare. In generale quindi non portano dei vantaggi
tali da essere preferiti al metodo di Newton.

3.2 Alternative al metodo di Newton

In questa sezione verranno brevemente presentate alcune alternative al


metodo di Newton-Raphson le quali, per, vengono impiegate pi rara-
mente in confronto al precedente. Questi metodi sono formulati in modo
da essere applicati a funzioni non lisce e quindi evitano il calcolo diretto
di derivate. Da un lato in presenza di una funzione non derivabile si pu
optare per delle approssimazioni delle derivate con delle dierenze nite,
dall'altro si pu approssimare la funzione non derivabile con un modello
in modo da poter applicare le derivate direttamente sul modello. Un ap-
proccio diverso assumono il metodo per coordinate e il metodo per pattern
che necessitano soltanto della conoscenza del valore della funzione.
4 Da [5] p.137.
5 Per l'approfondimento si rimanda a [5] p.135-149.
CAPITOLO 3. METODI DI OTTIMIZZAZIONE TRADIZIONALI 15

3.2.1 Metodo delle dierenze nite e del modello


I metodo di Newton utilizza il gradiente e l'hessiano della funzione obiet-
tivo, con i metodi quasi-Newton l'hessiano viene approssimato ma ne-
cessario comunque il gradiente della funzione obiettivo. In entrambi i
casi la condizione di dierenziabilit della funzione obiettivo necessaria
e questo pu rappresentare una forte limitazione. Una prima alternativa
consiste nell'approssimare anche il gradiente della funzione utilizzando le
dierenze nite. Le pi comuni approssimazioni delle derivate parziali
sono due6 :
f f (x + ei ) f (x)
(x) (3.7)
xi
f f (x + ei ) f (x ei )
(x) (3.8)
xi 2

per i = 1, ..., n, dove ei sono i versori degli assi e uno scalare piccolo
scelto adeguatamente per approssimare la derivata.
Il procedimento presenta per inconvenienti nei casi in cui la funzio-
ne obiettivo derivi dalle misure sperimentali dove questa in generale
soggetta al rumore, cio:

f (x) = f(x) + r(x, t, ...) (3.9)

dove possiamo considerare f (x) una funzione sucientemente liscia e in-


vece r(x, t, ...) il rumore che in generale dipende da molti fattori alcuni
dei i quali non prevedibili e casuali. In questi casi il valore della deri-
vata ottenuto considerando le dierenze nite potrebbe essere del tutto
diverso dal valore puntuale della derivata senza possibilit di prevedere
e controllare tale errore e pu quindi portare a dei risultati inesatti oltre
che ridurre notevolmente la velocit di convergenza dell'algoritmo.
Supponiamo di conoscere una serie di valori y 1 , y 2 , ..., y q della funzione
f (x) vicino a xk relativi rispettivamente ai punti x1 , x2 , ..., xq . possibile
costruire vicino a xk il modello mk (x + p) della funzione obiettivo:
1
mk (x + p) = c + gT p + pT Gp (3.10)
2
6 Da [5] pp.195-197 e pp.221-223.
CAPITOLO 3. METODI DI OTTIMIZZAZIONE TRADIZIONALI 16

dove c, g e G vengono determinati imponendo la relazione:

mk (xj ) = y j per j = 1, 2, ..., q.

In questo modo, la funzione obiettivo vicino al punto xk viene appros-


simato da un modello quadratico che non risente particolarmente del
rumore della (3.9). Inne, ottenuto il modello, si pu procedere con un
metodo basato sul gradiente. Ad ogni iterazione sia il modello che i
vettori x1 , x2 , ..., xq vengono aggiornati in modo da migliorare l'approssi-
mazione. Questo procedimento pu portare in certi casi ad imprecisioni
dovute all'approssimazione della funzione obiettivo. Questo modo di pro-
cedere pu risultare pi o meno accurato perch le funzioni non lisce e
con punti angolosi sono piuttosto dicili da trattare sia nella valutazione
delle dierenze nite che nella denizione del modello.

3.2.2 Metodo della ricerca per coordinate e per pat-


tern
I metodi per coordinate o per pattern utilizzano i valori calcolati della
funzione obiettivo f (x) lungo determinate direzioni valutando un nume-
ro nito di valori separati nello spazio delle incognite da una distanza
ssata. A partire dal valore iniziale x0 viene cercato un minimo lungo
le direzioni predeterminate, se il minimo viene trovato allora si procede
con le iterazioni successive altrimenti le direzioni e la distanza tra i punti,
cio il passo, vengono aggiornati e si ricerca di nuovo un punto di minimo.

Metodo per coordinate


Il metodo per coordinate consiste nella ricerca del minimo lungo le n di-
rezioni delle coordinate x1 , x2 , ..., xn , in questo senso analogo al metodi
della ricerca lineare (3.1) con le direzioni di ricerca pk {e1 , ..., en }.
un metodo semplice che per risulta essere non molto eciente e in
generale possibile non arrivare mai al valore di ottimo. D'altra parte
non richiede il calcolo del gradiente f ma solo dei valori della funzione
obiettivo e la veloci di convergenza pu essere accettabile se le variabi-
li x1 , ..., xn sono poco accopiate, se cio il comportamento rispetto alla
componente xi non dipende fortemente dalle altre componenti. Esistono
diverse varianti del metodo per coordinate che si distinguono dall'ordine
CAPITOLO 3. METODI DI OTTIMIZZAZIONE TRADIZIONALI 17

in cui si presentano le direzioni di ricerca. Un primo approccio, detto


avanti e indietro, consiste nella ricerca del minimo lungo la sequenza
delle direzioni operando in ques'ordine:

x1 , x2 , ..., xn1 , xn , xn1 , ..., x2 , x1 , x2 , ...

no al raggiungimento dell'ottimo. Un altro approccio pi complesso


consiste nell'eseguire una serie di minimizzazioni per coordinate avanti
e indietro e inne una minimizzazione secondo la direzione denita dal
primo parametro della serie x0 e dall'ultimo ottenuto xk .

Metodo per pattern


Il metodo della ricerca per pattern, invece, consiste nella ricerca del mini-
mo secondo un numero denito di direzioni utilizzando un passo variabile
e quindi rappresenta una generalizzazione del metodo per coordinate. In-
torno al punto xk viene a crearsi una griglia di parametri per i quali la
funzione obiettivo viene valutata e si procede alla ricerca del minimo.
Trovato il minimo il centro della griglia viene aggiornato, cos come le
direzioni e il passo della ricerca. Se invece non si raggiunge una su-
ciente diminuzione della funzione obiettivo allora vengono cambiate le
direzioni di ricerca o viene modicato il passo. La griglia di parametri
pu matematicamente essere espressa nel seguente modo:

xp = xk + k pk (3.11)

dove pk Dk con Dk un insieme di direzioni di ricerca e k il passo.


Il decremento della funzione viene valutato introducendo la funzione
(t) detta funzione decremento,questa denita crescente in t e limt0 (t)
t
=
0. Il decremento della funzione risulta suciente, e quindi il punto
xk = xk + k pk pu essere scelto come nuovo centro (xk+1 xk ), se

f (xk + k pk ) f (xk ) (k )

In questo modo all'aumentare del passo si richiede una diminuzione mag-


giore e viceversa. Essendo il metodo per pattern una sorta di generaliz-
zazione del metodo per coordinate non presenta ulteriori pregi. Come il
precedente presenta il vantaggio di utilizzare esclusivamente i valori del-
CAPITOLO 3. METODI DI OTTIMIZZAZIONE TRADIZIONALI 18

la funzione obiettivo e non informazioni legate alle sue derivate potendo


quindi essere applicato a problemi con la funzione obiettivo non liscia.
Presenta per due fondamentali limiti: un metodo locale ed ha una
convergenza lenta.

3.3 Trattamento dei vincoli

L'ottimizzazione vincolata (2.2) pu essere arontata secondo diverse ca-


tegorie di metodi. Da un lato vi sono i cosiddetti metodi primali che svol-
gono una ricerca lineare (3.1) assicurando per che ad ogni iterazione la
direzione di ricerca pk sia ammissibile e che quindi la successione xk cada
sempre nell'insieme degli elementi ammissibili S (2.2). Un'altra categoria
di metodi, chiamati metodi diretti, risolve il problema di ottimizzazione
vincolata applicando le cosiddette condizioni di Karush-Kuhn-Tucker, o
KKT, che non vengono presentati qui7 .
Sia i metodi diretti che metodi primali, per, sono ecaci solo in casi
particolari, nei problemi con la condizione di linearit dei vincoli e/o con
la funzione obiettivo quadratica. Da un lato il problema di ottimizza-
zione vincolata generale pu essere arontato attraverso la risoluzione
di sottoproblemi vincolati derivati attraverso i metodi di ottimizzazione
quadratica sequenziale (SQP ), per la trattazione dei quali si rimanda al
riferimento [5] che ne dedica un intero capitolo. Altri due approcci pi
generali e applicabili ad una ampia classe di applicazioni, e che si appli-
cano ad una sequenza di problemi non vincolati derivanti da (2.2), sono
i metodi di penalit e i metodi barriera. Questi, oltre ad essere utilizzati
insieme ai metodi di ottimizzazione tradizionali, si applicano anche nel-
l'ottimizzazione con gli algoritmi genetici e verranno qui introdotti.

Metodi di penalit
I metodi di penalit riconducono il problema di ottimizzazione vincolata
generale (2.2) ad uno non vincolato modicando la funzione obiettivo
f (x) attraverso l'introduzione della funzione di penalit. Il problema
7 Per la dimostrazione delle condizioni KKT e approfondimenti vedi [1] pp.389-392
e [5] p.321-329.
CAPITOLO 3. METODI DI OTTIMIZZAZIONE TRADIZIONALI 19

modicato si presenta nella forma:

min f (x) + P (x) (3.12)


xRn

dove viene chiamato il parametro di penalit e P (x) la funzione di pe-


nalit. Consideriamo la denizione del problema di ottimizzazione (2.1),
possiamo riscrivere ogni vincolo di ugualianza ci (x) = 0 come due vincoli
di disuguaglianza:
c (x) 0
i
(3.13)
c (x) 0
i

no ad arrivare ad avere, oltre ai precedenti vincoli di disuguaglianza,


delle condizioni nuove in numero doppio rispetto al numero dei vincoli
di uguaglianza del problema (2.2) di partenza. In generale la funzione di
penalit corrisponde ad una somma di sottofunzioni ognuna delle quali
corrisponde ad un vincolo di disuguaglianza
v
X
P (x) = pi (x)
i=1

dove v il numero di vincoli di disuguaglianza dopo la trasformazio-


ne (3.13). Ogni sottofunzione di penalit deve soddisfare la seguente
condizione8
= 0 se x A
pi (x)
> 0 altrimenti

con A l'insieme ammissibile secondo la denizione (2.2), o pi precisa-


mente
= 0 se c (x) 0
i
pi (x)
> 0 altrimenti

Con queste considerazioni i vincoli entrano a far parte direttamente della


funzione obiettivo e la loro violazione comporta un aumento della stessa.
Tra le pi comuni funzioni di penalit

pi (x) = max{0, ci (x)} (3.14)


pi (x) = [max{0, ci (x)}]2 (3.15)
8 Ci si riferisce qui ad un problema di ottimizzazione di tipo minimo.
CAPITOLO 3. METODI DI OTTIMIZZAZIONE TRADIZIONALI 20

oppure nel caso di vincoli di uguaglianza si possono utilizzare diretta-


mente le seguenti

pi (x) = |ci (x)| (3.16)


pi (x) = |ci (x)|2 (3.17)

senza ricorrere alla trasformazione (3.13).


I metodi di penalit raggiungono la soluzione del problema di ottimizza-
zine vincolata (3.13) risolvendo il problema non vincolato relativo (3.12)
attraverso una successione di soluzioni che in generale possono cadere al
di fuori dell'insieme ammissibile A e l'onere per la violazione del vinco-
lo determinato dal parametro di penalit . Un particolare approccio
consiste nel cosiddetto metodo sequenziale di penalit che consiste nella
risoluzione di problemi (3.12) corrispondenti ad un parametro di penalit
k sempre crescente k in modo da assicurare l'ammissibilit della
soluzione nale.

Metodi di barriera
I metodi barriera, a dierenza dei precedenti, forzano direttamente le so-
luzioni a cadere all'interno dell'insieme ammissibile. La loro rappresenta-
zione matematica non per dissimile dal metodo precedente e consiste
nella risoluzione del seguente problema:

min f (x) + B(x) (3.18)


xRn

dove viene chiamato il parametro di barriera e B(x) la funzione di


barriera. Anche la funzione di barriera corrisponde ad una somma di
sottofunzioni in modo simile alle funzioni di penalit:
v
X
B(x) = bi (x)
i=1

che devono soddisfare le seguenti condizioni:

bi (x) continua in A
bi (x) 0 in A
bi (x) quando x si avvicina alla frontiera.
CAPITOLO 3. METODI DI OTTIMIZZAZIONE TRADIZIONALI 21

Tra le pi comuni funzioni di barriera

bi (x) = log[c(x)] (3.19)


1
bi (x) = (3.20)
ci (x)

Anche i metodi di barriera possono essere applicati in modo sequenziale,


in questa caso si tratta di risolvere una successione di problemi con i
parametri di barriera decrescenti k 0.
Capitolo 4
Algoritmi evolutivi

Gli algoritmi evolutivi derivano dalla correlazione tra vari campi di studi
quali biologia, intelligenza articiale e ottimizzazione numerica. Questa
classe di algoritmi nettamente dierente dagli approcci tradizionali pre-
sentati precedentemente sia nella formulazione del modello del problema
che nella sua risoluzione. Il modello del problema viene interpretato se-
condo l'evoluzione organica che a partire da una popolazione di individui
iniziale opera attraverso dei processi casuali sviluppandola e cercando di
migliorarne la qualit. I metodi con cui la popolazione viene manipo-
lata sono la ricombinazione, o l'incrocio, la mutazione e la selezione e
l'idoneit di un individuo viene denita da una funzione, detta funzione
di idoneit o di tness, che a partire dalle caratteristiche dello stesso ne
deduce le possibilit di sopravvivenza e di riproduzione. importante
osservare che durante il processo evolutivo la popolazione, e in particolare
i suoi individui, non rappresentano solo possibili soluzioni del problema
di ottimizzazione numerica ma contengono in se, progressivamente, il pa-
trimonio evolutivo del processo stesso.

4.1 Background biologico

L'evoluzione biologica naturale un processo che all'interno di un gran-


dissimo numero di possibili organismi, soluzione, opera per migliorarne
la sopravvivenza e le capacit riproduttive. L'insieme di informazioni
riguardanti l'organismo stesso si trova nel suo corredo biologico che de-
termina il suo maggiore o minore livello di idoneit. Possiamo paragonare
l'evoluzione alla progettazione di soluzioni innovative complesse a partire

22
CAPITOLO 4. ALGORITMI EVOLUTIVI 23

da una popolazione di partenza e vista in questa luce l'evoluzione pu


suggerire interessanti metodi di ricerca computazionali.
L'evoluzione naturale stata formulata per la prima volta da Charles
Darwin che spiega il meccanismo con cui le specie si adattato all'ambien-
te circostante. A questo proposito viene formulato il principio di sele-
zione naturale che favorisce quelle specie, o quegli individui, che meglio
si adattano alle condizioni ambientali. Quando le condizioni ambientali
sono favorevoli la generazione precedente, i genitori, ricombina il proprio
corredo biologico in modo da generare la generazione successiva, i gli.
Insieme alla selezione naturale un altro importante fattore che determina
una casuale variazione tra il corredo biologico dei genitori e quello dei gli
la mutazione. Queste mutazioni permangono e vengono assimilate dalla
specie solo se comportano un miglioramento nell'adattamento dell'orga-
nismo altrimenti vengono perse spontaneamente. Questa teoria viene
generalmente accettata come la corretta rappresentazione macroscopica
del problema. La moderna biochimica con la scoperta della struttura
del DNA e le scoperte genetiche relative al meccanismo dell'ereditariet
introdotto da Gregor Mendel hanno portato alla risultante teoria detta
teoria sintetica dell'evoluzione, o neodarwinismo, che tuttora la teoria
evoluzionistica pi accreditata in campo scientico.
Dato un organismo, l'insieme delle sue caratteristiche visibili, struttura-
li e funzionali detto fenotipo ed la rappresentazione del suo corredo
biologico contenuto nei cromosomi. I cromosomi sono delle strutture
composte da lunghe molecole di DNA complessate con proteine ed RNA
che, dispersi nel nucleo cellulare in numero maggiore o minore in rela-
zione al tipo di organismo, rappresentano in un certo senso il progetto
dell'organismo stesso. Gli elementi che controllano le caratteristiche del-
l'organismo sono chiamati geni che occupano una specica posizione nei
cromosomi, detta locus, e sono responsabili della biosintesi delle proteine.
Diversi tipi di congurazione con cui un gene pu presentarsi nei cromo-
somi sono detti alleli. Possiamo quindi immaginare i geni come delle celle
di memoria localizzate sul cromosoma e gli alleli come i possibili valori
che che possono essere memorizzati nelle posizioni corrispondenti. La
maggior parte degli organismi ha molti cromosomi e questa totalit del
materiale genetico detto genoma, al quale corrisponde un genotipo che
l'insieme di geni in un genoma. Durante lo sviluppo dell'organismo
proprio il genotipo che determina il fenotipo e quindi le sue caratteristi-
che. In realt il legame tra il genotipo e il fenotipo piuttosto complesso
CAPITOLO 4. ALGORITMI EVOLUTIVI 24

e riguarda le intricate interazioni tra un gene e gli altri e tra i geni e


l'ambiente. Il legame tra un gene e la corrispondente caratteristica del
fenotipo non quindi univoco e dipende anche dalla penetranza, espressi-
vit, dominanza e/o recessivit degli alleli, il possibile allelismo multiplo,
la pleiotropia o la poligenia oltre che dalle leggi di Mendel.
La connessione tra il genotipo e il fenotipo in un primo livello di consi-
derazione, quello cellulare, stabilit dalla biosintesi delle proteine. Il
genoma contenuto nel DNA che ha quindi il compito di contenere le
informazioni necessarie alla formazaione delle proteine. Le due fasi prin-
cipali che formano la biosintesi sono la trascrizione e la traduzione. Il
DNA, composto da due lamenti di acido nucleico, contenuto nel nu-
cleo delle cellule ed il codice genetico deve essere trasmesso verso il sito
dove avviene la vera e propria sintesi delle proteine che nel caso delle
cellule eucariote sono i ribosomi. Prima di tutto quindi un singolo -
lamento del DNA viene trascritto su un lamento di RNA detto RNA
messaggero, mRNA, nel nucleo della cellula. In seguito l'acido ribonu-
cleico messaggero si sposta nel ribosoma dove la sequenza di basi azotate
viene interpretata per produrre l'amminoacido che andr poi a formare
la catena proteica. Gli amminoacidi che costituiscono la proteina sono
venti ed essendo le basi azotate quattro - adenina, citosina, guanina e
timina (uracile all'interno del RNA), le unit necessarie per la codica
di tutti gli amminoacidi sono tre (43 = 64). Queste unit fondamentali
sono chiamati codoni e un cromosoma pu contenerne no a mille. Il
codice genetico per la produzione di amminoacidi risulta quindi ridon-
dante ma comunque non ambiguo, la ridondanza rende meno inuente la
mutazione e preserva l'integrita dell'informazione necessaria alla sintesi.
I due processi necessari all'evoluzione naturale per partire da una gene-
razione ed arrivare ad una altra sono la mitosi e la meiosi cellulare. Le
cellule nei quali i cromosomi si presentano a coppie sono detti diploi-
di, quelle i cui cromosomi non sono appaiati sono dette aploidi. Negli
organismi pluricellulari, come gli esseri umani, le funzioni vegetative e
riproduttive sono separate. Le cellule germinali sono responsabili della
riproduzione e sono aploidi, invece quelle somatiche, responsabili dello
sviluppo dell'organismo, sono diploidi. La mitosi il processo di divi-
sione delle cellule somatiche che a partire da una cellula madre produce
due cellule glie geneticamente identiche tra loro e identiche alla madre.
La mitosi il processo che risulta il principale responsabile della crescita
e sviluppo di un organismo, la meiosi invece risulta molto importante
CAPITOLO 4. ALGORITMI EVOLUTIVI 25

nella riproduzione ed il processo che genera le cellule germinali, o ga-


meti aploidi, necessarie nella riproduzione sessuale. Durante la meiosi i
cromosomi omologhi duplicati si accoppiano e tra essi avviene il crossing
over, cio lo scambio di lamenti di DNA. La cellula madre si divide pri-
ma in due e inne in quattro cellule glie con un numero cromosomico
ridotto a met pronte ad unirsi nella fecondazione.
Durante i processi genetici possono vericarsi dei casuali e rari cambia-
menti del materiale genetico, questi cambiamenti sono detti mutazioni e
si distinguono in mutazioni somatiche e germinali. Si parla di mutazione
somatica se questa insorge in una cellula somatica durante la vita em-
brionale o successivamente, questo tipo di mutazione non trasmissibile
alla progenie. Se la mutazione avviene invece in una cellula germinale
questa comporta una trasmissione alla progenie e porta alla formazione
di individui mutanti. importante ribadire che le variazioni possono
insorgere in qualunque tipo di cellula e in qualunque momento di vita
senza cause di adattamento ad un particolare ambiente. Le mutazioni
geniche consistono nella variazione dello schema del lamento di DNA
che pu essere una sostituzione di una coppia di basi oppure inserzione
o deiezione delle stesse. In questo senso la mutazione pu causare gravi
eetti che si ripercuotono sullo sviluppo dell'organismo ma d'altro canto
la fonte principale della variabilit genetica indispensabile per l'evolu-
zione.
Dopo aver brevemente arontato in che modo in un organismo sono co-
dicate le informazioni necessarie al suo sviluppo occorre stabilire in che
modo si misura il livello di adattamento di un individuo della popola-
zione. Nel contesto dell'evoluzione la qualit di un individuo misurata
dal suo tasso di crescita, dalla probabilit di sopravvivenza e riprodu-
zione in un determinato ambiente che dipendono direttamente dalle sue
caratteristiche e quindi dal suo genotipo. Possiamo quindi immaginare
una supercie di adattamento che associa ai tratti caratteristici di un
individuo il suo livello di qualit e che risulta immediatamente interpre-
tabile nell'ottica dell'ottimizzazione numerica. importante osservare
che l'evoluzione un processo che interessa l'intera popolazione e non un
individio singolo. Infatti, durante l'adattamento, il tness della popola-
zione risale mediamente verso le zone della supercie di adattamento pi
alte determinando quindi un miglioramento medio della stessa.
CAPITOLO 4. ALGORITMI EVOLUTIVI 26

4.2 Struttura degli algoritmi evolutivi

Gli algoritmi evolutivi sono degli algoritmi di ricerca iterattivi e stocastici


basati sui modelli dell'evoluzione biologica. Il processo inizia generando
una popolazione con i rispettivi genotipi e procede iterativamente no al-
l'individuazione di una soluzione accettabile operando la ricombinazione,
la mutazione e la selezione no alla formazione della successiva popola-
zione.
Gli algoritmi evolutivi racchiudono in s tre principali tipi di approc-
cio: strategie evolutive, algoritmi genetici e programmazione evolutiva.
Le principali metodologie evolutive utilizzate per l'ottimizzazione nume-
rica si fondano sugli stessi principi e vengono classicate come strategie
evolutive ed algoritmi genetici. Verranno brevemente presentati separa-
tamente le due tipologie di algoritmi, anche se spesso i loro meccanismi
di funzionamento possono in qualche modo fondersi al tempo del loro
utilizzo nelle applicazioni. La principale dierenza tra i due approcci sta
nella codica di un individuo e nelle conseguenti dierenze dei meccani-
smi di ricombinazione e di selezione. Nella formulazione della funzione
di tness, invece, non vi sono importanti discrepanze.
Utilizzando il linguaggio matematico possiamo scrivere la denizione
generale di un algoritmo evolutivo1 :

Denizione 4.1. Un algoritmo evolutivo (EA) denito come una 8-pla

EA = (I, , , , , s, , e) (4.1)

dove

I lo spazio degli individui ;

, N sono rispettivamente il numero degli individui genitori e


il numero di individui gli ;

: I R indica la funzione di tness che associa ad ogni individuo


un valore reale;

= {1 , ..., z | i : I I } {0 : I I ) un insieme
di (z + 1) operatori genetici stocastici ognuno controllato da uno
specico insieme di parametri i ;
1 Da [14] p.63.
CAPITOLO 4. ALGORITMI EVOLUTIVI 27

ss : (I I+ ) I l'operatore selezione che cambia il numero


di individui da o + a e s un insieme di parametri che
pu essere utilizzato dall'operatore di selezione;

= (ss i1 ... ij 0 ) o in altri termini

(P) = ss (Q i1 (...(ij (0 (P)))...))

con {i1 , ..., ij } {1, ..., z}, P la popolazione e Q {, P},


la funzione di transizione che porta alla trasformazione di una
popolazione in una successiva;

e : I {vero, falso} il criterio di terminazione dell'algoritmo;

Lo spazio degli individui I pu essere arbitrariamente complesso e la


rappresentazione, o codica, della popolazione pu essere scelta adegua-
tamente in funzione del problema da risolvere insieme alle sue dimensioni.
La funzione di tness pu essere direttamente la funzione obiettivo ma
pu invece essere formulata in modi diversi e richiedere passaggi di calco-
lo e/o computazione intermedi. Gli operatori genetici sono probabilistici
invece l'operatore di selezione pu essere o deterministico o probabilisti-
co ed entrambi possono dipendere dai parametri esterni predeniti. La
terminazione dell'algoritmo pu dipendere da molti fattori e da relazioni
pi o meno complicate relative al tness medio della popolazione o al-
la variabilit di quest'ultima ma spesso indica semplicemente il numero
massimo di iterazioni. Le iterazioni dell'algortitmo e l'applicazione suc-
cessiva della funzione di transizione porta alla denizione della succesione
di popolazioni, cio l'evoluzione:

Denizione 4.2. Dato un algoritmo evolutivo EA con la funzione di


transizione : I I e la popolazione iniziale P(0) I , la succcesione

P(t) = P(0), P(1), P(2), ...

con
t 0 : P(t + 1) = (P(t))

chiamata la successione delle popolazioni o evoluzione di P(0).

Inne possiamo denire la soluzione del problema di ottimizzazione


con l'algoritmo genetico:
CAPITOLO 4. ALGORITMI EVOLUTIVI 28

Denizione 4.3. Dato un algoritmo evolutivo EA con la funzione di


transizione : I I e la popolazione iniziale P(0) I e un problema
di ottimizzazione con la funzione obiettivo f , un individuo
[
EA

a t (P(0))
t=0

con [
EA

f (a) = min{f (a0 ) | a0 t (P(0))}


t=0

detto risultato dell'algoritmo evolutivo, dove

EA = min{t N | e(t (P(0))) = vero}

chiamato il tempo di esecuzione.

Risulta pi conveniente rappresentare gli operatori genetici non come


operatori che si applicano all'intera popolazione ma come processi che
a partire da degli antenati prescelti portano alla formazione della prole.
Possiamo quindi distinguere diversi tipi di operatori: asessuati, sessuati
e panmittici. Un operatore genetico applicato all'intera popolazione
si dice sessuato se esiste un corrispondente operatore 0
che applicato
a due individui genitori genera un glio. Analogamente un operatore
genetico si dice asessuato se esiste un operatore che applicato ad un solo
individuo genera un glio a partire, quindi, solo da un genitore. Inne,
un operatore genetico si denisce panmittico se la generazione del glio
avviene a partire da un numero predeterminato di genitori maggiore di
2. Rigorosamente2 :

Denizione 4.4. Un operatore genetico : Ip Iq detto asessuato


se

0 0 0
: I I | (a1 , ..., ap ) = ( (a1 ), ..., (ap )) p=q

Denizione 4.5. Un operatore genetico : Ip Iq detto sessuato


2 La
notazione 0
con l'apostrofo indica in questo caso un operatore genetico
applicato soltanto al numero predeterminato di individui e non all'intera popolazione,
quindi diverso dagli operatori deniti in (4.1).
CAPITOLO 4. ALGORITMI EVOLUTIVI 29

se

0 0 0
: I2 I | (a1 , ..., ap ) = ( (ai1 , aj1 ), ..., (aiq , ajq ))

dove k {1, ..., q} ik , jk {1, ..., p} sono scelti aleatoriamente.

Denizione 4.6. Un operatore genetico : Ip Iq detto panmittico


se

0 0 0
: Ip I | (a1 , ..., ap ) = ( (a1 , ..., ap ), ..., (a1 , ap ))
| {z }
q

A questo punto possiamo presentare la struttura generale di un al-


gortimo evolutivo 3 :
Algoritmo 4.1.
t 0;
inizializza P(0) := {a1 (0), ..., a (0)} I ;
valuta P(0) : {(a1 (0)), ..., (a (0))};
while (e(P(t)) 6= vero) do
begin
ricombina: P0 (t) rr (P(t));
muta: P00 (t) mm (P0 (t));
valuta P00 (t) : {(a00 1 (t)), ..., (a00 (t))};
seleziona: P(t + 1) ss (P00 (t) Q);
t t + 1;
end

dove rr (P(t)) e mm (P(t)) sono rispettivamente l'operatore ge-


netico di ricombinazione e l'operatore genetico di mutazione e Q
{0, P}. Successivamente ci si occuper di come agiscono e come vengo-
no concretamente formulati gli operatori genetici nei rispettivi algoritmi
evolutivi.
3 Da [14] p.66, cfr. anche [15] p.6.
CAPITOLO 4. ALGORITMI EVOLUTIVI 30

4.3 Algoritmi genetici

A partire dall'algoritmo evolutivo generale (4.1) possiamo ora denire gli


elementi che deniscono gli algoritmi genetici.

4.3.1 Rappresentazione degli individui


Negli algoritmi genetici ogni individuo4 a I = Bl viene rappresentato
da una stringa binaria di dimensione l chiamata cromosoma e ogni bit
viene chiamato gene :

a I := (a1 , ..., al ) con ai B (4.2)

Questa caratterizzazione degli individui teoricamente si presta a rappre-


sentare qualsiasi tipo di parametro: numeri reali, permutazioni o oggetti
sici. Molto frequentemente i problemi di ottimizzazione richiedono il
calcolo di n parametri reali di un vettore x e la funzione obiettivo si
presenta nella forma:
n
Y
f: [ui , vi ] R
i=1

In questi casi possibile codicare il vettore suddividendo la stringa di l


bit in n segmenti, nella maggior parte dei casi, di uguale lunghezza lx in
modo che l = lx n ed ogni segmento ai1 , ..., ailx Blx di a rappresenta
la corrispondente componente xi .
Una volta codicato un individuo, quindi una volta scelto il codice per
rappresentare le informazioni relative al problema nel suo genotipo oc-
corre avere una funzione che a partire dal genotipo restituisca il dato del
problema di ottimizzazione, cio il fenotipo. Dato quindi il vettore dei
parametri x rappresentato dalla codica a possiamo scrivere:

x = (a)

La funzione di decodica : I Rn ha il compito di tradurre il ge-


noma nel fenotipo, cio la variabile del problema di ottimizzazione vera
e propria. In relazione al tipo di dato da trattare e quindi della codi-
ca la funzione di decodica avr diverse forme. La codica un passo
importante durante l'implementazione dell'algoritmo genetico e nei casi
4 Qui il simbolo B indica l'insieme dei numeri binari, cio B = {0, 1}.
CAPITOLO 4. ALGORITMI EVOLUTIVI 31

pi particolari una variazione nella codica pu comportare una rilevante


dierenza durante l'esecuzione e quindi portare a risultati diversi5 .

4.3.2 La funzione di tness


La seconda questione da arontare la scelta della funzione di tness da
utilizzarsi nell'algoritmo genetico. Dato un problema di ottimizzazione
standart (2.2) un algoritmo genetico ha bisogno di avere una funzione
di tness a valori reali positivi con i valori maggiori corrispondenti a
soluzioni di migliore qualit, anche se queste condizioni sono in realt
facilmente ottenibili semplicemente manipolando in modo opportuno la
funzione obiettivo. A questo scopo esistono una variet di funzioni di
scalamento 6 : R R+ , dove un insieme di parametri della
funzione di scalamento, tra le pi comuni:

Scalamento lineare statico :

(f ((a)), {c0 , c1 }) = c0 f ((a)) + c1

dove c0 R \ {0} e c1 R sono delle costanti;

Scalamento logaritmico :

(f ((a)), {c0 }) = c0 log(f ((a)))

assumendo che per c0 R valga c0 > log(f ((a))) per tutti i valori
dei parametri ammissibili dal problema;

Scalamento esponenziale :

(f ((a)), {c0 , c1 , c2 }) = (c0 f ((a)) + c1 )c2

con le costanti c0 , c1 , c2 oppurtunamente scelte;

Essenzialmente le funzioni di scalamento permettono di ottenere a parti-


re dalla funzione obiettivo del problema di ottimizzazione il valore della
funzione di tness di un individuo anche se sono anche utilizzabili come
5 L'importanza della codica cos come la dipendenza del comportamento dell'al-
goritmo dalla stessa legato al cosiddetto concetto di schema per la trattazione del
quale si rimanda a [14] pp.123-126 e [16] pp.28-33.
6 Per altri tipi di funzioni di scalamento ed approfondimenti vedi [14] pp. 111-112
e [16] pp.76-79.
CAPITOLO 4. ALGORITMI EVOLUTIVI 32

funzioni di tness direttamente le funzioni obiettivo.

4.3.3 Ricombinazione
Negli algoritmi genetici la ricombinazione, detta crossover, risulta esse-
re l'operatore genetico pi importante. Il meccanismo del crossover ha
l'obiettivo idealmente di ricombinare i cromosomi di due genitori per ge-
nerare un glio in modo da ottenere un genotipo corrispondente ad un
fenotipo con la funzione di tness pi alta. La ricombinazione negli algo-
ritmi genetici un operatore genetico sessuato dove, in riferimento alla
denizione (4.5), 0
: Ip I := r{pr } che seleziona due individui geni-
tori u e v, e con la probabilit pr li ricombina generando due individui
gli s1 = (s11 , ..., s1l ), s2 = (s21 , ..., s2l ) I scartando uno dei due a caso.
Operativamente il crossover negli algoritmi genetici, prendendo spunto
dal processo della meiosi, prende le stringhe che rappresentano il genoma
dei genitori e ne scambia dei segmenti secondo vari criteri alcuni dei quali
presentati di seguito7 .
Il tradizionale criterio detto crossover a un punto r{pr } che genera un in-
tero a caso {1, ..., l1} e scambia quindi i bit dei genitori a partire dal
gene a+1 (in riferimento a (4.2)) per generare il glio, matematicamente:

u , i
i
si = (4.3)
v , altrimenti
i

Aumentando i punti di crossover si parla di crossover a z punti multipli


r{pr ,z} che genera z punti casuali 1 , ..., z {1, ..., l 1} in modo che
k k+1 k {1, ..., z 1} e scambia i geni secondo il seguente schema:

u , i ( < i ), k {0, 1, ..., z} (con = 0) k pari
i k k+1 0
si =
v , altrimenti
i
(4.4)
Aumentando al limite il numero di punti si parla di crossover uniforme
per il quale il segmento del cromosoma che i genitori si scambiano
7 Per approfondimenti e altri tipi di crossover vedi [15] pp.115-116.
CAPITOLO 4. ALGORITMI EVOLUTIVI 33

rappresentato da un solo bit, matematicamente:



u , 1/2
i
si = (4.5)
v , > 1/2
i

dove [0, 1] una variabile casuale con una distribuzione uniforme.

4.3.4 Mutazione
Negli algoritmi genetici la mutazione, a dierenza della ricombinazio-
ne, ha un ruolo di sottofondo8 ed ha l'obiettivo idealmente di modi-
care un individuo in modo da reintrodurre geni scomparsi durante l'e-
voluzione della popolazione. Occorre notare per che anche un picco-
lo cambiamento del genotipo pu comportare un grande cambiamento
del fenotipo e pu vanicare l'eetto positivo della ricombinazione, d'al-
tra parte questi cambiamenti permettono una migliore esplorazione del
paesaggio della funzione di tness. La mutazione, quindi, un ope-
ratore genetico asessuato il quale, in riferimento alla denizione (4.4),
0
: I I := m{pm } , dato un individuo u = (u1 , ..., ul ) cambia il valore
del bit ui con i {1, ..., l} con la probabilit pm portando alla formazione
dell'individuo mutante u0 . Matematicamente:

u ,
i se i pm
u0i = (4.6)
1 u ,
i se i > pm

dove i [0, 1] una variabile casuale con una distribuzione uniforme


generata per ogni indice i.

4.4 Strategie evolutive

4.4.1 Rappresentazione e la funzione di tness


Nelle strategie evolutive ogni individuo a I rappresenta un vettore
reale, riferito al problema di ottimizzazione (2.2) o (2.3), x Rn dove
la funzione obiettivo nella forma f : Rn R. La funzione di tness
corrisponde alla funzione obiettivo, cio (a) = f (x) ed ogni individuo
8 Vedi [17] p.111.
CAPITOLO 4. ALGORITMI EVOLUTIVI 34

viene rappresentato con la seguente codica9 :

a = (x, , ) I = Rn Rn+ [, ]n (4.7)

con n = n e n = n(n 1)/2. Se rappresentiamo il vettore x in un


sistema di riferimento cartesiano {O, e1 , ..., en } dove ei con i {1, ..., n}
sono i versori del sistema di riferimento possiamo interpretare geometria-
camente la codica. Il vettore il vettore che determina un ellissoide
in n dimensioni con i semiassi di lunghezza pari alle componenti del vet-
tore. Il vettore determina invece l'orientazione degli assi dell'ellissoide
rispetto ai versori di riferimento10 . La scelta del simbolo non ca-
suale e verr chiarit successivamente quando si tratter l'operatore di
mutazione.

4.4.2 La ricombinazione
Nelle strategie evolutive esistono in generale due tipologie di ricombina-
zioni, una detta discreta e l'altra chiamata intermedia ed entrambe si
possono presentare sia in forma sessuata che panmittica.
La ricombinazione sessuata discreta opera in modo che ognuna delle com-
ponenti del vettore glio sia scelta casualmente da uno dei due genitori.
Matematicamente, dati due genitori u = (xu , u , u ), v = (xv , v , v )
P(t) selezionati casualmente, il glio s = (xs , s , s ) calcolato:

xsi = xui xvi

con i {1, ..., n}.


Nella ricombinazione panmittica la scelta avviene , invece, casualmente
tra tutti gli individui della popolazione. Quindi data la popolazione
P(t) = {a1 , ..., a }, il glio s = (xs , s , s ) viene calcolato:

a
xsi = xai 1 ... xi

con i {1, ..., n}.


Nella ricombinazione intermedia sessuata ogni componente del vettore
9 Cfr.[14] p.68 per una trattazione pi generale.
10 Perulteriori approfondimenti ed una trattazione pi completa si rimanda a [14]
pp.68-71.
CAPITOLO 4. ALGORITMI EVOLUTIVI 35

glio la media delle componenti dei due genitori

xsi = xvi + (xui xvi )/2

in quella panmittica invece il genitore v viene tenuto sso e il genitore


u viene scelto casualmente da tutta la popolazione ma il procedimento
del tutto analogo.
Viene anche utilizzata la cosiddetta ricombinazione intermedia genera-
lizzata, per quella sessuata si ha:

xsi = xvi + (xui xvi )

i {1, ..., n}, e per quella panmitica

xsi = xvi + i (xui i xvi )

dove ad ogni iterazione i viene preso in considerazione il nuovo genitore


ui e [0, 1] una variabile casuale con distribuzione uniforme.
Il procedimento appena descritto per le componenti del vettore x si
utilizza per la ricombinazione dei vettori e . Se indichiamo con
{, d, D, i, I, g, G} l'insieme degli indici indicante rispettivamente l'as-
senza di ricombinazione, le ricombinazioni discreta sessuata e panmitti-
ca, intermedia sessuata e panmittica, intermedia generalizzata sessuata
e panmittica, otteniamo l'operatore di ricombinazione completo rrx ,r ,r
utilizzato nelle strategie evolutive.

4.4.3 La mutazione
La codica degli individui (4.7) con i vettori e si riferisce diret-
tamente ad una distribuzione normale in n dimensioni che indichiamo
N(0, C) con il valore atteso 0 e C1 = cij = C1 (, ) la matrice delle
covarianze. Quindi, una volta codicata la distribuzione normale multi-
variata attraverso la codica dell'individuo, la mutazione , nelle strategie
evolutive, un operatore genetico asessuato, in riferimento alla (4.4),
0
: I I che modica l'individuo variando le sue componenti secondo
la distribuzione normale codicata N(0, C) nel genoma dell'individuo11 .
11 Per approfondimenti vedi [14] p.71-73.
CAPITOLO 4. ALGORITMI EVOLUTIVI 36

4.5 Selezione

La selezione l'unico componente degli algoritmi evolutivi nel quale en-


tra in gioco la funzione di tness e ha lo scopo di selezionare gli individui
per generare la nuova popolazione. La selezione l'operatore genetico
che maggiormente inuenza il carattere della ricerca evolutiva. Da un
lato necessario esplorare lo spazio di ricerca delle soluzioni in modo da
aver la possibilit di trovare delle zone con tness maggiore, dall'altro
lato occorre sfruttare le informazioni contenute nel genoma degli indi-
vidui e conservare i geni migliori. L'approccio esplorativo viene detto
volume-oriented, quello che sfrutta i miglioramenti durante l'evoluzio-
ne del genotipo chiamato path-oriented. Al processo volume-oriented
sono associate le maggiori dierenze dei genotipi nella popolazione e l'e-
splorazione completa dello spazio di ricerca che comporta una maggiore
adabilit della convergenza, si favorisce invece la velocit di convergen-
za con il processo path-oriented. Quando si predilige l'esplorazione dello
spazio di ricerca allora si parla di selezione debole, se invece si desidera
sfruttare le informazioni ottenute dall'evoluzione e contenute nei genomi
degli individui con il tness maggiore si parla di selezione forte.
Per determinare se l'operatore di selezione ha una pressione forte o debo-
le sul processo evolutivo si utilizza il concetto di takeover time che indica
il numero di generazioni necessarie per portare una popolazione ad essere
composta solo da individui come quello migliore senza l'azione degli altri
operatori genetici. Matematicamente12 :

Denizione 4.7. Sia dato un algoritmo evolutivo EA (4.1) con =


e = s. Sia P(0) la popolazione iniziale e a0 (0) P(0) il miglio-
re individuo della popolazione. Assumendo il criterio di terminazione
e(P(t) = {a1 (t) = a2 (t) = ... = a (t) = a0 (0)}, il tempo di terminazione
dell'algoritmo

EA = min{t N | e(t (P(0))) = vero} :=

chiamato takeover time dell'operatore di selezione s.

Per questo un operatore di selezione s avr una pressione forte se il suo


takeover time sar basso e viceversa. Nei successivi paragra verranno
presentate brevemente i principali meccanismi di selezione con il relativo
12 Da [14] p.166.
CAPITOLO 4. ALGORITMI EVOLUTIVI 37

takeover time: la selezione proporzionale, ranking, selezione a torneo,


selezione ( + ) e quella (, ).
Il parametro fondamentale per la selezione che distingue i vari tipi di
selezione la probabilit di sopravvivenza che indica la probabilit che
un individuo sopravviva e che quindi si riproduca:

Denizione 4.8. Chiamiamo la probabilit di sopravvivenza, o probabi-


lit di selezione, di un individuo a P(t) la quantit:

ps (a) = P{a ss (P(t))}

Selezione proporzionale
La selezione proporzionale seleziona la nuova popolazione, cio la popo-
lazione che dovr essere sottoposta alla ricombinazione, in funzione della
probabilit di un individuo ad essere scelto in funzione del suo tness.
Per la selezione proporzionale s : I I la probabilit di sopravvivenza
denita nel seguente modo13 :
(ai (t))
ps (ai (t)) = P (4.8)
j=1 (aj (t))

La (4.8) mette in relazione la qualit di un individuo rispetto agli altri,


rappresentata con le percentuali, e quindi gli individui vengono scelti in
base alla probabilit relativa14 .
Il takeover time per la selezione proporzionale vale, prendendo come ri-
ferimento le funzioni obiettivo monodimensionali f 1 (x) = xc e f 2 (x) =
exp(c x).:
1 1
f1 ( log 1) e f2 log
c c
e per avere un riferimento supponendo una popolazione con = 100 e
c = 1 abbiamo f2 = 461, risultato utile per confrontare la pressione della
selezione proporzionale con gli altri tipi di selezione.
13 Vedi [14] p.118.
14 Ilmeccanismo di selezione proporzionale viene attuato mediante il cosiddetto
sistema a roulette che non altro che un generatore di numeri casuali compresi tra
due valori, l'intervallo della roulette suddiviso tra gli individui in base alle probabilit
di sopravvivenza (vedi [16] p.11).
CAPITOLO 4. ALGORITMI EVOLUTIVI 38

Ranking
Per la selezione con ranking si procede alla valutazione del tness di
ogni individuo e si ordinano gli indici della popolazione in modo che
(a1 ) (a2 ) ... (a ). Ranking, o pi propriamento ranking
lineare, assegna le probabilit di sopravvivenza (4.8) ad un individuo
esclusivamente in base al suo indice ignorando completamente il suo va-
lore assoluto della funzione di tness. La probabilit di selezione viene
calcolata in base ad una funzione lineare degli indici, in particolare15
 
1 + + i1
ps (ai (t)) = ( )
1

dove + = ps (a1 (t)) e = ps (a (t)) con le condizioni necessarie


(vedi il riferimento nella nota a pi di pagina) 1 + 2 e = 2 + .
Il takeover time per la selezione ranking vale:

+ =2 log2 + log2 (log )

e
2
1< + <2 log( 1)
+ 1
Calcolando il takeover time per la selezione ranking abbiamo per una
popolazione = 100 si ha + =1.1 = 91.9 e + =1.9 = 10.21. Se ne deduce
che la selezione ranking pi forte rispetto a quella proporzionale anche
se la pressione pu essere regolata calibrando il valore di + all'aumentare
del quale la selezione diventa pi forte.

Selezione a torneo
La selezione a torneo seleziona un individuo dalla popolazione sceglien-
dolo da un insieme di q individui alla volta e prendendo quello migliore di
ogni gruppo no a raggiungere il numero necessario di gli. Presentiamo
brevemente l'espressione della probabilit di sopravvivenza e il takeover
time lasciando al riferimento16 ulteriori approfondimenti.
Per la selezione a torneo la probabilit di sopravvivenza vale:
1
ps (ai (t)) = q
(( i + 1)q ( i)q )

15 Da [14] p.170.
16 [14] pp. 172-174.
CAPITOLO 4. ALGORITMI EVOLUTIVI 39

e il takeover time:
1
q (log + log(log )).
log q

Considerando una popolazione di = 100 si calcolano q=2


= 8.85 e
q=10 = 2.66 se ne deduce quindi che la selezione a torneo risulta essere

ancor pi forte rispetto alla selezione per ranking e pu essere calibra-


ta operando sul parametro q all'aumentare del quale aumenta anche la
pressione di selezione.

Selezione ( + ) e (, ) A dierenza dei precedenti tipi di selezione


appena visti, questi due presuppongono un diverso numero di gli e di
genitori 6= ed un meccanismo completamente deterministico. La se-
lezione s(+) : I+ I selezione individui migliori dall'insieme della
generazione dei genitori e quella dei gli. La selezione s(,) : I I se-
lezione individui migliori soltanto dall'insieme dei gli e richiede quindi
che > 17 .
Essendo la selezione in questione totalmente deterministica non richiede
la denizione della probabilit di sopravvivenza. La relazione per il cal-
colo del takeover time della selezione (, ) pi semplice da valutare e
riportiamo il risultato18 :
log
(,) =
log
Svolgendo i conti per una popolazione di = 100 individui si calcola che

=200 = 7.64 e =600

= 2.96 si nota che la selezione (, ) ancora pi
selettiva delle precedenti. Si dimostra19 anche che la selezione ( + )
risulta essere ancora pi forte della (, ).

17 Per = la selezione non attua alcuna scelta e quindi questo caso non viene
considerato.
18 Vedi [14] pp.175-179.
19 Vedi [14] p.178.
Capitolo 5
Applicazioni

5.1 Ottimizzazione evolutiva

Analizzata la struttura degli algoritmi evolutivi e capiti i meccanismi con


quali questi operano possiamo ora indicare lo schema applicativo degli
algoritmi evolutivi. Prima di tutto necessario sottolineare che quasi
mai l'implementazione di un algoritmo evolutivo coincide esattamente
con una delle due forme che abbiamo arontato. In genere, infatti, l'im-
plementazione rappresenta un algoritmo ibrido che caso per caso risulta
essere una combinazione di due schemi di algoritmi introdotti nel capi-
tolo precedente, cio le strategie evolutive ed algoritmi genetici.
Operativamente ogni algoritmo evolutivo richiede in ingresso dei para-
metri, che deniscono quindi la sua struttura e il modo in cui agisce.
Schematicamente possiamo rappresentare un algoritmo evolutivo con una
6-pla:
EA = (, r, pr , m, pm , s) (5.1)
dove indica il numero di individui nella popolazione, r il tipo di ri-
combinazione utilizzata dall'algoritmo con la relativa probabilit di ri-
combinazione pr , m indica il tipo di mutazione e pm la sua probabilit e
inne s specica la selezione operata nell'algoritmo. Dato questo schema
possiamo infatti indicare sia gli algoritmi genetici che le strategie evolu-
tive e questa rappresentazione risulta utile per la schematizzazione degli
algoritmi evolutivi.
Nelle applicazioni conveniente applicare alternativamente vari tipi di
algoritmo variando i parametri in modo da calibrare l'ottimizzazione e
valutare inne i risultati ottenuti. Possiamo per indicare brevemen-
te quali sono i criteri guida essenziali per la scelta dei parametri che

40
CAPITOLO 5. APPLICAZIONI 41

deniscono un algoritmo evolutivo.

Possiamo porre = 50 come punto di riferimento; il numero di


individui cresce all'aumentare di parametri da determinare in mo-
do da migliorare l'esplorazione dello spazio; un numero minore di
indivui invece favorisce una pi alta velocit di convergenza.

La ricombinazione r viene scelta in funzione dell'implementazio-


ne dell'algoritmo e corrisponde agli operatori di ricombinazione
presentati nel capitolo precedente.

La probabilit di ricombinazione pr aumenta se si preferisce favorire


il rimescolamento dei geni nella popolazione, una probabilit di
ricombinazione alta tipica degli algoritmi genetici ed pi bassa
nelle strategie evolutive.

La mutazione m determina il tipo di mutazione, anche questa co-


me la ricombinazione dipende dall'implementazione dell'algoritmo
e corrisponde agli operatori di ricombinazione gi introdotti.

L'aumentare della probabilit di mutazione pm determina l'intro-


duzione di geni nuovi e favorisce la ricerca globale, i valori molto
bassi corrispondono agli algoritmi genetici invece per le strategie
evolutive rappresenta un operatore primario.

L'operatore selezione s, come gi introdotto, determina il caratte-


re della ricerca evolutiva e la sua pressione dipende dal valore di
takeover time, intuitivamente una selezione che tende a selezionare
pi individui migliori e a scartare molti dei peggiori ha una pres-
sione forte e causa quindi una maggiore velocit di convergenza a
discapito per dell'esplorazione dello spazio delle soluzioni.

Introdotto ora la rappresentazione schematica degli algoritmi e indicato


il procedimento di scelta dei parametri possiamo procedere ad arontare
gli esempi applicativi. In questo capitolo vengono proposti alcuni risul-
tati ottenuti utilizzando il software Dakota. Il programma implementa
l'algoritmo evolutivo i parametri del quale devono essere indicati in un
apposito le di testo che contiene anche l'impostazione del problema di
ottimizzazione. Mentre l'algoritmo evolutivo implementato da Dakota,
necessario produrre un eseguibile che funge da interfaccia e ha il com-
pito di valutare la funzione obiettivo e il valore degli eventuali vincoli.
CAPITOLO 5. APPLICAZIONI 42

Dakota inizia il processo di ottimizzazione valutando il le di testo ed ini-


ziando il processo iterativo. Non appena necessaria la valutazione della
funzione obiettivo, o del valore dei vincoli, il processo viene arrestato
temporaneamente e viene chiamato l'eseguibile prodotto in precedenza.
L'interfaccia riceve da Dakota in ingresso i parametri necessari al calco-
lo delle funzioni in un le di testo, una volta eseguito le operazioni e i
calcoli necessari l'eseguibile produce a sua volta in uscita un le con i
parametri che vengono ricevuti da Dakota e l'algoritmo prosegue la sua
esecuzione1 . Per l'esecuzione dei problemi, l'eseguibile con la funzione di
interfaccia stato prodotto utilizzando Fortran 90. Nell'appendice A e
nell'appendice B sono riportati sia i le di input di Dakota che i codici
sorgente delle interfacce in Fortran 902 .

5.2 Esempio di ottimizzazione di minimo pe-

so

Il problema

Figura 5.1: Asta pesante

Il primo esempio un benchmark, conoscendo la soluzione analitica


al problema si vuole analizzare il comportamento e l'ecienza degli algo-
ritmi di ottimizzazione evolutivi. Si consideri la trave pesante in gura
(5.1), se questa fosse a sezione costante A(z) = A0 si dimostra banalmen-
te che l'andamento degli sforzi segue l'andamento dell'azione assiale che
cresce linearmente verso la base dell'asta. A sezione costante, quindi, in
1 Per ulteriori approfondimenti vedi [18] pp.21-22.
2 Per l'analisi dei codici di input si rimanda ai rispettivi manuali di Dakota [18] e
[19]. Per il codice in Fortran 90 vedi [20].
CAPITOLO 5. APPLICAZIONI 43

assenza di altri carichi se non il peso della trave stessa, la sollecitazione


massima si trova alla base dell'asta e il punto pi alto scarico. Si vuole
invece determinare quale andamento deve avere la sezione A(z) in mo-
do da mantenere la sollecitazione assiale costante lungo tutta la sua
lunghezza.

Soluzione analitica
Dalle equazioni indenite di equilibrio per travi ad asse rettilineo sappia-
mo che:
dN
=q
dz
e da qui possiamo scrivere:
Z Z
dN = qdz

Sulla trave agisce soltanto la forza peso dovuta al peso specico , quindi
Z
N (z) = A(z)dz

e inne R
N (z) A(z)dz
(z) = = =
A(z) A(z)
dove l'ultima uguaglianza deriva dalla condizione che la sollecitazione
(z) sia costante lungo tutta la trave.
Ponendo A(z)dz = g(z) e A(z) = g 0 (z) si ottiene
R

dg(z)
g(z) =
dz
dg(z)
dz =
g(z)

z = ln g(z) + c
 

exp z = exp[ln g(z) + c]

da cui   N (z)
g(z) = c1 exp z =

e
 
g 0 (z) = c1 exp z = A(z)

CAPITOLO 5. APPLICAZIONI 44

Supponendo di conoscere l'area iniziale A(0) = A si ricava



c1 = A

La soluzione analitica al problema:


 
A(z) = A exp z (5.2)

e  
N (z) = A exp z (5.3)

Soluzione per ottimizzazione


Supponiamo, invece, di non poter determinare la soluzione analitica esat-
ta e di voler determinare i parametri di un modello Am (z) in modo
da soddisfare, anche in modo approssimato, la condizione del problema
(z) = . Supponiamo di prendere come funzione modello un polinomio
di terzo grado:
Am (z) = a1 + a2 z + a3 z 2 + a4 z 3

Da considerazioni analoghe viste nella soluzione analitica possiamo de-


terminare l'azione interna
z2 z3 z4
Z  
Nm (z) = A(z)dz = a1 z + a2 + a3 + a4 + A
2 3 4

dove l'ultimo termine deriva dall'ipotesi della costanza di (z), infatti

N (0) k
(0) = = k = A
A(0) A

Per specicare completamente l'andamento Am (z) necessario determi-


nare i coecienti ai con i {1, 2, 3, 4}.
Possiamo ora formulare il problema di ottimizzazione riferendoci sempre
al problema generale (2.2). Prima di tutto occorre determinare la funzio-
ne obiettivo, il nostro scopo quello di determinare un andamento Am (z)
tale per cui le sollecitazioni (z) siano costanti e pari a , cio

Nm (z)
m (z) = =
Am (z)
CAPITOLO 5. APPLICAZIONI 45

Se consideriamo una trave di lunghezza unitaria possiamo specicare un


set di punti discreto

Zp = {0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0}

che verranno presi come punti di riscontro nei quali calcolare la solle-
citazione con il modello m (z) e confrontarla con la sollecitazione , la
sollecitazione costante che vogliamo che si instauri nella trave. Possiamo
formulare il problema nel seguente modo:

(5.4)
X
min |m (z) |
aA
Zp

dove a = (a1 , a2 , a3 , a4 ) il vettore dei coecienti incogniti, m (z) il


valore della sollecitazione assiale calcolato mediante il modello e Zp
P

indica la sommatoria calcolata per ogni z Zp . L'insieme ammissibile A


viene posto secondo la seguente relazione:

A = [0.995, 1.005] [0, 50] [25, 25] [25, 25]

e per semplicit si considerano

= 1 N/m3
= 1 P a
A = 1 m2 .

Si osserva che il coeciente a1 l'area iniziale dell'asta, anche se un va-


lore noto questo si lascia comunque variare in modo da permettere l'asse-
stamento del modello durante il processo di ottimizzazione evolutiva. La
denizione dell'insieme ammissibile una parte importante nel processo
di ottimizzazione mediante algoritmi evolutivi e richiede una calibrazio-
ne che necessita di considerazioni analitiche, se pur approssimative, sul
modello e alcuni tentativi di computazione. Un approfondimento verr
presentato nel prossimo esempio di applicazione. Per l'ottimizzazione
stato utilizzato, in riferimento alla (5.1), l'algoritmo

EA = (50, rg , 0.5, mN , 0.5, (, 20)) (5.5)


CAPITOLO 5. APPLICAZIONI 46

cio con una popolazione di 50 individui, una ricombinazione interme-


dia generalizzata con la probabilit di ricombinazione di 0.5. Il simbolo
mN indica la tipica mutazione dovuta ad una distribuzione normale co-
me quella trattata nelle strategie evolutive con la relativa probabilit
pm = 0.5. Con il simbolo (, 20) indichiamo la cosiddetta selezione eli-
tist, questo tipo di selezione sceglie 20 individui migliori della vecchia
popolazione e i restati individui sono scelti casualmente dalla popolazio-
ne dei gli. importante notare che tale algoritmo rappresenta un ibrido
tra i due tipi presentati nel precedente capitolo.

I risultati

Evoluzione Eiffel
1

Soluzione analitica
5 iterazioni
0,8 10 iterazioni
20 iterazioni
25 iterazioni
50 iterazioni
100 iterazioni
0,6
z

0,4

0,2

0
1 1,5 2 2,5 3
A(z)

Figura 5.2: Evoluzione del modello Am (z)

Dall'ottimizzazione si ottengono i quattro coecienti e dopo cento


iterazioni si ottiene la forma denitiva della funzione modello:

Am (z) = 0.9987 + 0.9082z + 0.6537z 2 + 0.1826z 3

Possiamo rappresentare l'evoluzione del modello Am (z) all'aumentare


delle iterazioni osservando in gura (5.2) come questo si sviluppa e coin-
cide sostanzialmente con la soluzione analitica. Risulta evidente come il
CAPITOLO 5. APPLICAZIONI 47

Scarto medio
0,5

Scarto medio

0,4

0,3
Scarto medio

0,2

0,1

0
0 10 20 30 40 50 60 70 80 90 100
Iterazioni

Figura 5.3: Convergenza del modello A(z)

processo evolutivo iterazione dopo iterazione cerchi di trovare la soluzio-


ne migliore adattandosi alle condizioni del problema. Si nota, inoltre, la
forma dell'esponenziale che ricorda la forma della torre Eiel. In gura
(5.3) rappresentato invece l'andamento dello scarto medio |m | del
modello valutato sul set di punti Zp in funzione del numero di iterazioni,
si osserva qui la convergenza dell'algoritmo evolutivo.

5.3 Esempio di calibrazione di un modello

costitutivo uniassiale nel campo plastico

Il problema
Passiamo ora ad un esempio del tutto dissimile rispetto al precedente. In
questo caso prendiamo in considerazione i dati in gura (5.4), derivati dai
punti indicati nelle tabelle (5.1),(5.2) e (5.3), rappresentanti l'andamento
degli sforzi in funzione della deformazione plastica p a temperature
diverse, in particolare a T = 20 C , T = 100 C , e T = 200 C , ottenuti
sperimentalmente per un metallo.
CAPITOLO 5. APPLICAZIONI 48

900

T=20 C
T=100 C
800 T=200 C
Sollecitazioni [Mpa]

700

600

500

400
0 0,05 0,1
Deformazioni

Figura 5.4: Dati sperimentali = (p , T )

Per semplicit si assume che il modello che lega la tensione alle


deformazioni plastiche p sia esprimibile da:

= k1 (T ) + k2 (T )kp3 (T ) (5.6)

che contiene tre coecienti dipendenti dalla temperatura dove il primo


proprio la tensione di snervamento alla temperatura T , cio k1 (T ) =
sn (T ). Seppur la formulazione di modelli, cio della loro forma relativa
alle funzioni ed equazioni che contengono, non il nostro obiettivo pu
essere utile notare che il modello proposto sembra essere un buon punto di
partenza per approssimare l'andamento sperimentale. Si nota facilmente
infatti che k1 (T ) sia la sollecitazione di snervamento alla temperatura
T , che il coeciente k2 (T ) in qualche modo legato alla rigidezza del
materiale e l'esponente k3 (T ) debba essere t.c. 0 k3 (T ) 1. Ma come
gi introdotto il nostro scopo quello di tener presente direttamente la
dipendenza dalla temperatura e in particolare supponiamo di tener pre-
sente il seguente modello = m (p , T ) di cui supponiamo di conoscere
CAPITOLO 5. APPLICAZIONI 49

p [Mpa]
0 661.76
0.0023172369 747.63882
0.0027509139 766.12639
0.0038750308 784.61396
0.0077289578 803.10154
0.018986375 821.58911
0.046390802 840.07668
0.10438747 858.56426
Tabella 5.1: Tabella per T = 20 C
p [Mpa]
0 470.02636
0.0023624385 600.83728
0.0031229663 627.44595
0.0042994341 654.05462
0.007249952 680.66328
0.01503796 707.27195
0.033192308 733.88062
0.070490476 760.48928
Tabella 5.2: Tabella per T = 100 C

il valore sn (T ) la sollecitazione di snervamento alla temperatura T :


x2 (x3 +x4 T +x5 T 2 )
m (, T ) = sn (T ) + (x1 )
T p

Ci poniamo ora il problema di determinare i coecienti incogniti in


modo da approssimare sucientemente le curve della prova sperimentale.

Ottimizzazione del problema


Il nostro obiettivo, quindi, di determinare i coecienti xi con i
{1, 2, 3, 4, 5} in modo da minimizzare la dierenza tra gli sforzi calcolati
con il modello m (p , T ) e gli sforzi ottenuti sperimentalmente. Possiamo
quindi formulare il problema di ottimizzazione:

(5.7)
X
min |m (jp (T ), T ) (jp (T ), T )|
xA
j

dove le jp (T ) indicano le deformazioni plastiche sperimentali j-esime


alla temperatura T , cio tutte le deformazioni plastiche delle tabelle
(5.1),(5.2) e (5.3). La scelta degli intervalli di ammissibilit delle in-
CAPITOLO 5. APPLICAZIONI 50

p [Mpa]
0 411.41766
0.0025361891 529.87728
0.0036718313 561.08768
0.0053549535 592.29809
0.0089285457 623.50849
0.016919868 654.71889
0.03331027 685.92929
0.063774132 717.13969
Tabella 5.3: Tabella per T = 200 C

cognite basata su considerazioni siche relative al problema e una pri-


ma analisi matematica del modello insieme ad alcune prove di tentativo.
Procediamo per tentativi:

il coeciente x1 fa parte della componente k1 (T ) e in un certo senso


ha a che fare con la rigidezza del materiale ed essendo in campo
plastico possiamo provare un intervallo di tentativo non troppo
vasto ma ragionevole:

x1 [0, 10000]

il coeciente x2 moltiplica l'inverso della temperatura che varia da


20 C a 200 C , possiamo supporre che l'indice k1 (T ) non sia molto
inuenzato da T e quindi potremmo provare con l'intervallo:

[0, 100]

i coecienti x3 , x4 e x5 invece indicano l'esponente, si osserva che


questo varia tra zero e uno, considerando la dipendenza dalla tem-
peratura ragionevole considerare che al crescere degli indici il loro
ordine di grandezza diminuisca, quindi:

x3 [0, 1]
x4 [0, 0.1]
x5 [0, 0.01].
CAPITOLO 5. APPLICAZIONI 51

Calibrazione dellambiente
900

T=20C
T=100C
800 T=200C
Calibrazione 20 C
Calibrazione T= 100C
Calibrazione T= 200 C

700
Sforzo [Mpa]

600

500

400
0 0,05 0,1
Deformazione plastica

Figura 5.5: Calibrazione dell'ambiente per il problema plastico

Ricapitolando, l'insieme ambiente di tentativo :

A = [0, 10000] [0, 100] [0, 1] [0, 0.1] [0, 0.01]

L'algoritmo evolutivo utilizzato in questo caso

EA = (100, rg , 0.5, mN , 0.5, (, 40))

con lo stesso signicato dei termini gi visto per la (5.5). Procedento con
il processo di ottimizzazione otteniamo gli andamenti in gura (5.5) e i
seguenti valori per i coecienti dopo quattrocento iterazioni:

x1 = 5.3495727629 102
x2 = 2.0514232557 101
x3 = 2.2623681838 101
x4 = 0.0
x5 = 0.0
CAPITOLO 5. APPLICAZIONI 52

Dai valori dei coecienti ottenuti e dalla forma del graco si pu intuire
che:

il coeciente x1 durante l'evoluzione ha raggiunto un valore ben al


di sotto del limite superiore del suo intervallo ammissibile, possiamo
quindi restringere il suo intervallo ammissibile intorno al valore
ottenuto;

x2 ha subito un abbassamento sostanzioso, ragionevole pensare


di abbassare il limite superiore del suo intervallo ammissibile;

x3 ha un valore in linea con le previsioni e quindi si presuppone che


il suo intervallo ammissibile precedentemente ssato sia adeguato;

x4 e x5 sono identicamente nulli, sono cio al limite inferiore del


loro intervallo ammissibile, possiamo quindi presumere di includere
anche dei valori negativi per entrambi mantenendo comunque una
ampiezza ristretta.

Il processo di ottimizzazione nella fase di calibrazione dell'insieme am-


missibile A procede quindi per successivi tentativi e analisi dei risultati
analogamente a come appena fatto no, in pochi passaggi, a raggiunge-
re un insieme ambiente piuttosto ristretto. D'ora in avanti , per questo
esempio, verr preso in considerazione il seguente insieme ambiente:

A = [200, 1000][0, 2][0, 1][5103 , 5103 ][2.5105 , 2.5105 ]

I risultati
Il processo di ottimizzazione dopo quattrocento iterazioni porta alla for-
mazione del seguente modello:
 
0.6076 (0.32192.079103 T +6.786106 T 2 )
m = sn (T ) + 490.4 + p
T

Ricoridamo che il risultato stato ottenuto attraverso il processo di ot-


timizzazione di tutte e tre le curve contemporaneamente. Per chiarezza
di rappresentazione per analizziamo l'evoluzione del modello una curva
alla volta. In questo caso si osserva una tendenza lieve di assestamen-
to causata dal fatto che l'insieme ammissibile A risulta essere piuttosto
compatto. Occorre inoltre notare che per la temperatura T = 20 C ,
CAPITOLO 5. APPLICAZIONI 53

Evoluzione 20C
1000

T=20C
400 iterazioni
80 iterazioni
40 iterazioni
900
Sforzo [Mpa]

800

700

600
0 0,05 0,1 0,15 0,2
Deformazione plastica

Figura 5.6: Evoluzione del modello con T = 20 C

in gura (5.6), il modello ipotizzato non adatto per rappresentare fe-


delmente l'andamento della curva sperimentale anche se il processo di
ottimizzazione, che ricordiamo ancora una volta riguarda tutte e tre le
curve contemporaneamente, al suo culmine. D'altra parte per le tem-
perature superiori, gure (5.7) e (5.8) vi una migliore sovrapposizione
che per resa dicoltosa dalla particolare curva dei dati sperimenta-
li che crescono rapidamente e poi si appiattiscono pi bruscamente di
come faccia il modello. Per evidenziare i limiti del modello possiamo
rappresentare i risultati che si otterrebbero se si ottimizzassero una ad
una le tre curve senza tener presente la dipendenza dalla temperatura e
considerando il modello (5.6).
Notiamo che, una ad una, le curve in gura (5.9) comunque non si
assestano mai sul gomito formato dai dati sperimentali, questo mostra da
un lato l'inecenza del modello e dall'altro la complessita del problema.
CAPITOLO 5. APPLICAZIONI 54

Evoluzione 100C
900

T=100C
400 iterazioni
800 80 iterazioni
40 iterazioni

700
Sforzo [Mpa]

600

500

400
0 0,05 0,1
Deformazione plastica

Figura 5.7: Evoluzione del modello con T = 100 C

Evoluzione T=200C
900

T=200C
400 iterazioni
800 80 iterazioni
40 iterazioni

700
Sforzo [Mpa]

600

500

400
0 0,05 0,1
Deformazione plastica

Figura 5.8: Evoluzione del modello con T = 200 C


CAPITOLO 5. APPLICAZIONI 55

Ottimizzazione a T=cost.
900

800

700 T=20C
Sforzo [Mpa]

T=100C
T=200C
Ottimizzazione T=20C (cost.)
Ottimizzazione T=100C (cost.)
600 Ottimizzazione T=200C (cost.)

500

400
0 0,05 0,1
Deformazione plastica

Figura 5.9: Andamento dei modelli ottimizzati considerando una curva


alla volta
Capitolo 6
Conclusioni

Considerando i risultati ottenuti gli algoritmi evolutivi si rivelano un ot-


timo strumento per la determinazione all'interno dei modelli di parametri
caratteristici che completano la denizione degli stessi. Si possono facil-
mente applicare ad una variet di problemi e rappresentano un metodo
robusto utilizzabile anche nei casi pi critici e che pu agevolmente essere
adattato e calibrato in relazione al problema da arontare. Se da un lato
sono dicilmente studiabili teoricamente sono particolarmente semplici
nella loro struttura e si prestano comodamente all'utilizzo.
Operativamente per la determinazione dei parametri di un modello oc-
corre denire il modello di ottimizzazione individuando un'opportuna
funzione obiettivo. La funzione obiettivo pu avere diverse forme ed ave-
re una denizione pi o meno complessa. Il passo successivo consiste
in una prima stima qualitativa dei parametri legata alla struttura del
modello e alle previsioni di natura pratica. Questa iniziale analisi ha lo
scopo di delimitare lo spazio di ricerca in modo da massimizzare l'eca-
cia del processo di ottimizzazione ed una fase molto importante per la
determinazione dei parametri. Inne applicando un algoritmo evolutivo
si determinano i parametri del modello e analizzando l'evoluzione dello
stesso possibile in prima approssimazione valutare la precisione e com-
pletezza del modello.
Dal punto di vista dell'ottimizzazione numerica gli algoritmi evolutivi
sono dei metodi stocastici e presentano il grande vantaggio di essere dei
metodi globali. D'altro canto, la loro dipendenza dalla casualit, in un
certo senso ne limita le prestazioni dal punto di vista della convergenza e
dell'accuratezza. La determinazione dei parametri mediante un algorit-
mo evolutivo, infatti, non porta ad ottenere dei risultati estremamente

56
CAPITOLO 6. CONCLUSIONI 57

precisi cos come si potrebbe ottenere con gli altri metodi numerici. Ma,
come abbiamo visto nelle applicazioni, l'accuratezza degli algoritmi evo-
lutivi, seppur non all'altezza degli altri metodi numerici, porta comunque
ad ottenere dei risultati che sono, ci nonostante, concretamente corretti
e in certi casi particolarmente preziosi in quanto ottenibili soltanto con
l'ottimizzazione evolutiva. Nell'applicazione degli algoritmi evolutivi vi
sono due fasi particolarmente delicate e che rappresentano quindi le prin-
cipali criticit di questo approccio. La prima dicolt la formulazione
di una funzione obiettivo, il processo che in certi casi potrebbe non es-
sere banale. Inoltre il risultato dell'ottimizzazione dipende sempre dalla
forma della funzione obiettivo e quindi la sua denizione un passag-
gio importante. La seconda questione la determinazione dei limiti dei
parametri. Da un lato gli algoritmi evolutivi necessitano di limitare l'in-
sieme ammissibile di ogni variabile in un intervallo chiuso che dicile
da valutare. Dall'altro, la determinazione dei parametri di un modello
con l'ottimizzazione mediante gli algoritmi evolutivi non tiene conto del
possibile legame tra essi. Pu capitare, infatti, che alcuni parametri non
abbiano senso sico e tra essi intercorrono delle eventuali relazioni che
non possono essere valutate e considerate dall'algoritmo risolutivo che
quindi pu portare a dei risultati non attenidibili.
Gli algoritmi evolutivi, nati ormai quasi mezzo secolo f, sono per tutt'o-
ra raramente utilizzati nella pratica malgrado le loro potenzialit. Parti-
colarmente interessanti da considerare sono le tecniche di ottimizzazione
ibrida con gli algoritmi evolutivi. Questo approccio consiste nell'ottimiz-
zare prima utilizzando un algoritmi evolutivo, che determina i parametri
operando a livello globale, e poi utilizzare la soluzione ottenuta come il
punto di partenza per un metodo numerico locale che assicura una mi-
gliore accuratezza. Un'altra aascinante possibilit l'implementazione
dei meccanismi evolutivi per la determinazione non solo dei parametri
ma anche delle funzioni ed equazioni del modello. La struttura e il
funzionamento degli algoritmi evolutivi, infatti, si adattano anche alla
rappresentazione e manipolazione non solo di dati numerici, ma anche
di oggetti pi complessi, come funzioni e istruzioni no ad arrivare alla
cosiddetta programmazione evolutiva. Con loro caratteristiche gli algo-
ritmi evolutivi possono essere largamente impiegati nell'ottimizzazione
strutturale, nella ricerca operativa e nella progettazione assistita no a
sconnare in discipline molto diverse fra loro rappresentando un fertile
settore di ricerca.
Appendice A
File di input per Dakota

A.1 Ottimizzazione di minimo peso

# BEGIN DAKOTA in-eiffel.in


environment
tabular_data
tabular_data_file='dat-eiffel.dat'
output_file='out-eiffel.out'
error_file='err-eiffel.err'
method
coliny_ea
seed 1100101
population_size=50
initialization_type
unique_random
fitness_type
merit_function
replacement_type
elitist=20
mutation_type
offset_normal
mutation_rate=0.5
crossover_type
blend
crossover_rate=0.5
max_iterations=100
max_function_evaluations=10000

58
APPENDICE A. FILE DI INPUT PER DAKOTA 59

model
single
variables
continuous_design 4
descriptors 'a1' 'a2' 'a3' 'a4'
initial_point 1.0 25.0 0.0 0.0
lower_bounds 0.995 0.0 -25.0 -25.0
upper_bounds 1.005 50.0 25.0 25.0
interface
analysis_driver='/home/ratibor/work_dir/tesi/Eiffel/smlink_eiffel'
fork
parameters_file='enter_eiffel.in'
results_file='exit_eiffel.out'
responses
descriptors 'objF'
objective_functions 1
no_gradients
no_hessians

# END DAKOTA in-eiffel.in


APPENDICE A. FILE DI INPUT PER DAKOTA 60

A.2 Calibrazione di un modello costitutivo

uniassiale nel campo plastico

# BEGIN Dakota in-plastico.in

environment
tabular_data
tabular_data_file = 'dat-plastico.dat'
output_file = 'out-plastico.out
error_file = 'err-plastico.err
method
coliny_ea
seed 1100101
population_size = 100
initialization_type
unique_random
fitness_type
merit_function
replacement_type
elitist 40
mutation_type
offset_normal
mutation_rate 0.5
crossover_type
blend
crossover_rate 0.5
max_iterations = 400
max_function_evaluations = 35000
model
single
variables
continuous_design = 6
descriptors 'x1' 'x2' 'x3' 'x4' 'x5' 'x6'
initial_point 283 1.0 0.00001 0.15 0.0 0.0
lower_bounds 200 1.0 0.0 0.0 -5E-3 -2.5E-5
upper_bounds 1000 1.0 2.0 1.0 5E-3 2.5E-5
interface
APPENDICE A. FILE DI INPUT PER DAKOTA 61

analysis_driver='/home/ratibor/work_dir/tesi/Plastico/smlink_plastico'
fork
parameters_file = 'enter_plastico.in'
results_file = 'exit_plastico.out'
responses
descriptors 'objF'
objective_functions = 1
sense = 'min'
no_gradients
no_hessians

# END Dakota in-plastico.in


Appendice B
Codici in Fortran 90 per
l'interfaccia

B.1 Ottimizzazione di minimo peso

PROGRAM smlink_eiffel

! Purpose:
! Dakota interface simulation.
!
! Record of revisions:
! Date Hour Programmer Description of change
! 26/09/17 18:39 Ratibor Shevchenko Original Code

IMPLICIT NONE

! Declaration
REAL(kind=16), DIMENSION(4) :: a !Unknown coefficients
REAL(kind=16) :: objF !Objective function
REAL(kind=16), PARAMETER, DIMENSION(10) :: z= & !'z' set
(/ 0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1./)
REAL(kind=16), PARAMETER :: Sconst = 1.

REAL(Kind=16) :: sigma
REAL(kind=16) :: surface
REAL(kind=16) :: axial
REAL(kind=16) :: S

62
APPENDICE B. CODICI IN FORTRAN 90 PER L'INTERFACCIA 63

REAL(kind=16) :: N

INTEGER :: i
CHARACTER(len=25) :: row

! Opening of the input and output files of the process


OPEN(UNIT=100,FILE='enter_eiffel.in',STATUS='OLD', &
ACTION='READ')
OPEN(UNIT=200,FILE='exit_eiffel.out',STATUS='REPLACE', &
ACTION='WRITE')

!! BEGIN DEBUG STATEMENTS


!! DEBUG ROWS: remove comment signs and edit the previous 2 rows
!! Opening of the DEBUG input and output files
!! OPEN(UNIT=100,FILE='debug_enter_eiffel.in',STATUS='OLD', &
!! ACTION='READ')
!! OPEN(UNIT=200,FILE='debug_exit_eiffel.out',STATUS='REPLACE', &
!! ACTION='WRITE')
!! END DEBUG STATEMENTS

! Reading the Dakota input file variables


READ(100,*) row
DO i=1,4
READ(100,*) a(i)
END DO

!! BEGIN DEBUG STATEMENTS


!! DEBUG ROWS: remove comment signs
!! WRITE(200,*) row1,' FROM "debug_enter_plastico.in" file'
!! DO i=1,4
!! WRITE(200,*) a(i),' a(i)'
!! END DO
!! END DEBUG STATEMENTS

! Calculating the objective function value


APPENDICE B. CODICI IN FORTRAN 90 PER L'INTERFACCIA 64

objF=0.
DO i=1,10
N=axial(z(i),a)
S=surface(z(i),a)
objF=objF+(sigma(N,S)-Sconst)**2

!! BEGIN DEBUG STATEMENTS


!! DEBUG ROWS: remove comment signs
!! WRITE(200,*) N,' axial(z(i),a)'
!! WRITE(200,*) S, ' surface(z(i),a)'
!! WRITE(200,*) objF, ' objF'
!! END DEBUG STATEMENTS

END DO

! Writing of the obtained value in the output file


WRITE(200,*) objF,' objF'

! Closing of the opened files


CLOSE(100)
CLOSE(200)

!
STOP
END PROGRAM

! Function to evaluate the sigma(N,S) value.


REAL(kind=16) FUNCTION sigma(N,S)

IMPLICIT NONE

REAL(kind=16) :: N
APPENDICE B. 65
CODICI IN FORTRAN 90 PER L'INTERFACCIA

REAL(kind=16) :: S

IF (S/=0.) THEN
sigma=N/S
ELSE
WRITE(*,*) 'Warning!!! Fatal error: S==0'
END IF

END FUNCTION

! Function to evaluate the axial(z,a) value.


REAL(kind=16) FUNCTION axial(z,a)

IMPLICIT NONE

REAL(kind=16), PARAMETER :: gamma=1.


REAL(kind=16), PARAMETER :: Sconst=1.
REAL(kind=16), INTENT(IN) :: z
REAL(kind=16), DIMENSION(4), INTENT(IN) :: a
REAL(kind=16) :: N
INTEGER :: i

N=0.
DO i=1,4
N=N+a(i)*z**i/REAL(i)
END DO

axial=gamma*N+Sconst*a(1)

END FUNCTION
APPENDICE B. 66
CODICI IN FORTRAN 90 PER L'INTERFACCIA

! Function to evaluate the surface(z,a) value.


REAL(kind=16) FUNCTION surface(z,a)

IMPLICIT NONE

REAL(kind=16), INTENT(IN) :: z
REAL(kind=16), DIMENSION(4), INTENT(IN) :: a
REAL(Kind=16) :: S
INTEGER :: i

S=0.
DO i=1,4
S=S+(a(i)*z**(i-1))
END DO

surface=S

END FUNCTION
APPENDICE B. CODICI IN FORTRAN 90 PER L'INTERFACCIA 67

B.2 Calibrazione di un modello costitutivo

uniassiale nel campo plastico

PROGRAM smlink_plastico

! Purpose:
! Dakota interface simulation for in-plastico.in
!
! Record of revisions:
! Date Hour Programmer Description of change
! 01/10/17 20:46 Ratibor Shevchenko Original Code

IMPLICIT NONE

! Declaration and definition of the variables


REAL(kind=16), DIMENSION(6) :: x !Input Dakota variables
REAL(kind=16) :: objF !Output variable to send to Dakota
CHARACTER(len=25) :: row1 !The first line of the input file
INTEGER :: i
INTEGER :: j
INTEGER :: k
REAL(kind=16) :: sigmaModel !The sigma value of the model

! Experimental data
! Temperature values for 20, 100 and 200 Celsius:
REAL(kind=16), DIMENSION(3) :: T= (/ 20.,100.,200. /)
! Epsilon values:
REAL(kind=16), DIMENSION(8,3), PARAMETER :: epsilon=RESHAPE( &
(/ 0., 0.0023172369, 0.0027509139, 0.0038750308, 0.0077289578, &
0.018986375, 0.046390802, 0.10438747, &
0., 0.0023624385, 0.0031229663, 0.0042994341, 0.007249952, &
0.01503796, 0.033192308, 0.070490476,&
0., 0.0025361891, 0.0036718313, 0.0053549535, 0.0089285457, &
0.016919868, 0.03331027, 0.063774132 /),(/8,3/))
! Sigma values for 20, 100 and 200 Celsius:
REAL(kind=16), DIMENSION(8,3), PARAMETER :: sigma=RESHAPE( &
(/ 661.76, 747.63882, 766.12639, 784.61396, 803.10154, &
APPENDICE B. CODICI IN FORTRAN 90 PER L'INTERFACCIA 68

821.58911, 840.07668, 858.56426, &


470.02636, 600.83728, 627.44595, 654.05462, 680.66328, &
707.27195, 733.88062, 760.48928, &
411.41766, 529.87728, 561.08768, 592.29809, 623.50849, &
654.71889, 685.92929, 717.13969 /) ,(/8,3/))

! Opening of the input and output files of the process


OPEN (UNIT=100, FILE='enter_plastico.in', STATUS='OLD', &
ACTION='READ')
OPEN (UNIT=200, FILE='exit_plastico.out', STATUS='REPLACE', &
ACTION='WRITE')

!! BEGIN DEBUG STATEMENTS


!! DEBUG ROWS: remove comment signs and edit the previous 2 rows
!! Opening of the DEBUG input and output files
!! OPEN (UNIT=100, FILE='debug_enter_plastico.in', STATUS='OLD', &
!! ACTION='READ')
!! OPEN (UNIT=200, FILE='debug_exit_plastico.out', STATUS='REPLACE', &
!! ACTION='WRITE')
!! END DEBUG STATEMENTS

! Reading the Dakota input file variables


READ(100,*) row1
DO k=1,6
READ(100,*) x(k)
END DO

!! BEGIN DEBUG STATEMENTS


!! DEBUG ROWS: remove comment signs
!! WRITE(200,*) row1,' FROM "debug_enter_plastico.in" file'
!! DO i=1,6
!! WRITE(200,*) x(i),' x(i)'
!! END DO
!! END DEBUG STATEMENTS
APPENDICE B. CODICI IN FORTRAN 90 PER L'INTERFACCIA 69

! Calculating the objective function value


objF=0
DO i=1,3
DO j=1,8
objF = objF + ABS( sigmaModel(x,epsilon(j,i),T(i),i) - sigma(j,i) )

!! BEGIN DEBUG STATEMENTS


!! DEBUG ROWS: remove comment signs
!! WRITE(200,*) sigmaModel(x,epsilon(j,i),T(i)), &
!! ' sigmaModel(x,epsilon(j,i),T(i))'
!! WRITE(200,*) sigma(j,i), ' sigma(j,i)'
!! WRITE(200,*) ABS( sigmaModel(x,epsilon(j,i),T(i)) - sigma(j,i) ), &
!! ' Difference (sigmaModel-sigma)'
!! END DEBUG STATEMENTS

END DO
END DO

! Writing of the obtained value in the output file


WRITE(200,*) objF,' objF'

! Closing of the opened files


CLOSE(100) !Closing the input file
CLOSE(200) !Closing the output file

!
STOP
END PROGRAM

! Function to evaluate the sigmaModel(x,eps,i) value


REAL(kind=16) FUNCTION sigmaModel(x,eps,T,i)
APPENDICE B. CODICI IN FORTRAN 90 PER L'INTERFACCIA 70

IMPLICIT NONE

REAL(kind=16), INTENT(IN), DIMENSION(6) :: x


REAL(kind=16), PARAMETER, DIMENSION(3) :: sigmaSnerv = &
(/ 661.76, 470.02636, 411.41766 /)
REAL(kind=16), INTENT(IN) :: eps
REAL(kind=16), INTENT(IN) :: T
INTEGER, INTENT(IN) :: i

IF (ABS(eps)>1.0E-10) THEN
sigmaModel=sigmaSnerv(i) + ( x(1)-x(2)*x(3)/T ) * &
EXP( (x(4)+X(5)*T+X(6)*T**2)*LOG(eps) )
ELSE
sigmaModel=sigmaSnerv(i)
END IF

END FUNCTION
Bibliograa

[1] Vercellis C. (2008) - Ottimizzazione. Teoria, metodi, applicazioni. -


McGraw-Hill, Milano.

[2] Fourer R., Gay D. M. e Kernighan B.W. (1993) - AMPL: A Mode-


ling Language for Mathematical Programming. - The Scientic Press,
South San Francisco, CA.

[3] Wilson R.B. (1963) - Operations Research. - Wadsworth Publishing


Co., terza edizione.

[4] Rardin R.L. (1998) - Optimization in Operations Research. - Prentice


Hall, Englewood Clis, NJ.

[5] Nocedal J., Wright S.J. (1999) - Numerical Optimization. - Springer


Series in Operations Research. Springer, seconda edizione.

[6] Serani P. (2000) - Ottimizzazione. - Zanichelli.

[7] Wets R.J.-B. (1989)- Handbooks in Operations Reasearch and


Management Science, Volume 1, Optimization, capitolo VIII.
[8] King Alan J., Wallace Stein W. (2012) - Modeling with Stochastic
Programming. - Springer.
[9] Ehrgott M. (2005) - Multicriteria Optimization, seconda edizione. -
Springer.

[10] Darwin C. (2010) - L'origine delle specie. - Newton Compton.

[11] Campbell N., Reece J. (2009) - Biologia. 2: La genetica. - Pearson


Paravia Bruno Mondadori S.p.A.

[12] Russel P.J., Wolfe S.L., etc. (2008) - Biologia evoluzionistica e


biodiversit. - Estratto da Biologia versione integrale. EdiSES S.r.l.

71
BIBLIOGRAFIA 72

[13] Mitchell M. (1998) - Introduzione agli algoritmi genetici - Apogeo


srl

[14] Bck T. (1996) - Evolutionary Algorithms in Theory and Practice -


Oxford University Press

[15] Beyer H.G. (2001) - The Theory of Evolution Strategies - Springer

[16] Goldberg D. E. (1998) - Genetic Algorithms in search, Optimization


and Machine Learning - Addison Wesley Longman

[17] Holland J.H. (1975) - Adaptation in natural and articial systems -


The University of Michigan Press

[18] Sandia National Laboratories (2014) - Dakota, A Multilevel Pa-


rallel Object-Oriented Framework for Design Optimization, Pa-
rameter Estimation, Uncertainty Quantication, and Sensitivity
Analysis: Version 6.6 User's Manual - Disponibile all'indirizzo
http://dakota.sandia.gov/documentation.html.
[19] Sandia National Laboratories (2014) - Dakota, A Multilevel Paral-
lel Object-Oriented Framework for Design Optimization, Parame-
ter Estimation, Uncertainty Quantication, and Sensitivity Ana-
lysis: Version 6.5 Reference Manual - Disponibile all'indirizzo
http://dakota.sandia.gov/documentation.html.
[20] Chapman S.J. (1998) - Fortran 90/95 for Scientists and Engineers
- McGraw-Hill.