21
Capitolo 3 Capitolo 3 Applicazioni degli algoritmi evolutivi al monitoraggio strutturale 3.1 Introduzione Obiettivo principale dell’analisi numerica è quello di trovare algoritmi che risolvono un dato problema (per esempio la ricerca di un estremo di una funzione ad n variabili) nel minimo tempo e con la massima accuratezza. Un algoritmo può essere definito come una successione finita d’istruzioni o passi che definiscono le operazioni da eseguire su dei dati, i quali formano l'istanza di un problema, per ottenere dei risultati, intesi come la soluzione dell'istanza specificata. Un algoritmo è sempre definito supponendo che esso interagisca con un ambiente esterno, dal quale acquisisce dei dati e verso il quale comunica messaggi; ogni istruzione opera su dei dati per fornire altri dati. Alcune delle proprietà importanti di cui deve godere un algoritmo sono [19]: Correttezza: un algoritmo deve essere in grado di raggiungere la soluzione senza errori. Finitezza: l'algoritmo deve comporsi di un numero finito d’istruzioni. Definitezza: le istruzioni devono essere espresse chiaramente ed il passaggio da un'istruzione all'altra deve avvenire in modo esplicito. Risolutività: l'algoritmo deve produrre un messaggio d'uscita che consista nella soluzione del problema, o nella diagnostica sulla mancata soluzione nel caso in cui l’algoritmo non produca soluzione. 18

Capitolo 3 Applicazioni degli algoritmi evolutivi al ... · Un algoritmo è sempre definito supponendo che esso interagisca con un ambiente esterno, dal quale acquisisce dei dati

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Capitolo 3 Applicazioni degli algoritmi evolutivi al ... · Un algoritmo è sempre definito supponendo che esso interagisca con un ambiente esterno, dal quale acquisisce dei dati

Capitolo 3

Capitolo 3

Applicazioni degli algoritmi evolutivi al monitoraggio strutturale

3.1 Introduzione

Obiettivo principale dell’analisi numerica è quello di trovare algoritmi che risolvono un

dato problema (per esempio la ricerca di un estremo di una funzione ad n variabili) nel

minimo tempo e con la massima accuratezza.

Un algoritmo può essere definito come una successione finita d’istruzioni o passi che

definiscono le operazioni da eseguire su dei dati, i quali formano l'istanza di un

problema, per ottenere dei risultati, intesi come la soluzione dell'istanza specificata.

Un algoritmo è sempre definito supponendo che esso interagisca con un ambiente

esterno, dal quale acquisisce dei dati e verso il quale comunica messaggi; ogni

istruzione opera su dei dati per fornire altri dati.

Alcune delle proprietà importanti di cui deve godere un algoritmo sono [19]:

Correttezza: un algoritmo deve essere in grado di raggiungere la soluzione senza

errori.

Finitezza: l'algoritmo deve comporsi di un numero finito d’istruzioni.

Definitezza: le istruzioni devono essere espresse chiaramente ed il passaggio da

un'istruzione all'altra deve avvenire in modo esplicito.

Risolutività: l'algoritmo deve produrre un messaggio d'uscita che consista nella

soluzione del problema, o nella diagnostica sulla mancata soluzione nel caso in

cui l’algoritmo non produca soluzione.

18

Page 2: Capitolo 3 Applicazioni degli algoritmi evolutivi al ... · Un algoritmo è sempre definito supponendo che esso interagisca con un ambiente esterno, dal quale acquisisce dei dati

Capitolo 3

Per risolvere un problema si possono applicare algoritmi diversi (e lo stesso algoritmo

applicato a problemi diversi, può comportarsi diversamente) ed ovviamente i risultati

ottenuti devono essere identici, o per lo meno compatibili con una prefissata tolleranza.

Può capitare però che un algoritmo sia migliore di un altro per risolvere certi problemi,

mentre sia meno adatto in altre situazioni.

La scelta di un particolare algoritmo per la risoluzione di un determinato problema è

quindi il risultato di un'analisi comparativa sulla base del loro“costo”e della

loro“accuratezza”.

Gli algoritmi legati ai problemi d’ottimizzazione, ossia a quei problemi che ricercano la

soluzione migliore o”ottima”in un dato insieme di possibili soluzioni, sono uno degli

argomenti principali di cui si occupa l'analisi numerica.

Algoritmi di ottimizzazione sono oggigiorno utilizzati praticamente in ogni disciplina

scientifica: dalla ricerca operativa, ai problemi di controllo, all'identificazione dei

modelli, allo sfruttamento ottimale delle risorse naturali, etc.

Dal punto di vista matematico il problema consiste nell'introdurre un funzionale detto

obiettivo, o criterio, od ancora costo, che misuri la bontà della decisione ed un insieme

di vincoli, descritti da equazioni o più in generale da disequazioni, che definiscano la

zona di ammissibilità della soluzione.

In forma generale, il problema d’ottimizzazione globale si può riassumere con la

