56
APPENDICE I:
57
Indice
Appendice 1a:Nozioni di base delle reti neurali………..………58
Appendice 1b:Nozioni di base della logica fuzzy……….62
1 Premessa………...62
2 Insiemi fuzzy………63
2.1 Funzione di appartenenza……….63
2.2 Definizione di insieme fuzzy………..64
2.3 Generalizzazione del concetto di supporto di un insieme fuzzy……….65
2.4 Unione ed intersezione di insiemi fuzzy………..66
2.5 Esempi di operatori alternativi: t-norme e s-norme……….67
2.6 Complemento di un fuzzy set……….68
2.7 Inclusione tra due insiemi fuzzy………69
3 Prodotto cartesiano e relazioni fuzzy………69
3.1 Composizione di relazioni fuzzy………71
3.2 Principio di estensione………71
4 Ragionamento fuzzy………..72
4.1 Fuzzificazione………72
4.1.1 Modificatori linguistici………...73
4.1.2 Implicazione fuzzy……….75
4.2 Regole di inferenza fuzzy: modus ponens generalizzato………..76
4.2.1 Inferenza di sistemi fuzzy con più regole………..76
4.2.2 Inferenza grafica……….77
4.3 Defuzzificazione………78
4.3.1 Metodi di defuzzificazione……….78
4.3.2 Scelta del metodo di defuzzificazione………79
Appendice 1c.:Sistemi intelligenti………...80
1 Premessa……….80
2 Reti neurali, sistemi fuzzy, sistemi probabilistici e sistemi di calcolo evolutivo……...81
3 Modelli di calcolo di architetture ibride………..85
3.1 Modelli stand alone………....85
3.2 Sistema intelligente ibrido trasformazionale………....85
3.3 Sistema ibrido gerarchico………....85
3.4 Sistemi ibridi integrati………...86
3.4.1 Sistemi ibridi integrati tra reti neurali e sistemi fuzzy……….86
APPENDICE.1a – Nozioni di base delle reti neurali
Le reti neurali artificiali sono dei sistemi di elaborazione dell’informazione, ispirati alla struttura, al metodo di elaborazione dell’informazione e all’abilità di apprendere dei sistemi nervosi biologici. Una rete neurale artificiale possiede molte semplici unità di elaborazione (vd fig.1), organizzate per strati (layer), connesse tra di loro, che possono essere suddivise in:
• unità di ingresso (input) che ricevono informazioni dall’ambiente; • unità di uscita (output) che comunicano informazioni nell’ambiente • unità nascoste (hidden) che comunicano solo con altre unità.
58
v21.
.
.
.
Fig.1: Schema di rete neurale artificiale
Ciascuna unità o processing element, definita percettrone o, più impropriamente, neurone, svolge una operazione elementare, ossia si attiva se la quantità totale di segnale che riceve supera un valore di soglia θi del nodo, emettendo essa stessa un segnale che viene trasmesso alle altre unità a cui è connessa. I punti di connessione pesano l’intensità dei segnali trasmessi.
Il segnale di risposta y emesso
da un nodo ni è funzione della somma dei segnale d’ingresso opportunamente pesato..
.
w12 w11 v11y
1y
2 w1nx
1x
2x
nInputs
Input
layer
Hidden
layer
Outputs
y
n.
.
.
Output
layer
Bias
Input
Bias
Hidden
Fig.2: Schema di processing
Formalmente:
59
i i ij j jn
= Φ
⎛
⎜
w n
−
ϑ
⎞
⎟
⎝
∑
⎠
Si
può notare come ciascun nodo elabora solo l’informazione locale: questo significa che esso si attiva solo in funzione dell’informazione che riceve attraverso le proprie connessioni, ma non sa né qual è lo scopo dell’elaborazione a livello dell’intera rete, né quali operazioni vengono svolte dagli altri nodi a cui è collegato.Per questo motivo, una prima classificazione delle reti si basa sulla loro struttura: si distinguono reti neurali a preparazione (feedforward) e reti neurali a retroazione (feedback). Nella struttura
feedforward, le connessioni esistenti sono esclusivamente tra i nodi dello strato precedente e i nodi dello strato successivo, non esistono quindi connessioni tra neuroni dello stesso strato (rete gerarchica). In questo caso l’input del secondo strato è dato dalla somma pesata dell’output dei neuroni del primo strato. Queste reti emettono una risposta per ogni pattern d’ingresso, ma non riescono a cogliere l’eventuale struttura temporale dell’informazione d’ingersso o ad esibire una propria dinamica temporale.
Nelle reti feedback, invece, l’input di uno strato può essere influenzato sia dagli output degli strati precedenti sia dagli output degli elementi appartenenti allo stesso strato, che diventano input con un relativo valore di ritardo dovuto alla propagazione del segnale.
Il potere della computazione neurale risiede nella completa interconnessione tra i nodi che fornisce alla rete un alto parallelismo grazie al quale vengono esaminate più possibilità contemporaneamente; ogni nodo infatti si occupa di affrontare una piccola parte di un problema complesso, condividendo quindi la risoluzione dell’intero processo. Inoltre grazie all’adattabilità dei pesi, il sistema lavora verso la soluzione ottima basandosi sulla misurazione del proprio rendimento. Una rete neurale impara a fornire le risposte appropriate per ciascuno stimolo d’ingresso modificando i valori delle proprie connessioni in base a delle regole di
apprendimento, che definiscono il modo con cui si modificano i pesi sinaptici
indipendentemente dall’utilizzo che si farà della rete.
Le reti neurali hanno caratteristiche che variano a seconda della tipologia analizzata, ma se ne possono comunque identificare alcune di tipo generale:
• robustezza: intesa come capacità di dare risposte corrette anche se viene aggiunto del rumore al segnale d’ingresso, ai canali di trasmissione o alla funzione di attivazione dei nodi, o se alcune connessioni vengono eliminate;
• flessibilità: ossia possibilità di impiego con finalità diverse per uno stesso modello, quindi l’utente non deve necessariamente conoscere le soluzioni dettagliate e analitiche del problema considerato, ma deve essere solo in grado di individuare le finalità del progetto, il tipo di compito e altre caratteristiche generali per adottare il modello neurale che risulta più appropriato;
• generalizzazione: una rete neurale viene addestrata su un numero limitato di esempi per poi essere in grado di produrre una risposta adeguata a dei segnali d’ingresso sconosciuti. L’obiettivo è quello di estrarre le caratteristiche invarianti dei pattern degli ingressi nella prima fase per poi riconoscere la natura degli input successivi;
• conservazione: le reti neurali artificiali sono in grado di recuperare la propria memoria partendo dal contenuto di dati incompleti, simili o corrotti da rumore.
In particolare, la generalizzazione consiste nella produzione di una risposta appropriata per un pattern di input che non era stato incluso nel gruppo di addestramento. Per semplicità si consideri una rete con un unico strato di connessioni per vedere qual è il meccanismo di generalizzazione: la risposta della rete dipenderà dalla porzione dello spazio dell’input in cui si colloca il nuovo pattern rispetto alla linea di separazione individuata dai pesi sinaptici durante la fase di addestramento. Nel caso di reti multistrato con unità non lineari vale lo stesso discorso, anche se lo spazio dell’input viene diviso in molte regioni spesso irregolari.
Se una rete possiede un gran numero di unità nascoste, lo spazio dell’input potrebbe essere suddiviso in un numero di regioni tali che ciascuna racchiude al limite un unico pattern di addestramento (overfitting). In questo caso anche una piccola distorsione potrebbe spostare il pattern al di fuori della propria regione e causare una risposta scorretta. In altre parole, un gran numero di risorse, pesi e unità, permette alla rete di apprendere una vasta serie di funzioni specifiche che sono responsabili della corrispondenza esattta tra input ed output per i pattern di addestramento, diminuendo così la probabilità che la rete scopra proprio la funzione generale che
descrive l’intero dominio del problema dando luogo a risposte scorrette anche per i pattern di test. Un numero troppo grande di connessioni compromette anche la convergenza verso un minimo globale, sia perché aumenta la complessità della superficie dell’errore sia perché richiede un elevato pattern di addestramento. La scelta del numero adeguato di unità interne e di pesi sinaptici è quindi un problema cruciale e molto complesso.
Così come i sistemi nervosi biologici sono in grado di apprendere in base all’esperienza, le reti neurali apprendono modificando gradualmente i propri valori sinaptici attraverso la presentazione ripetuta di una serie di esempi. Tradizionalmente si distinguono due modalità di apprendimento:
• nell’apprendimento supervisionato sia l’input che l’output desiderato sono forniti alla rete, quindi la modifica dei valori sinaptici avviene impiegando una misura di errore tra la risposta fornita dalla rete e la risposta desiderata per ogni vettore di input. L’apprendimento termina quando la risposta fornita è uguale a quella desiderata a meno di un livello di errore minimo prefissato, compromesso tra la precisione nel processo di apprendimento e la capacità di generalizzare a nuovi pattern di test. In particolare, l’indicatore di prestazione maggiormente utilizzato è il Mean Square Error (MSE- errore quadratico medio), definito come:
(
)
2 0 0 p n ij ij j id
y
MSE
np
= =−
=
∑∑
dove:p= numero di unità di output n= numero dei campioni
= output i-esimo della rete per l’elemento j-esimo yij
d = output j-esimo desiderato per l’elemento j-esimo ij
• nell’apprendimento non supervisionato viene fornito solo lo stimolo di input e l’algoritmo di apprendimento trova da solo la struttura sottostante presente nei pattern di allenamento, valutando una funzione di “energia” dei parametri della rete (misura continua della convergenza verso una soluzione) o misure di variazione dei pesi delle sinapsi e dello stato di attivazione dei nodi della rete (dato che il raggiungimento di una soluzione di solito corrisponde a una situazione di stabilità.
Tutti gli algoritmi di apprendimento presentano degli aspetti generali comuni:
• i valori iniziali dei pesi sinaptici della rete vengono assegnati in modo casuale entro un intervallo ristretto ( es. [-0.1,0,1]) oppure vengono inizializzati a zero;
• l’apprendimento consiste nella presentazione ripetuta dei pattern di addestramento. La modifica dei pesi sinaptici della rete viene calcolata dopo ogni presentazione di un singolo pattern (apprendimento per cicli o online) oppure solo alla fine della presentazione di tutti i pattern di addestramento (apprendimento per epoche o batch). La nuova configurazione di valori sinaptici dopo un ciclo (o epoca) di addestramento è calcolata addizionando la modifica ottenuta
Δ
w
ijt alla configurazione sinaptica precedente t 1ij
w
−Δ
, 1 t t ij ij ijw
=
w
−+ Δ
w
t t ijw
Δ
; Gli algoritmi di apprendimento riguardano quindi solo il calcolo di• la velocità dell’apprendimento è regolata da una costante η, detta “tasso di apprendimento”, che determina la porzione di modifica da applicare ai valori sinaptici; è quindi possibile riscrivere l’equazione generale di apprendimento come:
1
t t
ij ij ij
w
=
w
−+ Δ
η
w
t con 0< η≤1• una volta che la fase di apprendimento è stata completata, i valori sinaptici vengono memorizzati ed è possibile studiare la risposta della rete sui vettori di test.
Il fattore di maggiore interesse dei modelli neurali è proprio la capacità di apprendere perché permette di impiegare una rete neurale per risolvere problemi senza dover individuare direttamente la soluzione analitica, ma semplicemente esponendo il modello ad una serie di esempi. La regola di modifica sinaptica di Hebb costituisce le fondamenta su cui si basano o derivano la quasi totalità degli algoritmi di apprendimento. La regola di Hebb dice che se due neuroni collegati fra di loro sono contemporaneamente attivi, l’efficacia sinaptica della connessione viene rinforzata. In seguito a questo rafforzamento, la sola attivazione del nodo presinaptico sarà sufficiente a causare l’attivazione del nodo postsinaptico. Questa associazione verrà ulteriormente rinforzata ogni volta che i due nodi saranno attivi contemporaneamente.
Un modo diverso per limitare il problema della scarsa capacità di generalizzazione consiste nell’arrestare l’addestramento prima che la rete apprenda “troppo bene”. Il metodo più utilizzato consiste nel ripartire i pattern disponibili in tre parti: una parte viene utilizzata per l’apprendimento, una per la validazione e un’altra per valutare la capacità di generalizzazione (test). Mentre la modifica dei pesi sinaptici si basa sull’errore calcolato per i pattern di addestramento, la decisione su quando fermare l’apprendimento si basa sull’errore ottenuto per i pattern di validazione. Inizialmente l’errore sui pattern di validazione e di test si riduce in modo simile all’errore sui pattern di addestramento, ma ad un certo punto l’errore sui pattern di validazione e di test comincia a crescere mentre l’errore sui pattern di addestramento continua a diminuire. Questa inversione di tendenza indica l’inizio del sovrapprendimento (overfit) dei dati e costituisce un buon indicatore del momento in cui fermare l’addestramento. Un altro metodo consiste nell’arrestare l’allenamento non appena la curva che descrive la discesa dell’errore sui pattern di allenamento cessa di scendere rapidamente.
Over trained
errore
Numero dei cicli di
allenamento
Under trained
Fig.3: Andamento dell’errore commesso da una rete neurale in funzione del numero di cicli di allenamento
62
APPENDICE 1b– Nozioni di base della logica fuzzy
1 Premessa
Negli anni ’30 Werner Heisemberg mostrava ai fisici come la capacità di fare considerazioni precise e significative diminuisca all’aumentare della complessità del sistema, fino ad una soglia oltre la quale, come accade in alcuni celebri lavori del litografo olandese M.C. Escher1, significatività e precisione diventano mutuamente esclusive.
Lo stesso Albert Einstein, nel 1921, sosteneva: “Nella misura in cui le leggi della matematica si
riferiscono alla realtà, esse non sono certe; e nella misura in cui sono certe, non si riferiscono alla realtà2”.
Il linguaggio logico e matematico crea demarcazioni e rigidi confini tra le cose reali, che invece la ragione umana tende a sfumare e attenuare. Infatti una delle capacità più sorprendenti del cervello, tuttora non riproducibile dall'intelligenza artificiale, è quella di riassumere informazioni; un riassunto per sua natura è un'approssimazione e il cervello trae vantaggio da questa tolleranza all'imprecisione attraverso la codificazione delle informazioni più rilevanti rispetto a determinate necessità. Potremmo dedurre da questa semplice osservazione che l’uomo pensa in modo “sfumato”.
La logica “sfumata” però non deve essere confusa con la teoria della probabilità, errore che spesso ricorre nel linguaggio informale. Questa errata interpretazione può essere risolta se pensiamo che la logica fuzzy tratta eventi certi (deterministici), laddove la teoria della probabilità riguarda la verosimiglianza di eventi fortuiti (stocastici) . La prima quindi è da intendersi come l'ambiguità o incertezza riscontrabile nella definizione di un concetto, o nel significato di un termine, mentre la seconda è correlata all'incertezza dell'occorrenza di fenomeni, come simbolizzato dal concetto di casualità.
In altre parole la logica fuzzy e la casualità differiscono in natura: esse trattano cioè aspetti differenti dell'incertezza. Questa differenza si manifesta anche a livello dei rispettivi modelli. In quelli di tipo fuzzy, il concetto di appartenenza è riferito alla similitudine di oggetti o concetti linguistici nei confronti di particolari proprietà definite in modo impreciso, come ad es. "l'acqua è quasi calda". Viceversa, nei modelli stocastici, la probabilità di un certo evento è espressa in termini della sua frequenza di occorrenza, es."domani potrebbe piovere".
Dunque, una delle maggiori peculiarità della logica fuzzy è la sua capacità di esprimere l'ambiguità insita nel pensiero umano e la soggettività delle sue espressioni o valutazioni.
Nel 1973 il professor L.A. Zadeh, il formalizzatore della logica fuzzy, osservò che gli elementi chiave del pensiero umano non sono numeri, ma "etichette" (label) di insiemi sfumati (fuzzy).
La logica fuzzy ha costituito un valido approccio per la modellistica ed il ragionamento approssimato su fenomeni particolarmente complessi, per i quali non sono note rigorose leggi ed equazioni derivanti dalla fisica, spesso ignote o richiedenti uno sforzo troppo elevato per essere ricavate, ma sono date solo conoscenze di tipo qualitativo.
Questo approccio risulta un ottimo strumento di gestione della polivalenza e della vaghezza, ammettendo una struttura formale che ne permette una successiva rappresentazione numerica (vd §§ successivi).
Inoltre presenta tre caratteristiche principali:
1) l'utilizzo di variabili linguistiche i cui valori non sono numeri ma parole in linguaggio naturale o artificiale, al posto o in aggiunta alle variabili numeriche;
2) l'individuazione di semplici relazioni tra variabili attraverso affermazioni condizionali fuzzy; 3) la caratterizzazione di relazioni complesse tra variabili attraverso algoritmi fuzzy.
Si distinguono quindi nella logica fuzzy tre quantità fondamentali:
1
Maurits Cornelis Escher (17 giugno 1898 - 27 marzo 1972) fu un artista e pittore olandese, conosciuto principalmente per le sue incisioni su legno, litografie e mezzetinte che tendono a presentare costruzioni impossibili, esplorazioni dell'infinito e motivi a geometrie interconnesse che cambiano gradualmente in forme completamente differenti.
2 “So far as the laws of mathematics refer to reality, they are not certain and so far they are certain, they do not refer to reality” Albert Einstein - 1921
• i “quantificatori” ossia gli attributi che specificano caratteristiche numeriche (es. “per ogni”,
“pochi”, “molti”…)
• i “qualificatori” cioè i valori delle classi fuzzy (es. “alto”, “basso”, “caldo”, “freddo”…)
• i “modificatori” ovvero gli operatori che applicati ai qualificatori, generano altri quantificatori
(es. “molto”, “poco”, “non”,…)
2
Insiemi Fuzzy ( Fuzzy sets )
2.1 Definizione di insieme fuzzy
La generalizzazione dalla logica booleana3 a quella fuzzy passa attraverso l’estensione del concetto di appartenenza di un elemento ad un insieme (Fig.1).
Nella prima un oggetto appartiene o non appartiene ad un gruppo; la caratterizzazione di questo ultimo può essere fatta mediante un semplice elenco dei suoi componenti.
Nella logica fuzzy un elemento fa parte di un insieme con un certo grado di “somiglianza”; tale grado può essere espresso da una funzione (membership function, MF) i cui valori sono compresi tra un minimo (min) ed un massimo (max).
appartengono Non appartengono
Logica tradizionale
appartengono parzialmente all’insiemeNon appartengono all’insieme
appartengono totalmente all’insieme
Logica fuzzy
Fig.1: Confronto tra logica tradizionale e logica fuzzy
Un elemento appartiene totalmente all’insieme fuzzy se la sua funzione di appartenenza assume il valore massimo; non appartiene all’insieme se la MF assume il valore minimo, appartiene parzialmente all’insieme se la min<MF<max. La MF può essere interpretata quindi come l’insieme dei gradi di appartenenza degli elementi al gruppo, quest’ultimo individuato attraverso una o più caratteristiche. Poiché spesso le analisi effettuate trattano grandezze completamente differenti, per uniformare i ragionamenti e rendere possibile la loro trattazione viene impiegata la normalizzazione, in modo tale che le quantità discrepanti risultino adimensionali. I massimi ed i minimi assumono in questi casi rispettivamente i valori unitari e nulli.
E’ facile capire come la varietà delle caratteristiche e dei gradi di appartenenza possano generare MF innumerevoli, tutto sta nella conoscenza con cui viene affrontata una problematica (Fig.2).
63
Fig.2: Possibili forme delle Funzioni di appartenenza4
In generale comunque l’andamento rettilineo delle MFs dà risultati soddisfacenti in numerosi contesti, evitando di appesantire ulteriormente i codici che ne fanno utilizzo. Per queste funzioni di appartenenza vengono individuate tre quantità caratteristiche: il supporto, il core e l’altezza. (Fig.3)
μ(x)
64
core
altezza
supporto
1
0
x
Fig.3:Quantità caratteristiche di una MF
2.2 Definizione di insieme fuzzy
Un insieme fuzzy può essere visto come un insieme di coppie ordinate ognuna delle quali ingloba l’elemento dell’insieme e il proprio grado di appartenenza μ(x) all’insieme stesso, ossia
}
{
x
x
x
X
A
=
(
,
μ
A(
))
:
∈
(1) Spesso l’insieme fuzzy viene indicato da:( )
A i i ix
A
x
μ
=
∑
nel caso in cui l’universo sia discreto; (2)( )
Ax
A
x
μ
=
∫
nel caso in cui l’universo sia continuo; (3) la barra orizzontale non ha significato di frazione, ma è semplicemente un delimitatore (ad es.l’espressione (2) deve essere interpretata come “x1 appartiene ad A con grado di appartenenza μ(x1), x2 appartiene ad A con grado di appartenenza μ(x2)…”) ed i simboli “+”, “∑” e “∫”hanno l’accezione di unione.Risulta evidente come la logica booleana possa essere interpretata come limite della logica fuzzy dove la funzione di appartenenza assume solo due valori:
1
( )
0
Ase
x
A
x
se
x
A
μ
= ⎨
⎧
∈
∉
⎩
(4)
La dicitura “x appartiene ad A con grado 1” è sostituita semplicemente, nel linguaggio ordinario, da “x appartiene ad A”, così come non si dice che “x appartiene ad A con grado 0”, ma semplicemente che “x non appartiene ad A”.
2.3 Generalizzazione del concetto di supporto di un insieme fuzzy
Come già detto nel § 4.2.1, il supporto di un insieme fuzzy è l’insieme di tutti gli elementi di X tali che
μ
A( ) 0
x
>
(Fig.3).La generalizzazione del concetto di supporto è data dall’insieme di livello
λ
corrispondente all’insieme fuzzy A, che si ottiene scegliendo una sogliaλ
ed effettuando l’operazione di taglio:}
{
:
A( )
A
α=
x
∈
X
μ
x
≥
λ
(5)
L’operatore di taglio svolge il ruolo di filtro, riducendo gli elementi che appartengono all’insieme (Fig.4)
μ
1
λ=0.7
λ=0.4
0
x
A
0.7A
0.4Fig.
4: Operatore di taglio per valori di λ pari a 0,6 e o,3 rispettivamente
2.4 Unione ed intersezione di insiemi fuzzy (fuzzy sets)
Le operazioni fra fuzzy-sets vengono definite in modo da generalizzare alcune proprietà tipiche delle corrispondenti operazioni in logica booleana.
Dati due insiemi fuzzy:
}
{
( ,
x
μ
Α( )) :
x
x
X
Α =
∈
e
Β =
{
( ,
x
μ
Β( )) :
x
x
∈
X
}
(6)
si definisce l’insieme intersezione V come:}
{
( ,
AeB) :
V
= ∩ =
A
B
x
μ
x
∈
X
(7)
dove
μ
AeB=
f
(
μ μ
A,
B)
rappresenta il grado di verità della proposizione “x soddisfa contemporaneamente i requisiti espressi da A e da B”.Analogamente si definisce l’insieme unione U come:
}
{
( ,
AoB) :
U
= ∪ =
A
B
x
μ
x
∈
X
(8)
dove
μ
AoB=
g
(
μ μ
A,
B)
rappresenta il grado di verità della proposizione “x soddisfa almenouno
dei requisiti espressi da A o da B”.Le funzioni f e g devono soddisfare alcune importanti proprietà, ossia: 1. continuità e non decrescenza rispetto a
μ
A e μΒ;2. stretta crescenza rispetto a
μ
A 3. commutatività4.
f
(
A,
μ
B) min(
≤
μ
A,
μ
B)
e(
,
) max(
,
)
66
μ
g
μ μ
A B≥
μ μ
A B5. f(1,1)=1 e g(0,0)=0 ; questa proprietà permette di mantenere la coerenza delle due operazioni restringendosi al caso di insieme crisp (vd (4)) ossia:
a.
μ
AeB=
f
(
μ μ
A,
B) 1
= ⇔
μ
A=
1
and
μ
B=
1
, cioè un elemento è nell’insieme intersezione V se l’elemento è sia in A che in Bb.
μ
AoB=
g
(
μ μ
A,
B) 0
= ⇔
μ
A=
0
and
μ
B=
0
, cioè un elemento non è nell’insieme unione U se l’elemento non è né in A né in B6. proprietà associativa dell’unione rispetto all’intersezione
Due funzioni che rispettano certamente queste proprietà sono la funzione di massimo per l’unione e la funzione di minimo per l’intersezione (Fig.5)
μ
x
1
0
A and B
x
μ
1
0
A or B
Fig.5: Funzioni di appartenenza per l’unione e per l’intersezione di due fuzzy sets
2.5 Esempi di operatori alternativi: t-norme e s-norme
Le due funzioni presentate nel paragrafo precedente non esauriscono le possibili scelte per definire l’unione e l’intersezione fra insiemi fuzzy.
Altri operatori che definiscono una intersezione fra fuzzy sets (o congiunzione fuzzy), che vengono indicate come t-norme, sono:
1. il prodotto algebrico:
f
(
μ μ
A,
B)
=
μ μ
A⋅
B (9)2. il prodotto limitato :
f
(
μ μ
A,
B) max 0,
=
{
μ
A+
μ
B−
1
}
(10)3.
il prodotto drastico :1
(
,
)
1
0
,
A B A B B B A Bse
f
se
se
μ
μ
μ μ
μ
μ
μ μ
1
=
⎧
⎪
=
⎨
=
⎪
<
⎩
(11)
Altri operatori che definiscono invece l’unione fra fuzzy sets (o disgiunzione fuzzy ), che vengono indicati come s-norme, sono:
1. la somma algebrica :
g
(
μ μ
A,
B)
=
μ
A+
μ
B−
μ μ
A⋅
B (12)2. la somma limitata :
g
(
μ μ
A,
B) min 1,
=
{
μ
A+
μ
B}
0
=
(13)3.
la somma drastica :(14)
0
(
,
)
0
1
,
A B A B B A A Bse
g
se
se
μ
μ
μ μ
μ
μ
μ μ
=
⎧
⎪
= ⎨
⎪
>
⎩
67
2.6 Complemento di un fuzzy set
Se
μ
A( )
x
è il grado con cui l’elemento x soddisfa il requisito espresso da A,1
−
μ
A( )
x
sarà il grado con cui x non soddisfa il requisito espresso dall’insieme A (Fig.6).Pertanto l’insieme complemento
Α
di un fuzzy set A , si definisce come:}
{
( ,1
A( )) :
A
=
x
−
μ
x
x
∈
X
(15)
μ
μ
x
x
A
A
Fig.6: Funzione di appartenenza per l’insieme complemento di un fuzzy set
Mentre unione e intersezione precedentemente definite soddisfano molte delle proprietà delle corrispondenti operazioni booleane, la complementazione non ne soddisfa due importanti:
• l’unione di un insieme fuzzy e del suo complemento non restituisce l’insieme universo X (Fig.7a):
• l’intersezione di un insieme fuzzy col suo complemento non restituisce l’insieme vuoto (Fig.7b): A∩ ≠ ∅A A
A
μ
x
A∪ ≠ ΧA AA
μ
x
a)
b)
Fig.7: Rappresentazione grafica di A∩ ≠ ∅A e di A∪ ≠ ΧA
2.7 Inclusione fra due insiemi
Si dice che un insieme fuzzy A è incluso in un insieme fuzzy B se
69
)
,
A( )
B(
x
X
μ
x
μ
x
∀ ∈
≤
(16)μ
1
0
A
B
x
Fig.8: Rappresentazione grafica di inclusione
3 Prodotto cartesiano e relazioni fuzzy
Dati n fuzzy sets si definisce il loro prodotto cartesiano come l’insieme fuzzy dato da:
}
{
( ,
( )) :
,
1,....,
i i i A i i iA
=
x
μ
x
x
∈
X
i
=
n
}
{
1...
n( ,
A( )) :
1...
nA
=
A
× ×
A
=
x
μ
x
x
∈
X
× ×
A
(17)
dove la funzione di appartenenza è
μ
A( )
x
=
μ
A1× ×.. An( ) min
x
=
iμ
Ai( )
x
i .Questa scelta permette di considerare nell’insieme prodotto solo gli elementi che appartengono a tutti gli insiemi considerati: è sufficiente che un elemento non appartenga ad uno degli insiemi perché il suo grado di appartenenza all’insieme prodotto sia nullo. Allo stesso modo, se un elemento presenta un basso grado di appartenenza anche per un solo insieme, mentre soddisfa egregiamente i criteri di tutti gli altri insiemi, il suo grado di appartenenza all’insieme prodotto sarà basso. Gli unici elementi che appartengono all’insieme prodotto con grado elevato sono quelli che soddisfano con grado elevato il criterio di appartenenza a tutti gli insiemi (Fig.9).
x
y
(I)
A
B
x
y
(II)
A
B
Fig.9: Prodotto cartesiano tra elementi crisp (І) e tra insiemi fuzzy (ІІ)
Come per le relazioni crisp, una relazione fuzzy è un insieme di elementi del prodotto cartesiano , quindi è a sua volta un insieme fuzzy:
}
{
(( , ),
R( , )) : ( , )
R
=
x y
μ
x y
x y
∈ ×
X Y
(18)
Tale relazione può essere interpretata come una proposizione condizionale del tipo :
p: If X is A then Y is B
dove:
X e Y sono variabili definite su due spazi U e V;
A e B sono insiemi fuzzy sempre definiti sui soliti spazi U e V.
Mentre nella logica booleana la relazione esisteva o non esisteva (l’elemento (x,y) apparteneva o non apparteneva al sottoinsieme R del prodotto cartesiano), nel caso fuzzy quanto più è alta la funzione di appartenenza della coppia (x,y), tanto più è vero che esiste il legame fra x ed y. R rappresenta il valore della verità della proposizione condizionale
Se P e Q rappresentano due proposizioni fuzzy, analogamente al caso crisp vale: • negazione:
T P =1-T(P)
( )
(19)• disgiunzione:
Ρ
∨
Q: x is A or B T(P Q)=max(T(P),T(Q))
∨
(20) • congiunzione:Ρ
∧
Q: x is A and B T(P Q)=min(T(P),T(Q))
∧
(21) • implicazione:(P
→
Q) (vd §4.4.3)
3.1
Composizione di relazioni fuzzy
Sia R una relazione fuzzy su
Χ ×
Y
, S una relazione fuzzy suY× Ζ
, e una relazione fuzzy suW R S
= ∗
Z
Χ×
Generalmente la composizione viene eseguita in modo del tutto equivalente a quello di un di un prodotto tra matrici, dove però il “prodotto” e la “somma” sono sostituiti rispettivamente da “min” e “max”
w
( )
,
max min
(
R( )
,
,
( )
,
)
y Y Sx z
x y
μ
μ
∈=
μ
y z
(22)
Tale combinazione viene definita “composizione standard” od anche “composizione max-min fuzzy”; essa può essere generalizzata dalla composizione sup-T, dove T è una t-norma
( )
(
( ) ( )
)
W x, z =
sup
R x, y ,S y, z
y Y
T
∈
(23)
Esistono altri metodi di risoluzione delle composizioni fuzzy, tra cui una delle più note è quella conosciuta come composizione max-product e per la quale vale:
w
( )
,
max
(
R( )
,
,
S( )
,
)
y Yx z
x y
μ
μ
μ
∈=
y z
(24)
In generale risulta sempre, come nella logica crisp:
R S S* R
∗ ≠
(25)
3.2 Principio
di
estensione
Relazioni ed operazioni matematiche non fuzzy vengono computate su grandezze fuzzy in base al principio di estensione, introdotto dallo stesso Zadeh, secondo il quale
If y=g(x) And x=F={x,µ(x)} Then y=G={g(x),µ(x)}
(26)
4 Ragionamento Fuzzy
Un sistema che opera utilizzando la logica fuzzy esegue tre passi fondamentali (Fig.10): 1. la “fuzzificazione degli inputs
2. l’inferenza fuzzy
3. la defuzzificazione degli outputs
72
fuzzificazione
Applicazione
delle regole
defuzzificazione
Fig.10: Schema di un generico algoritmo fuzzy
4.1 Fuzzificazione
Si intende per “fuzzificazione” il procedimento attraverso il quale le variabili5 di ingresso (es. temperatura, pressioni, ph ecc.) vengono convertite in misure fuzzy. Tale conversione è effettuata attraverso le membership functions predefinite per quel contesto.
Una variabile linguistica è definita come la quintupla
{
x T x U G M
, ( ), , ,
}
, dove: ¾ x è il nome della variabile¾ T(x) è l’insieme dei nomi (o termini) dei valori linguistici della variabile x ¾ U è l’universo del discorso
¾ G è la regola sintattica che genera i nomi in T(x)
¾ M è la regola semantica che assegna a ciascun nome il suo significato , cioè un insieme fuzzy
5 la fuzzificazione può essere effettuata sia su variabili linguistiche, come è naturale, sia su variabili crisp utilizzando il “Principio di Estensione”
Base delle regole
Funzioni di appartenenza
Metodo di defuzzific.
X
iY
iμ(x
i)
μ(y
i)
1
Valori della variabile x
μ
X Variabile
linguistica
Very low Low Medium High Very high
x
a
b
c
d
e
Valori linguistici Regola semantica Funzione di appartenenzaFig.11:Relazione tra variabile linguistica e funzione di appartenenza
4.1.1 Modificatori linguistici
Sono avverbi del linguaggio naturale, come “molto”, “abbastanza”, “più o meno”, “leggermente”, ecc e modificano i termini in T(x) e i relativi insiemi fuzzy che ne determinano il significato.
Le modifiche avvengono applicando dei modelli matematici al grado di appartenenza μA assunto dal termine in assenza di modificatori. Indicando con α termini come “bello”, “alto”, “buono” ecc., esempi di modificatori diffusi nel ragionamento fuzzy sono:
a. l’operatore di concentrazione; b. l’operatore di dilatazione c. l’intensificatore di contrasto
Di seguito si riportano gli algoritmi utilizzati e alcuni esempi grafici dei possibili risultati ottenuti applicando gli stessi ad una funzione di appartenenza lineare.
a. operatore di concentrazione : riduce il grado di appartenenza di tutti gli elementi che sono “parzialmente” nell’insieme (riduzione dell’incertezza); l’algoritmo impiegato è:
( )
2 2"
molto
"
αμ χ
α α
χ
Χ⎡
⎤
⎣
⎦
=
=
∫
(27)
73
74
Fig.12: Esempio di applicazione del fattore di concentrazione
b. operatore di dilatazione: incrementa l’appartenenza di tutti gli elementi che sono “parzialmente” nell’insieme (aumento dell’incertezza); l’algoritmo maggiormente utilizzato è
( )
0.5"
leggermente
"
αμ χ
α
α
χ
Χ⎡
⎤
⎣
⎦
=
=
∫
(28)
Fig.13: : Esempio di applicazione del fattore di dilatazione
c. intensificatore di contrasto : aumenta i valori della funzione di appartenenza sopra 0.5 e diminuisce quelli sotto 0.5; il modello matematico proposto da Zadeh che caratterizza l’operatore è: 2 2
2
( )
( ) 0.5
"intensifica "
1 2(1
( ))
( ) 0.5
x
se
x
x
se
x
α α α αμ
μ
α
μ
μ
⎧
≤
= ⎨
−
−
≥
⎩
(29)
x
μ
Dilatazione
di A
A
μ
x
A
Concentrazione
di A
x
μ
A
Intensificazione
di A
0.5
Fig.
14: : Esempio di applicazione del fattore di intensificazione
4.1.2 Implicazione fuzzy
L’implicazione fuzzy è una funzione che, date due proposizioni fuzzy A e B, definisce il valore di verità della proposizione condizionale
If Then
Α
Β
Nella logica classica l’implicazione può essere definita in vari modi le cui estensioni alla logica fuzzy danno luogo a diversi operatori.
Ad esempio, l’implicazione ( A → B) può essere rappresentata sotto forma di regola
IF X is A Then Y is B
(30)
ed è equivalente alla relazione fuzzy(
)
(
)
R= A×B
∪
A×Y
(31)
per cui, risolvendo il prodotto con la funzione min e l’unione con la funzione max, una possibile espressione per l’operatore di implicazione fuzzy è la seguente:
( )
{
( )
( )
( )
}
R
x,y
max min
Ax ,
By ,1
x
μ
=
⎡
⎣
μ
μ
⎤
⎦
−
μ
A(Zadeh) (32)
Altre espressioni per l’operatore di implicazione fuzzy sono:
( )
{
( ) ( )
}
( )
{
( )
( )
}
( )
{
( ) ( )
}
R A B R A B R A Bμ
x,y =max 1-μ
x ,μ y
μ
x,y =min 1, 1-μ
x +μ y
μ
x,y =min μ
x ,μ y
(Kleene - Dienes)
(Lukasiewicz)
(Mamdani)
⎡
⎤
⎣
⎦
(33)
4.2
Regole di inferenza Fuzzy: Modus Ponens Generalizzato
Nella Logica Crisp la deduzione delle conseguenze a partire dalle premesse si ottiene mediante il modus ponens (MP):
(
)
Α ∧ Α ⇒ Β ⇒ Β
(34)
la cui interpretazione è: se si verifica l’evento A e se A genera B allora ogni volta che accade A, accade anche B.
La deduzione è possibile solo se la premessa è interamente soddisfatta, altrimenti non è possibile concludere nulla su B come mostra l’esempio seguente:
In logica fuzzy, invece, la premessa può essere soddisfatta con un qualsiasi grado di verità compreso fra 0 e 1, quindi anche se x non è esattamente A, ma è in qualche relazione con tale insieme, è possibile dedurre qualcosa su x, anche se non sarà esattamente B.
Per questo si ricorre al modus ponens generalizzato (GMP), in cui la premessa non coincide esattamente con il primo membro dell’implicazione, ma è in una qualche relazione con esso; allo stesso modo anche la conseguenza dedotta non è B, ma una proposizione in una qualche relazione con B:
′
Α
′
Β
Per trovare l’insieme fuzzy cui pervenire mediante il Modus Ponens Generalizzato, si considera l’implicazione “se x è A allora y è B” come una relazione fuzzy R, detta funzione d’implicazione fuzzy
′
Β
'
'
B
= D
A R
(35) la cui trattazione può essere fatta mediante la regola del max-min o altro(vd § 4.3.1).Per quanto riguarda la costruzione dell’implicazione fuzzy, sono state proposte diverse soluzioni, ad ulteriore dimostrazione che in logica fuzzy il progettista deve gestire diversi gradi di libertà: dalla scelta delle funzioni di appartenenza per definire i concetti espressi dagli insiemi alla definizione del concetto di implicazione fuzzy.
Alcune delle funzioni di implicazione più usate sono: • regola del minimo:
μ
R( , ) min
u v
=
{
μ
A( ),
u
μ
B( )
v
}
B
(36) • regola del prodotto (Larsen):
μ
R( , )
u v
=
μ
A( )
u
⋅
μ
( )
v
(37) • regola del max-min (Zadeh):μ
R( , ) max min
u v
=
{
{
μ
A( ),
u
μ
B( ) ,1
v
}
−
μ
A( )
u
}
( )
( )
(38)•
sequenza standard:( , )
1
( )
(39)0
( )
A B R A Bse
u
v
u v
se
u
v
μ
μ
μ
μ
μ
≤
⎧
= ⎨
>
⎩
4.2.1 Inferenza di Sistemi fuzzy con più regole
Nei sistemi fuzzy che utilizzano n regole esistono due possibili strategie per combinare le n conclusioni:
1. FITA (First Infer Then Aggregate) 2. FATI ( First Aggregate Then Infer)
Nella strategia FITA si applica prima la regola composizionale di inferenza alle singole regole, poi si combinano le conclusioni inferite dalle regole attraverso un operatore di aggregazione ( di solito il min o il max). L’approccio FITA include perciò nell’ordine:
1. l’implicazione 2. la composizione
3.
l’aggregazione.
Nella strategia FATI si aggregano invece prima tutte le regole generando una relazione fuzzy globale R che è l’aggregazione di tutte le relazioni di implicazione fuzzy corrispondenti alle singole regole, poi si applica la regola composizionale d’inferenza al fatto e alla relazione R. L’approccio FATI include perciò nell’ordine:
1. l’implicazione 2. l’aggregazione 3. la composizione
La conclusione dell’approccio FATI è sempre contenuta o al più coincide con la conclusione dell’approccio FITA.
Nel caso in cui le regole mostrino più antecedenti ed un solo conseguente (regole MISO- Multi-Input Single Output),
77
1
n
1 1 2 n n
If X is A And X is A And...X is A Then Y is B
(regola MISO),il connettivo AND viene interpretato come una congiunzione fuzzy, cioè una relazione fuzzy
1 2 n
R( X , X ,...X )
definita sul prodotto cartesianoX
1×
X ... X
2× ×
, ossia1 2 n 1 1 n n
R( X , X ,...X )=i(A (x ),..., A (x ))
(40)dove i è una t-norma.
4.2.2 Inferenza grafica
Consideriamo un sistema con due ingressi ed una uscita; il sistema è descritto dalle seguenti due regole fuzzy:
1 11 2 12
1 21 2 22
Regola 1: If X is A and X is A then Y is B
Regola 2: If X is A and X is A then Y is B
1 2
Supponiamo che i due ingressi crisp al sistema siano x1 e x2. Occorre innanzi tutto ‘fuzzificare’ gli input: tipicamente, si considerano x1 ed x2 come fuzzy singleton 6. Usiamo poi il minimo per risolvere l’operatore AND nell’antecedente di ogni regola e realizziamo anche l’operatore di implicazione con il minimo. Infine usiamo il massimo come operatore di aggregazione degli insiemi fuzzy prodotti da ciascuna regola.
μ
μ
A
11μ
A
12B
1y
Fig.15: Esempio di inferenza grafica
6 insieme fuzzy il cui supporto è un singolo punto
μ
μ
μ
μ
B
A
2A
22x
x
x
x
21x
x
1 2y
y
4.3 Defuzzificazione
I risultati prodotti dall’inferenza di regole fuzzy sono grandezze fuzzy espresse mediante attributi linguistici. Generalmente tali quantità non sono gestibili nella logiche di controllo, dove il sistema deve operare con valori crisp. Necessita a questo punto una conversione della grandezza linguistica in grandezza numerica: il processo di conversione viene indicato con il termine di “defuzzificazione”.
4.3.1 Metodi di defuzzificazione
Esistono diversi criteri di defuzzificazione tra i quali
78
Z
∈
1. Metodo della massima appartenenza (o metodo dell’altezza): è usato solo per funzioni di uscita con un picco:
( )
z
*
( )
z
z
c
c
μ
≥
μ
∀
(39)
μ
z
( )
cz
μ
∗z
∗Fig.16: Esempio grafico del metodo di massima appartenenza
2.
Metodo del centroide (o centro di gravità): è il più usato ed appartiene:
z =
*
μ (z)×zdz
c
μ (z)dz
c
∫
∫
(40)
z
*z
μ
Fig.17: Esempio grafico del metodo del centroide
3. Metodo della media pesata: è usato solo per funzioni di appartenenza simmetriche.
z =
*
μ (z)×z
c
μ (z)
c
∫
79
Fig.18: Esempio grafico del metodo della media pesata
4. Metodo della media dei massimi: è simile al primo metodo eccetto il fatto che il valore massimo può essere assunto in più di un punto.
z =
*
a+b
2
(42)
{
}
{
a = inf z/
c
(z)=h(C)
}
b = sup z/
c
(z)=h(C)
con h= altezza di C
μ
μ
(43)
Fig.19: Esempio grafico del metodo della media dei massimi
La letteratura scientifica riporta molti altri metodi di defuzzificazione, tuttavia la loro applicazione risulta circoscritta a specifici contesti e non si ritengono perciò di interesse per questa trattazione.
4.3.2 Scelta del metodo di defuzzificazione
La scelta del metodo dipende dal contesto e dal problema.
Possono comunque essere tenuti presenti alcuni criteri per misurare la bontà di un metodo, quali 1) continuità: un piccolo cambiamento nell’input di un processo fuzzy non dovrebbe produrre un grande cambiamento nell’output.
2) Non ambiguità: un metodo di defuzzificazione dovrebbe produrre un solo valore per z*.
3) Plausibilità: per essere plausibile, z* dovrebbe trovarsi approssimativamente nel mezzo del supporto di C ed avere un alto grado di appartenenza a C.
4) Semplicità computazionale: per esempio, il metodo dell’altezza e il metodo della media dei massimi sono più semplici del metodo del centroide.
a
z
*b
z
μ
ž
1ž
2z
μ(ž
1)
μ(ž
2)
z
*APPENDICE 1c: I sistemi intelligenti
1 PREMESSA
L'integrazione di differenti tecniche di apprendimento e di adattamento, per superare i limiti di ognuna e per realizzare effetti sinergici, ha contribuito negli ultimi anni alla diffusione dei sistemi “intelligenti” in svariati campi.
Non mi soffermerò sul significato del termine “intelligenza” in ambito computazionale, trattato ampiamente in letteratura; vorrei solo ricordare una citazione, per me importante:
“L'intelligenza è la possibilità di un sistema di usare conoscenze e preferenze preacquisite per realizzare nuovi obiettivi”1 /9/ /10/
Alla luce di quanto riportato nel decreto legislativo 59/2005 e s.m.i., dove si cita testualmente “….l’Autorizzazione Integrata Ambientale (AIA) deve essere basata sulle migliori tecniche disponibili
(MTD) compatibili con gli strumenti di pianificazione e programmazione del territorio vigenti…”, risulta
necessario avere almeno un quadro generale dello stato dell’arte. A tale fine questo capitolo è stato dedicato all’introduzione di differenti architetture, quelle maggiormente utilizzate, senza tuttavia avere la pretesa di entrare troppo nel particolare, rimandando in tal caso a testi specifici.
In generale gli algoritmi utilizzati nelle discipline di Intelligenza Artificiale operano la ricerca di un massimo o di un minimo globale in uno spazio finito sulla base di vincoli dell’insieme delle soluzioni. Da un punto di vista formale possiamo dire che, dato un elemento X appartenente a uno spazio cartesiano D (nel caso in cui n sia la cardinalità di D, allora X sarà un vettore), e data una funzione , detta funzione obiettivo, allora la ricerca dell'ottimo globale è la ricerca di un X* che massimizza tale funzione, cioè
e .
Fattori come presenza di più punti di massimo locale, vincoli sul dominio D, non linearità, possono rendere la ricerca molto difficoltosa, per cui il problema spesso non è risolvibile in tempi accettabili. Allora si fa uso di algoritmi di tipo euristico che, pur risolvendo il problema con gradi di incertezza e non assicurando la convergenza della ricerca alla soluzione, se non in casi particolari, richiedono tempi di convergenza molto minori.
Da qui la distinzione tra i metodi "forti" (“hard”) e quelli "deboli" (“soft”). I primi sono orientati alla soluzione di un problema specifico, sulla base della conoscenza del particolare dominio e della rappresentazione interna del sistema in esame. Le buone soluzioni ottenute sono difficilmente adattabili ad altri contesti e forniscono spesso, in questi casi, risultati non soddisfacenti.
I metodi deboli invece utilizzano poca conoscenza del dominio, non sono orientati a un target specifico e risolvono una vasta gamma di problemi.
80
1“intelligence is a capability of a system to use possessed knowledge and preferences in order to achieve new
2
RETI NEURALI, SISTEMI FUZZY, SISTEMI PROBABILISTICI E SISTEMI DI
CALCOLO EVOLUTIVO
È ben noto che i sistemi intelligenti sono importanti nei problemi di calcolo pratici. Molti di questi usano una combinazione di schemi di rappresentazione della conoscenza, di modelli di risoluzione e di strategie di apprendimento diversi.
Per realizzare un sistema intelligente è comunque richiesta l’interazione di varie tecniche ( ad es.le reti neurali, i sistemi fuzzy, i sistemi basati su algoritmi di computazione evolutiva) che devono risultare complementari (vd fig.1), in modo da poter essere in grado di risolvere i problemi specifici di dominio all'interno dello stesso sistema. Ogni tecnica infatti mostra limiti e vantaggi.
Fig. 1: interazioni reciproche Neural Networks (NN), Fuzzy Inference Systems (FIS) e Evolutionary
Computation (EC) conducenti alle differenti architetture.
Le reti neurali, per esempio, offrono una architettura altamente strutturata ( vd. Fig.2) con la possibilità di imparare e generalizzare proprie del cervello umano /14/. Esse memorizzano la conoscenza in modo distributivo all'interno dei relativi pesi (wi) che sono stati determinati imparando dai campioni presentati e la capacità di generalizzare è affidata alla struttura algebrica.
a)
b)
Fig. 2: a) Modello di neurone artificiale; b) esempio di perceptrone multistrato
E’ evidente che un sistema si fatto ha una risposta dipendente fortemente dal numero e dal tipo di esempi mostratigli e risulta incapace di trattare informazioni linguistiche, imprecise o vaghe.
I sistemi fuzzy /15/ /16/, d’altro canto, hanno una struttura che tenta di modellare il ragionamento umano a livello conoscitivo (vd fig3) /17/. Un sistema fuzzy ottiene la “conoscenza” da esperti del dominio tramite algoritmi che implementano regole di tipo “If-then”. Impiegano poi questo approccio basato sulle regole e utilizzano un ragionamento di interpolazione per rispondere ai nuovi input /18/. In questo caso, mentre l’interpretazione dei dati ottenuti è immediata, la necessità di disporre di esperti e la mancanza di meccanismi di self-organizing e self-tuning, tipici delle reti neurali, rendono i sistemi fuzzy adatti ad essere impiegati in ambiti abbastanza ristretti.
Fig.3: Esempio di struttura di un sistema fuzzy
Il ragionamento probabilistico, quali le reti Bayesian /19/ e la teoria di Dempster-Shafer /20/ /21/, dà uno strumento per valutare sistemi influenzati da casualità o da altri tipi di incertezze. Un vantaggio importante, ma contemporaneamente anche un limite di questo approccio, è la sua relativa capacità di aggiornamento poiché le valutazioni risultano condizionate ai database disponibili /22/.
Gli algoritmi evolutivi (EC- Evolutionary Computation), sicuramente quelli più recenti tra tutte le tecniche di computazione, si ispirano all'evoluzione naturale; comprendono gli algoritmi genetici, la
programmazione genetica, le strategie evolutive, i sistemi classificatori e la programmazione genetica.
Gli algoritmi evolutivi sono algoritmi di ricerca euristici, considerati metodi deboli. Tuttavia è stata ultimamente introdotta la nuova tipologia dei metodi deboli evolutivi, metodi che hanno inizialmente poca conoscenza del dominio ma che durante la loro evoluzione acquistano maggiore consapevolezza del problema, implementando alcune caratteristiche dei metodi forti ("intelligenza emergente")
Un algoritmo genetico (AG) è un algoritmo iterativo che opera su una popolazione di individui che codificano le possibili soluzioni di un dato problema. Gli individui sono valutati tramite una funzione, detta “fitness”, che ne misura la capacità di risolvere il problema e identifica i più adatti alla riproduzione. La nuova popolazione si evolve in base ad operatori random, ispirati alla riproduzione sessuale e alla mutazione. Il ciclo completo è ripetuto fino al raggiungimento di un dato criterio di fermata. L'utilizzo di questi algoritmi è essenzialmente legato alla programmazione dell'intelligenza artificiale in robotica, alla biocomputazione, allo studio dell'evoluzione dei sistemi cellulari paralleli, a particolari problemi di gestione e sistemi di ottimizzazione in ingegneria.
Gli AG hanno quindi come punti di forza la possibilità di risolvere problemi complessi senza conoscere il preciso metodo di soluzione, la capacità di auto-modificazione in base al mutamento del problema, la capacità di simulare alcuni fenomeni data una struttura e modalità operative isomorfe con quelle dell'evoluzione biologica. Del resto però l’architettura è spesso complessa e onerosa da realizzare.
La Programmazione Evolutiva (PE) è una strategia stocastica di ottimizzazione simile agli AG, ma mentre questi ultimi principalmente cercano di simulare gli operatori di crossover e mutazione come avviene in natura, la PE si concentra sul legame esistente tra genitori e figli. Il metodo di base consiste in tre passi:
1. la scelta casuale di una popolazione iniziale (maggiore è il numero di individui, più velocemente si arriva alla convergenza);
2. la copia di ogni individuo in una nuova popolazione e l’affidamento di una mutazione seguendo una certa probabilità;
3. il calcolo del fitness di ogni individuo e, tramite un torneo con selezione stocastica, la scelta di N possibili soluzioni.
L'obiettivo è la previsione della successiva configurazione del sistema, non attraverso l'operatore di crossover, come negli AG, ma affidandosi esclusivamente alla mutazione: la mutazione altera lo stato iniziale, modifica la transizione o cambia uno stato interno.
La caratteristica fondamentale di questo tipo di algoritmi è che i figli hanno un comportamento simile a quello dei genitori. Determinante risulta la scelta iniziale dalla quale dipende sia l’esistenza di una convergenza sia la velocità con cui vi si arriva, quindi il tempo necessario.
Le Strategie Evolutive sono tecniche sviluppate originariamente per problemi di ingegneria civile e strutturale. La principale differenza con la PE consiste nel fatto che gli individui peggiori vengono scartati deterministicamente. Il metodo di ottimizzazione si basa sulla scelta di strategie che vengono poi applicate alla popolazione. Le due più note sono la Strategia Plus e la Strategia Comma. Nel primo caso i genitori possono partecipare alla selezione nella generazione successiva, mentre nel secondo solo i figli possono essere selezionati, mentre i genitori muoiono.
I Sistemi Classificatori sono operatori che lavorano in un ambiente dal quale ricevono input che classificano secondo una serie di regole dai quali generano output di istruzioni da eseguire. Le istruzioni sono del tipo “if...then”. Ad esempio, il problema potrebbe essere l'ottimizzazione di un processo produttivo ad opera di un macchinario gestito da un computer: questo riceve dai propri sensori una serie di input come la temperatura del macchinario, la pressione esterna, il tipo di materia prima, e agisce secondo le regole di partenza. Tali istruzioni non sono fisse, ma se sono codificate in forma binaria evolvono come popolazioni di un AG e il loro fitness è la perfomance del macchinario.
La tecnica della Programmazione Genetica (PG) è simile a quella degli Algoritmi Genetici, ma in questo caso, la popolazione non è costituita da stringhe di bit, ma da programmi che quando vengono eseguiti si evolvono, si combinano, si riproducono o mutano per dar luogo ad altri programmi che costituiscono soluzioni migliori di un determinato problema. Questi programmi vengono codificati con una struttura ad albero in cui i nodi interni sono funzioni e le foglie sono i simboli terminali del programma.
Lo spazio di ricerca è costituito da tutti i programmi composti dai terminali e dalle funzioni definite per uno specifico problema.
La PG ha un grado di complessità maggiore rispetto agli AG, poiché la progettazione richiede la selezione di molti più parametri, come la generazione della popolazione iniziale, l'insieme delle funzioni e terminali di base, il tipo di selezione, la dimensione della popolazione e il numero massimo di generazioni, il criterio di terminazione. L'operatore di crossover è la forza trainante dell'algoritmo: si prendono a caso due sottoalberi da individui selezionati in base al loro fitness e si ricombinano dando vita a due alberi figli, con parametri che fissano limiti sulla dimensione massima degli alberi della popolazione. Altri operatori, quali la mutazione, la permutazione, l'editing, l'incapsulamento e la decimazione sono usati in casi particolari. In generale, gli operatori determinano la correttezza sintattica degli alberi generati, ma non la correttezza semantica. Sarà il fitness, penalizzando gli alberi che non rispettano le condizioni semantiche, a favorire la crescita di alberi semanticamente corretti. L'ottimizzazione del fitness consiste nella manipolazione del codice stesso delle funzioni e non solo dei parametri. L'estensione dello spazio di ricerca (lo spazio di tutte le funzioni che soddisfano la grammatica definita dall'utente) e la minore efficienza della mappatura in memoria della rappresentazione utilizzata fanno sì che la programmazione genetica richieda un elevato carico computazionale e un'elevata occupazione di memoria. Ne segue un utilizzo minore rispetto agli algoritmi genetici e la necessità di realizzare un'implementazione parallela di questi algoritmi su ambienti di tipo distribuito.
Esistono altre tecniche di approccio generale (general purpose) che operano a partire da una funzione di fitness che deve essere massimizzata. Alcune sono applicabili solo a domini limitati, come la programmazione dinamica, in cui la funzione di fitness è la somma delle funzioni fitness calcolate ad ogni fase del problema e non c'è interazione tra le varie fasi.
Nel Metodo del Gradiente si utilizzano le informazioni sul gradiente della funzione per guidare la direzione della ricerca. La funzione deve essere però continua, altrimenti non ne può essere calcolata
la derivata. In generale questi metodi sono detti di hillclimbing (scalata) e forniscono ottimi risultati nel caso di funzioni con un solo picco (unimodali), meno per funzioni multimodali, nelle quali non è detto
che il primo picco scalato sia il più alto.
Nella Ricerca Iterata si combina il metodo del gradiente con quello della Ricerca Casuale, in cui i punti dello spazio di ricerca sono scelti a caso. Trovato il picco, la scalata riparte da un altro punto scelto a caso. La tecnica ha il pregio della semplicità e da' buoni risultati con funzioni che ovviamente non hanno molti massimi locali. Tuttavia, poiché ogni prova è isolata, non si ottiene una figura complessiva della forma del dominio e mentre la ricerca casuale progredisce, si continuano ad allocare lo stesso numero di prove sia in regioni dove sono stati trovati alti valori di fitness, sia in regioni con basso valore di fitness.
La tabella 1 elenca i tre ingredienti principali di un sistema ibrido insieme ai loro vantaggi /23/ /24/.
Table 1. Comparison of different intelligent systems with classical approaches†.
FIS NN EC Symbolic AI Mathematical model SG B B SB Learning ability B G SG B Knowledge representation G B SB G Expert knowledge G B B G Nonlinearity G G G SB Optimization ability B SG G B Fault tolerance G G G B Uncertainty tolerance G G G B Real time operation G SG SB B †Fuzzy terms used for grading are good (G), slightly good (SG), slightly bad (SB) and bad (B).
Neural Networks (NN), Fuzzy Inference Systems (FIS), Probabilistic Reasoning (PR) and derivative free optimization techniques such as Evolutionary Computation (EC). Most
3 MODELLI
DI
CALCOLO
DI ARCHITETTURE IBRIDE
Le diverse architetture dei sistemi intelligenti possono essere suddivise in 4 categorie[***]: (1) stand alone (autonomi)
(2) trasformazionale (3) ibrido gerarchico (4) ibrido integrato
(5) Neuro-Fuzzy-Evolutionary
I paragrafi seguenti introducono ciascuna di queste strategie, evidenziandone benefici e limitazioni.
3.1 I modelli stand alone (autonomi)
Sono costituiti da componenti di software indipendenti che non interagiscono in nessun modo; il loro maggior pregio consiste nel permettere un confronto immediato delle risposte ottenute da tecniche differenti /20/. I modelli autonomi sono usati spesso per sviluppare semplici prototipi.
3.2 Il sistema intelligente ibrido trasformazionale
In un modello ibrido trasformazionale (MIT) il sistema utilizza una tecnica per ottimizzarne un’altra. La Fig.6 mostra un esempio di MIT: in questo caso l’interazione tra un sistema esperto e una rete neurale è dovuta o all’incapacità del primo di risolvere adeguatamente il problema o alla necessità di disporre di una velocità, un'adattabilità e una robustezza caratteristiche della rete neurale. Il sistema esperto viene usato per determinare le circostanze iniziali e l'addestramento per la rete neurale artificiale.
Purtroppo, i modelli trasformazionali sono significativamente limitati: la maggior parte sono solo “application-oriented”.
Fig. 6: Esempio di sistema ibrido trasformazionale
3.3 Il sistema intelligente ibrido gerarchico
Questa architettura è sviluppato in modo gerarchico, ed associa una funzionalità differente ad ogni strato. Il funzionamento generale del modello dipende dal funzionamento corretto di tutti gli strati. La Fig. 7 mostra un'architettura ibrida gerarchica che coinvolge una rete neurale, una procedura evolutiva e un sistema fuzzy. La rete neurale usa una procedura evolutiva per ottimizzare le relative prestazioni e l'uscita della rete funge da preprocessore ad un sistema fuzzy, il quale produce l'uscita finale.