capitolo 3 applicazioni degli algoritmi evolutivi al ... · un algoritmo è sempre definito...
Post on 17-Jun-2020
3 Views
Preview:
TRANSCRIPT
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
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
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
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
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
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
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
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
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
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
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
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
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
Capitolo 3
Figura 3.III: Funzione di autocorrelazione per sequenze binarie(n=2) (da [2]).
31
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
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
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
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
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
gθ
θ , (3.3)
36
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
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
top related