seguente definizione [2]:

Data la funzione f : M RR n →⊆ , M ≠ , per ∈*x M

il valore − ∞>= )(:* *xff è chiamato minimo globale se:

∈∀ x M: )(*)( xfxf ≤ (3.1)

Allora, *x è un punto di minimo globale, f è chiamata funzione obiettivo ed M è il

campo d'esistenza.

Il problema di determinare un punto di minimo globale è chiamato problema globale di

ottimizzazione.

Come detto prima, è considerevole la quantità di algoritmi disponibili per la risoluzione

dei problemi di ottimizzazione quindi, data la vastità dell'argomento, si riporteranno qui

di seguito solo gli esempi principali.

19

Page 3: Capitolo 3 Applicazioni degli algoritmi evolutivi al ... · Un algoritmo è sempre definito supponendo che esso interagisca con un ambiente esterno, dal quale acquisisce dei dati

Capitolo 3

Una delle possibili suddivisioni esistenti dei metodi di ottimizzazione è la seguente

[34]:

Metodi diretti : sono quei metodi che danno la soluzione con un numero finito

d’operazioni, costruendo le approssimazioni del punto ottimale utilizzando solo i

valori della funzione f;

Metodi iterativi : la soluzione è ottenuta come limite di una successione di

soluzioni di problemi lineari più semplici; inoltre utilizzano, direttamente o

indirettamente, le derivate della funzione.

Appare evidente da questa prima distinzione che è molto importante disporre di una

gran varietà di algoritmi, dai quali poi poter scegliere il più adatto in funzione della

stabilità, della velocità di esecuzione, della capacità di saper risolvere un particolare

sistema.

Dalla necessità quindi di disporre di un metodo veloce e robusto, dove per robusto si

intende la bontà del metodo di ricerca in termini di efficacia (la soluzione trovata è

effettivamente quella“ottima”) ed efficienza (applicabilità del metodo su sistemi

diversi), nasce l’applicazione degli algoritmi evolutivi.

3.2.L’evoluzione naturale come paradigma computazionale

Nel 1864 Charles Darwin pubblicò“L'origine della specie attraverso la selezione

naturale”[13], testo che rivoluzionò la concezione tradizionale dell'origine della specie

vivente, dando un aspetto organico e definitivo alla concezione deterministica

dell’evoluzione.

Darwin teorizzò che, analogamente alla selezione artificiale operata dall'uomo, anche in

natura dovesse agire un meccanismo simile a causa di un fattore selettivo che doveva

essere individuato nella lotta incessante per la sopravvivenza in un dato ambiente.

Egli sosteneva che il numero d’organismi viventi che nasce è superiore a quello che può

sopravvivere con le risorse disponibili; quindi esiste tra i vari individui una lotta

continua alla sopravvivenza.

20

Page 4: Capitolo 3 Applicazioni degli algoritmi evolutivi al ... · Un algoritmo è sempre definito supponendo che esso interagisca con un ambiente esterno, dal quale acquisisce dei dati

Capitolo 3

In questa lotta prevalgono i più adatti alle condizioni di vita in cui si trovano e

trasmettono i loro caratteri ai discendenti. Questa sopravvivenza del più adatto è la base

della teoria della”selezione naturale”.

Per la maggior parte degli organismi l'evoluzione avviene attraverso i seguenti processi:

selezione naturale, riproduzione sessuale, crossover e mutazione.

La selezione determina quali elementi di una popolazione sopravvivono per riprodursi;

essa opera sulle caratteristiche preesistenti senza produrre nuove funzioni.

La riproduzione rappresenta il fine ultimo di qualunque forma vivente e garantisce il

mescolamento e la ricombinazione dei geni ai discendenti.

Il crossover è quel meccanismo che permette di incrociare i caratteri genetici dei

genitori, in modo tale che i figli abbiano le loro stesse caratteristiche.

Si ha una mutazione quando si verifica un errore da parte di una cellula nel riprodurre il

codice genetico; sebbene la cellula sia in grado di correggere questi errori nei geni

copiati, alcuni di essi possono non essere corretti. Nonostante nella maggior parte dei

casi la mutazione conduca alla generazione di difetti congeniti, si possono verificare

eventi particolari e sporadici nei quali essa può portare ad un miglioramento della

specie; ed è proprio grazie a queste mutazioni che si ha la discendenza comune di tutte

le forme di vita da un unico antenato, mediante variazioni del patrimonio genetico.

Il processo evolutivo s’innesca quando mutazioni casuali o combinazioni di geni

derivate da processi riproduttivi danno origine ad individui migliori dotati quindi di una

fitness maggiore, cioè di un miglior adattamento all’ambiente in cui vivono.

Tali individui tendono a sopravvivere più a lungo (selezione) e a generare più figli, i

quali hanno un’elevata probabilità di presentare quelle stesse caratteristiche positive dei

genitori, cioè quelle caratteristiche che permettono agli individui di aumentare la loro

probabilità di sopravvivenza, a causa del meccanismo di incrocio (crossover) [6].

In questo modo, col passare delle generazioni, la probabilità che un individuo presenti

tali qualità aumenta, fino a divenire una caratteristica della specie.

A livello di popolazione, il risultato di questo processo è l’aumento della fitness degli

individui che la compongono e quindi l’evoluzione della specie.

Questi concetti fondamentali della teoria dell’evoluzione di Darwin rappresentano i

passi logici di soluzione degli Algoritmi Genetici (AG) i quali costituiscono un

sottoinsieme degli Algoritmi Evolutivi (EA).

21

Page 5: Capitolo 3 Applicazioni degli algoritmi evolutivi al ... · Un algoritmo è sempre definito supponendo che esso interagisca con un ambiente esterno, dal quale acquisisce dei dati

Capitolo 3

3.3 Gli algoritmi evolutivi

Il termine algoritmo evolutivo (Evolutionary Algorithms-EA) è utilizzato per descrivere

una classe di sistemi di soluzione di problemi tramite computer, che utilizzano

meccanismi basati sull’analogia con le leggi di evoluzione della specie, quali selezione,

ricombinazione e mutazione come elemento chiave dell'implementazione [2].

Infatti, alla base dei metodi evoluzionistici vi è la teoria dell’evoluzione naturale e la

fondamentale distinzione fra fenotipo, l’individuo così come ci appare nel suo esistere

ed operare, e genotipo, cioè il codice genetico che ne determina le caratteristiche [6].

Un semplice algoritmo evolutivo segue nei caratteri generali il seguente pseudo-codice:

crea una popolazione casuale iniziale;

while (non sono raggiunte le condizioni di terminazione del programma) do

begin

decodifica ogni cromosoma per ottenere un individuo;

assegna il valore di fitness per ciascun individuo;

genera una nuova popolazione, in parte selezionando gli individui con la

fitness più elevata, in parte ricombinando e mutando i loro cromosomi;

ripeti queste operazioni fino ad una condizione di stop;

end

Questo modello è da interpretarsi nel seguente modo [6]: definito un problema da

risolvere, data una codifica (genotipo) mediante la quale si possono rappresentare

soluzioni del problema ed una funzione, detta funzione di fitness in quanto è in grado di

valutare la bontà di ogni soluzione, si genera in maniera casuale una popolazione S(t) di

soluzioni, dove t rappresenta un determinato istante di tempo, e si valuta quindi la

fitness di ciascuna soluzione.

Nel processo evolutivo la fitness misura la capacità di un individuo ad adattarsi

all’ambiente in cui vive e quindi la sua“probabilità di sopravvivenza”.

Negli algoritmi evolutivi la fitness è pertanto il parametro che regola i meccanismi

mediante i quali, a partire da S(t) si crea un nuovo insieme di soluzioni S(t+1); in

particolare caratterizzato da un gran numero di elementi.

22

Page 6: Capitolo 3 Applicazioni degli algoritmi evolutivi al ... · Un algoritmo è sempre definito supponendo che esso interagisca con un ambiente esterno, dal quale acquisisce dei dati

Capitolo 3

Per far ciò, dall’insieme S(t) viene selezionato un sottoinsieme di soluzioni S(t)*, con un

processo probabilistico regolato dai valori di fitness di ciascuna soluzione.

Il nuovo insieme S(t+1) è ottenuto a partire da S(t) mediante tre meccanismi:

Selezione : alcune delle soluzioni, già presenti nell’interazione precedente,

“sopravvivono”e permangono invariate in S(t+1);

Crossover : vengono generate nuove soluzioni (figli) aventi codifiche (genotipi)

derivate da quelle di due o più soluzioni (genitori) di S(t);

Mutazione : vengono generate nuove soluzioni mediante alterazioni casuali della

codifica di soluzioni presenti in S(t).

Tale processo viene arrestato quando si raggiungono soluzioni con fitness

sufficientemente elevata o quando la fitness media cresce al di sotto di una certa soglia,

nel momento cioè in cui tutti gli individui tendono ad essere simili fra loro.

L'utilizzo di questo tipo di algoritmi è per la maggior parte finalizzato ad alcuni casi di

programmazione dell'intelligenza artificiale in robotica, alla biocomputazione, a

particolari problemi di gestione ed a sistemi di ottimizzazione di ingegneria.

L’algoritmo si propone quindi come metodo di ricerca di soluzioni ottime di un

problema definito dall’utente in uno spazio determinato dalla codifica scelta dall’utente

per rappresentare le soluzioni.

Nel caso più diretto, il problema da affrontare può essere la ricerca del minimo di una

funzione, come espresso nell’equazione (3.1), attraverso la determinazione dei

parametri numerici inclusi nella formula che la descrive: in questo caso la fitness è

direttamente la funzione da minimizzare.

Tuttavia, quando il problema non è di tipo analitico, il procedimento non è così diretto.

E’ quindi necessario definire una funzione di decodifica che trasformi il genotipo nel

corrispondente fenotipo (soluzione), applicare la soluzione così ottenuta al problema

che s’intende risolvere e misurarne la bontà attraverso la funzione di fitness.

La diversa codifica delle soluzioni, unitamente ai metodi utilizzati per elaborare e

ricombinare l’informazione contenuta nel genotipo per generare nuovi individui a

partire da quelli presenti nell’attuale popolazione, consente di suddividere i metodi di

calcolo evoluzionistico in diversi paradigmi.

23

Page 7: Capitolo 3 Applicazioni degli algoritmi evolutivi al ... · Un algoritmo è sempre definito supponendo che esso interagisca con un ambiente esterno, dal quale acquisisce dei dati

Capitolo 3

Più precisamente si possono suddividere gli algoritmi evolutivi nel seguente modo [2]:

Evolution Strategies (ES).

Evolutionary Programming (EP).

Algoritmi Genetici (GA), codifica reale, codifica binaria.

Genetic Programming (GP).

Differential Evolution (DE).

Essi si differenziano notevolmente per logiche e procedimenti e sono ottimizzati per il

tipo di problema che devono risolvere.

Nella tabella seguente vengono riportate le caratteristiche principali degli algoritmi

evolutivi appena citati.

24

Page 8: Capitolo 3 Applicazioni degli algoritmi evolutivi al ... · Un algoritmo è sempre definito supponendo che esso interagisca con un ambiente esterno, dal quale acquisisce dei dati

Capitolo 3

ES DE GAbinary

Representation Real-valued Real-valued Binary-valued

Fitness is Objective function value

Objective function value

Scaled objective function value

Self-adaptation Standard deviations and rotation angles None None

Mutation Gaussian, main operator

Gaussian, only operator

Bit-inversion,

background operator

Recombination

Discrete and intermediate, sexual

an panmictic, important for self-

adaptation

Linear combination: DE1, linear combination with elitism: DE2

z-point crossover, uniform crossover, only sexual, main

operator

SelectionDeterministic,

extinctive or based on preservation

Deterministic, extinctive or based

on preservation

Probabilistic, based on preservation

Constraints Arbitrary inequality constraints

Arbitrary inequality constraints

Simple bounds by encoding

mechanism

Theory

Convergense rate for special cases,

(1+l)-ES,(1+l)-ES,

global convergence for

(m+l)-ES

Convergense rate for special cases

Scheme processing theory, global

convergence for elitist version

Tabella 3.I: Caratteristiche degli Algoritmi Evolutivi (da [2]).

25

Page 9: Capitolo 3 Applicazioni degli algoritmi evolutivi al ... · Un algoritmo è sempre definito supponendo che esso interagisca con un ambiente esterno, dal quale acquisisce dei dati

Capitolo 3

Se si esaminano in dettaglio le applicazioni in cui sono sfruttati, si possono dedurre i pregi degli EA (Algoritmi Evolutivi):

Possibilità di risolvere problemi complessi senza conoscere un preciso metodo

di soluzione.

Capacità di auto-modificazione in base alla mutazione del problema.

Capacità di simulare alcuni fenomeni a causa dell'organizzazione ispirata a

quella dell'evoluzione biologica.

Nel presente capitolo ci limiteremo ad esaminare solo gli algoritmi genetici, cioè quegli

algoritmi evolutivi che storicamente sono stati sviluppati per primi. La comprensione di

tali algoritmi aiuta poi a capire anche il funzionamento di tutti gli altri algoritmi

evolutivi.

3.3.1 Gli algoritmi genetici

Gli algoritmi genetici (GAs) appartengono alle tecniche di ottimizzazione di tipo“soft

computing”, cioè a quelle tecniche che, come le reti neurali e la logica fuzzy, sono

basate su processi non deterministici, e sono stati sviluppati nell’ambito

dell’intelligenza artificiale. Essi sono algoritmi di ricerca basati su meccanismi di

selezione naturale, ovvero sull'analogia con l'evoluzione genetica osservata in natura

[20].

La prima monografia sull'argomento è di J.H. Holland: “Adaptation Natural and

Artificial System”[21].

John H. Holland è docente di psicologia e d’ingegneria elettronica all'Università del

Michigan, nonché membro dello Steering Committee del Santa Fe Institute e si occupa,

da quasi quarant'anni, della pratica dell'evoluzione algoritmica.

Il punto di partenza della sua ricerca è stato quello di credere nel fatto che incorporando

adeguatamente gli AG in un algoritmo per calcolatore, essi potessero costituire una

tecnica per risolvere problemi complessi, così come ha fatto la natura, attraverso

l'evoluzione.

26

Page 10: Capitolo 3 Applicazioni degli algoritmi evolutivi al ... · Un algoritmo è sempre definito supponendo che esso interagisca con un ambiente esterno, dal quale acquisisce dei dati

Capitolo 3

Iniziò quindi a creare algoritmi che fossero in grado di manipolare stringhe binarie e

provvedessero alla sopravvivenza di quelle migliori, così come in natura avviene il

processo d'evoluzione, attraverso un ciclo di selezione, riproduzione, alterazione e

sostituzione delle stringhe.

In ogni generazione, una nuova serie di stringhe era creata usando i bit delle migliori

stringhe precedenti.

Holland cercò di ampliare il campo d'azione degli AG creando un codice che

rappresentasse la struttura di qualsiasi programma per calcolatore [22].

Il risultato è stato il sistema classificatore, costituito da un insieme di regole, ciascuna

delle quali svolgeva azioni particolari ogni volta che le sue condizioni venivano

soddisfatte; condizioni e azioni erano rappresentate da stringhe di bit, corrispondenti

alla presenza o all'assenza di specifiche caratteristiche nell'input e nell'output delle

regole.

Le stringhe di qualità elevata si riproducevano, quelle di qualità scarsa morivano; inoltre

il processo riproduttivo combinava continuamente queste stringhe in maniera diversa,

generando soluzioni sempre più raffinate.

Da millenni gli esseri umani fanno uso di tecniche d’incrocio e di selezione per ottenere

prodotti con qualità e prestazioni sempre più elevate, ma il problema consiste nel

tradurre tali tecniche in una forma adatta ai programmi per calcolatore.

Il vero problema è la costruzione di un codice genetico che possa rappresentare la

struttura di programmi diversi, come il DNA rappresenta la struttura di una persona.

Il meccanismo di un GA è sorprendentemente semplice, esso non coinvolge niente di

più che la capacità di copiatura delle stringhe e il loro scambio parziale [20].

Per impostare un esperimento con un algoritmo genetico è necessario definire in modo

esatto la struttura del genoma, stabilendone la lunghezza ed il significato dei singoli bit

[6].

Le operazioni di crossover e di mutazione utilizzate con questo tipo di rappresentazione,

si possono rappresentare nel seguente modo:

Crossover Mutazione

{10011 | 011} → {00110 | 011} 100 01011→100 11011

{00110 | 100} → {10011 | 100} ↑ ↑

Figura 3.I: Schema di crossover e di mutazione (da [6]).

27

Page 11: Capitolo 3 Applicazioni degli algoritmi evolutivi al ... · Un algoritmo è sempre definito supponendo che esso interagisca con un ambiente esterno, dal quale acquisisce dei dati

Capitolo 3

Fra i diversi tipi di crossover i più comuni sono il crossover singolo punto, in cui le

stringhe che codificano i due genitori vengono“tagliate”in uno stesso punto; si opera poi

uno scambio della parte destra (o sinistra) delle stringhe per ottenere due figli in cui il

genotipo del primo è costituito dalla concatenazione della parte destra del genotipo del

primo genitore con la parte sinistra (destra) di quella del secondo, mentre il genotipo del

secondo figlio è costituito dalla concatenazione della parte destra (o sinistra) del

genotipo del secondo genitore con la parte sinistra (destra).

Una generalizzazione al crossover multi-punti permette di avere scambi ogni secondo

segmento tra le posizioni di crossover successive; i punti di crossover sono scelti a caso.

Un effetto possibile di crossover a 5-punti su due individui, potrebbe essere

schematizzato nel seguente modo:

Figura 3.II: Crossover a cinque punti (da [2]).

Ogni volta che i punti di crossover sono dispari, le probabilità di scambio per tornare ad

avere assimmetria dipendono dalla posizione dei bit.

Il crossover uniforme prevede invece che, per ogni posizione all’interno della stringa, i

bit corrispondenti dei due genitori vengano assegnati uno ad un figlio e l’altro all’altro

figlio in modo casuale.

La mutazione consiste semplicemente nell’inversione di un bit scelto a caso in

qualunque posizione del genoma.

28

Page 12: Capitolo 3 Applicazioni degli algoritmi evolutivi al ... · Un algoritmo è sempre definito supponendo che esso interagisca con un ambiente esterno, dal quale acquisisce dei dati

Capitolo 3

3.3.2 Vantaggi e svantaggi degli algoritmi genetici e dei metodi locali

Il tema centrale della ricerca sugli AG è la robustezza, intesa come la capacità del

metodo di produrre gli stessi dati di output anche quando i dati di input hanno subito

delle variazioni trascurabili, ed il bilancio tra efficienza ed efficacia necessaria nelle

differenti applicazioni [20].

Se si possono raggiungere più alti livelli d’adattamento, i sistemi esistenti possono

svolgere le loro funzioni in maniera migliore e più duratura.

Gli AG possono ritenersi in certi casi più robusti rispetto ai metodi tradizionali per le

loro caratteristiche peculiari.

Una prima distinzione, rispetto alle normali procedure di ricerca e ai più classici

algoritmi d’ottimizzazione numerica, può essere fatta sulla base delle seguenti

motivazioni:

Svolgono ricerche all'interno di una popolazione di punti di una regione

dello spazio di ricerca e non nel singolo punto.

Le leggi che regolano il passaggio da un punto all’altro del dominio (regole

di transizione) sono di tipo probabilistico e non deterministico.

Valutano le informazioni contenute direttamente nella funzione obiettivo e

non le derivate parziali o altre conoscenze ausiliarie.

Lavorano con una codifica dei parametri e non con i parametri in sé e per sé.

L'algoritmo genetico sfrutta le ragioni”bersaglio”dello spazio delle soluzioni, poiché in

generazioni successive, attraverso la riproduzione ed il crossover, aumenta

progressivamente il numero delle stringhe che si trovano in quelle regioni [22].

In un normale problema di statistica, in cui sono applicati opportuni algoritmi

matematici (un esempio sono i metodi di montecarlo), si dovrebbero valutare decine di

campioni tratti da migliaia o milioni di regioni per ottenere il valore adattivo di ciascuna

di queste.

L'algoritmo genetico invece riesce ad ottenere lo stesso risultato con un numero di

stringhe di gran lunga inferiore. Questo sorprendente comportamento è dovuto al fatto

che una singola stringa appartiene a tutte le regioni in cui appare almeno qualcuno dei

suoi bit. Per esempio, la stringa [11011001] appartiene alle regioni 11******,

29

Page 13: Capitolo 3 Applicazioni degli algoritmi evolutivi al ... · Un algoritmo è sempre definito supponendo che esso interagisca con un ambiente esterno, dal quale acquisisce dei dati

Capitolo 3

1******1, **0**00* e così via, dove il segno di asterisco indica che il valore di un bit

non è specificato. Le regioni più grandi, quelle cioè con un numero elevato di bit non

specificati, saranno rappresentate da una elevata percentuale di tutte le stringhe di una

popolazione. Così, un algoritmo genetico che manipola una popolazione di poche

migliaia di stringhe, di fatto dispone di campioni di un numero molto più grande di

regioni.

E' proprio questo parallelismo implicito, che conferisce all'algoritmo genetico il suo

vantaggio fondamentale rispetto ad altri procedimenti utilizzati per la risoluzione di

problemi, in quanto può esplorare e sfruttare moltissime regioni nello spazio di ricerca,

pur manipolando un numero relativamente piccolo di stringhe [22].

Inoltre l'algoritmo genetico contribuisce a risolvere un enigma che ha eluso fin qui i

metodi convenzionali di risoluzione dei problemi: come raggiungere un equilibrio fra

esplorazione, intesa come capacità di ricercare nuove soluzioni rispetto a quelle già

individuate e sfruttamento, ossia la capacità di raffinare le soluzioni trovate.

Solitamente quando si trova una buona strategia, sia essa applicata ad un procedimento

matematico, ad un problema economico o più in generale ad un qualsiasi quesito che

richieda una soluzione, ci si concentra sullo sfruttamento della strategia stessa,

precludendo così la scoperta di strategie che potrebbero risultare più innovative.

L'algoritmo genetico affronta questo ostacolo utilizzando il crossover. Benché il

crossover possa interferire con lo sfruttamento di un blocco costitutivo scomponendolo,

il processo di ricombinazione esplora il comportamento dei blocchi costitutivi in nuove

combinazioni ed in nuovi contesti. Esso quindi genera nuovi campioni di regioni sopra

la media, confermando o confutando le stime prodotte sulla base di campioni

precedenti.

Gli algoritmi genetici possono affrontare anche problemi non lineari e sono

particolarmente indicati per quelle regioni del dominio caratterizzate dall’avere parecchi

punti di massimo o di minimo locale (Figura 3.III) dove quindi il metodo del gradiente

facilmente rischierebbe di focalizzarsi su di un estremo locale, oppure caratterizzate da

zone piatte a gradiente nullo che rendono difficoltosa la ricerca dell’estremo

(Figura 3.IV).

Per meglio intuire queste situazioni tipiche, si riportano le seguenti figure.

30

Page 14: Capitolo 3 Applicazioni degli algoritmi evolutivi al ... · Un algoritmo è sempre definito supponendo che esso interagisca con un ambiente esterno, dal quale acquisisce dei dati

Capitolo 3

Figura 3.III: Funzione di autocorrelazione per sequenze binarie(n=2) (da [2]).

31

Page 15: Capitolo 3 Applicazioni degli algoritmi evolutivi al ... · Un algoritmo è sempre definito supponendo che esso interagisca con un ambiente esterno, dal quale acquisisce dei dati

Capitolo 3

Figura 3.IV: Visualizzazione di una funzione obiettivo nel caso del problema del commesso viaggiatore: TSP (Travelling Sales man Problem per n = 30) (da [2]).

32

Page 16: Capitolo 3 Applicazioni degli algoritmi evolutivi al ... · Un algoritmo è sempre definito supponendo che esso interagisca con un ambiente esterno, dal quale acquisisce dei dati

Capitolo 3

Gli algoritmi genetici sono sicuramente il paradigma evoluzionistico più comunemente

utilizzato, sia per le caratteristiche della rappresentazione che consente di realizzare

implementazioni particolarmente efficienti degli operatori genetici, sia per la quantità di

problemi d’ottimizzazione le cui soluzioni possono essere rappresentate in modo

immediato ed efficace con stringhe binarie.

Considerando le applicazioni dei metodi d’ottimizzazione ai problemi d’ingegneria

civile, si può affermare che i metodi d’ottimizzazione più usati sono tradizionalmente

quelli di ricerca del gradiente.

Con tale approccio esistono difficoltà legate alla scelta di una funzione di costo

differenziabile e continua e nel fatto di considerare la non linearità [2].

Comparato con quello del gradiente, il metodo degli algoritmi genetici è invece in grado

di ottenere un valore ottimale dalla complessa e possibile discontinuità dello spazio

delle soluzioni, in quanto la funzione di prestazione di costo è la sola informazione

richiesta per questo tipo di problema; infatti gli algoritmi genetici non richiedono la

riformulazione del problema in una forma più adatta a differenza del metodo del

gradiente.

Nel campo civile gli AG sono molto utili quando si vogliono identificare i parametri

strutturali di un edificio nel quale si evolve un danno [32].

Essi servono, ad esempio, per identificare i valori di smorzamento da introdurre nel

modello matematico che si usa per svolgere l'analisi strutturale, ma il problema che si

presenta è quello di scegliere una buona funzione di costo in modo da ottenere soluzioni

ottimali ed accettabili.

Diverse applicazioni degli algoritmi genetici in campo civile sono state già presentate in

[5] e si rimanda ad essa per una dettagliata descrizione.

Qui di seguito si riporta un’ulteriore applicazione di algoritmi genetici per

l’identificazione del danno in una struttura intelaiata.

33

Page 17: Capitolo 3 Applicazioni degli algoritmi evolutivi al ... · Un algoritmo è sempre definito supponendo che esso interagisca con un ambiente esterno, dal quale acquisisce dei dati

Capitolo 3

3.4.Applicazione degli algoritmi genetici per l’identificazione del danno

3.4.1 Introduzione

L’individuazione della presenza di un danno in strutture civili sta diventando

un’esigenza sempre più incalzante, cosicché sono stati sviluppati diversi metodi di

monitoraggio e di indagine non distruttiva [38].

Scopo principale del monitoraggio è la determinazione e l'identificazione del danno di

un sistema strutturale, per l'intera durata della vita della struttura stessa.

L'obiettivo dell'identificazione del danno è quello di descrivere qualitativamente o

quantitativamente il deterioramento del sistema; ciò deve avvenire però non tanto

conoscendo i carichi applicati e la risposta della struttura, ma monitorando il

cambiamento nelle risposte strutturali.

Parecchi studi sono stati proposti per identificare il danno partendo direttamente

dall'analisi dei cambiamenti di risposta del modello in esame senza conoscere a priori

nessuna caratteristica del modello del sistema reale [24], [26], [27].

Questi metodi, denominati diretti, sono in grado di identificare l'esistenza del danno, ma

hanno difficoltà nel localizzarlo e nel quantificarlo [1].

Recentemente sono stati applicati al problema della determinazione e

dell'identificazione del danno strutturale metodi d’intelligenza computazionale, quali gli

algoritmi genetici (GA), in quanto si è rilevato che, essendo il problema di

identificazione e localizzazione del danno un problema di tipo multiminimo, cioè

caratterizzato dalla presenza di diversi estremi locali, questo tipo di strumento è

versatile e robusto.

Infatti rispetto ai metodi matematici tradizionali quali il gradiente, i GA superano il

problema di incorrere in estremi locali (local optima) attraverso la valutazione di una

popolazione di possibili soluzioni: all’interno di un’iterazione dell’algoritmo vengono

valutati, ricombinati e modificati più punti dello spazio di ricerca evitando il rischio di

focalizzare l’attenzione su di un singolo punto che può essere nei pressi di un estremo

locale.

34

Page 18: Capitolo 3 Applicazioni degli algoritmi evolutivi al ... · Un algoritmo è sempre definito supponendo che esso interagisca con un ambiente esterno, dal quale acquisisce dei dati

Capitolo 3

3.4.2 Tecnica per l’identificazione del danno in una struttura intelaiata

Nell’applicazione dei GA considerata in [36] vengono proposte due tecniche di

monitoraggio basate sulle vibrazioni che sono state applicate ad una struttura intelaiata

di acciaio, mostrata nella Figura 3.V, il cui comportamento dinamico è stato simulato

mediante un modello agli elementi finiti.

Il primo approccio consiste nell’applicare una procedura di ottimizzazione, ovvero gli

algoritmi genetici, per minimizzare un’opportuna funzione obiettivo, la quale dipende

dalla differenza tra le caratteristiche dinamiche calcolate e misurate della struttura in

esame e che permette di stimare la posizione e l’entità del danneggiamento.

Il secondo approccio, invece, applicabile a strutture che, come il telaio, possono essere

discretizzate, permette di valutare la riduzione di rigidezza usando la variazione delle

frequenze naturali della struttura in esame e la cosiddetta“matrice di sensibilità”. Lo

scopo finale dell’applicazione di queste due tecniche di identificazione sarà quello di

studiarne la loro validità e sensibilità al danno e di confrontarle tra loro.

Figura 3.V: Struttura a telaio (da [36]).

35

Page 19: Capitolo 3 Applicazioni degli algoritmi evolutivi al ... · Un algoritmo è sempre definito supponendo che esso interagisca con un ambiente esterno, dal quale acquisisce dei dati

Capitolo 3

3.4.3 Modelli matematici

Al fine di determinare sia la posizione che l’estensione del danno è necessario avere a

disposizione un modello matematico della struttura in esame in quanto le elaborazioni

effettuate utilizzano dati ricavati da simulazioni numeriche e non da prove sperimentali.

Pertanto, per rendere il confronto il più realistico possibile, sono stati sviluppati due

modelli matematici: il primo è un modello agli elementi finiti piuttosto accurato del

telaio metallico nel quale si sono utilizzati 132 elementi, mentre il secondo è un modello

più semplice, il cosiddetto modello shear-type, a 12 gradi di libertà: due traslazioni,

rispettivamente ognuna lungo le direzione x e y, ed una rotazione per piano.

Il processo di identificazione è stato svolto introducendo il danno nel modello agli

elementi finiti ottenuto utilizzando un modello di tipo shear-type. In questo modo si è

determinata la posizione e l’entità del danneggiamento.

3.4.4 Procedura di ottimizzazione

In questa applicazione la funzione obiettivo da minimizzare è stata espressa come

differenza tra le caratteristiche dinamiche misurate e quelle del modello matematico:

{ }( ) { } { }( )θαθθ

∆+∆=∆

gG 1

(3.2)

dove: α è un fattore opportunamente selezionato,

{ }θ∆ è un vettore dello stato di danno,

mentre { }( )θ∆g è:

{ }( ) (( ) { }( ) ( )

( ) ( ) ) 2

1

1∑=

∗ ∆−=∆

n

iFE

iFE

i

sti

sti

ffff

θ , (3.3)

36

Page 20: Capitolo 3 Applicazioni degli algoritmi evolutivi al ... · Un algoritmo è sempre definito supponendo che esso interagisca con un ambiente esterno, dal quale acquisisce dei dati

Capitolo 3

dove: ( )stif e ( )FE

if si riferiscono rispettivamente alle frequenze naturali del modello

shear-type e a quello FEM,

* si riferisce ai valori delle frequenze naturali della struttura in condizioni

danneggiate.

La sommatoria nella formula (3.3) va da i = 1, 2, , n, dove n rappresenta il numero di

frequenze naturali considerate.

Il vettore dello stato di danno { }θ∆ può essere organizzato in modo tale che il suo

i-esimo valore rappresenta la riduzione di rigidezza dell’ i-esimo elemento, o gruppo di

elementi della struttura, in particolare può essere organizzato in modo che per ogni

piano viene memorizzata la riduzione in: rigidezza delle colonne, rigidezza delle

controventature nei piani xz e yz rispettivamente. Come conseguenza il vettore dello

stato di danno ha 12 elementi ed il vettore nullo si riferisce alla struttura integra.

3.4.5 Risultati numerici

Sono stati considerati 3 scenari di danno:

1. riduzione del modulo di Young dei due elementi diagonali nel piano xz in

corrispondenza del primo piano a 1.0 × 1011 N/m2;

2. eliminazione di una colonna al primo piano e una colonna al secondo piano;

3. rimozione di una colonna e due controventature, uno nel piano xz e l’altro nel

piano yz, in corrispondenza del secondo piano.

Le caratteristiche dinamiche della struttura per i diversi scenari di danno sono state

calcolate mediante il modello agli elementi finiti.

Attraverso la minimizzazione della funzione obiettivo, precedentemente descritta,

tramite l’uso degli algoritmi genetici si giunge ad una stima corretta del danno

solamente nel primo caso. Negli altri casi, particolarmente quando il danno coinvolge

varie colonne, la stima dello stato di danno non è corretta: viene identificato

correttamente il danno in corrispondenza degli elementi diagonali mentre il danno nelle

colonne viene ripartito su altri elementi strutturali.

37

Page 21: Capitolo 3 Applicazioni degli algoritmi evolutivi al ... · Un algoritmo è sempre definito supponendo che esso interagisca con un ambiente esterno, dal quale acquisisce dei dati

Capitolo 3

Un’ulteriore analisi ha dimostrato che l’errore nella stima dello stato di danno è in

relazione principalmente al numero considerato di frequenze naturali, mentre l’effetto di

in accuratezza del modello matematico risulta meno importante.

38