logica fuzzy(5) 07

annuncio pubblicitario
Capitolo III
Logica Fuzzy
Sommario
La logica fuzzy o logica sfumata o logica sfocata è una logica in cui si può
attribuire a ciascuna proposizione un grado di verità compreso tra 0 e 1. È
una logica polivalente, e pertanto un'estensione della logica booleana. È
fortemente legata alla teoria degli insiemi sfocati e, già intuita da Cartesio,
Bertrand Russell, Albert Einstein, Werner Karl Heisenberg, Jan Lukasiewicz
e Max Black, venne concretizzata da Lotfi Zadeh.
Nel seguente capitolo verranno illustrati i concetti base della logica fuzzy e
le principali differenze che si incontrano rispetto al classico utilizzo di
numeri crisp. In una prima parte si descriveranno le funzioni fuzzy e le
relazioni insiemistiche più utilizzate, mentre nella seconda parte si
mostreranno le tecniche di defuzzificazione che poi saranno utilizzate nel
caso pratico.
3.1 La storia
Nei primi anni sessanta, Lotfi A. Zadeh, professore all'Università della
California di Berkeley, molto noto per i suoi contributi alla teoria dei sistemi,
cominciò ad avvertire che le tecniche tradizionali di analisi dei sistemi erano
eccessivamente ed inutilmente accurate per molti dei problemi tipici del
mondo reale. L'idea di grado d'appartenenza, il concetto divenuto poi la spina
dorsale della teoria degli insiemi sfumati, fu da lui introdotta nel 1964, e ciò
portò in seguito, nel 1965, alla pubblicazione di un primo articolo, ed alla
nascita della logica sfumata. Il concetto di insieme sfumato (o insieme
66
Capitolo III
Logica Fuzzy
sfocato), e di logica sfumata, attirò le aspre critiche della comunità
accademica; nonostante ciò, studiosi e scienziati di tutto il mondo, dei campi
più diversi, dalla psicologia alla sociologia, dalla filosofia all'economia, dalle
scienze naturali all'ingegneria, divennero seguaci di Zadeh. In Giappone la
ricerca sulla logica sfumata cominciò con due piccoli gruppi universitari
fondati sul finire degli anni settanta: il primo era guidato, a Tokyo, da T.
Terano e H. Shibata, mentre l'altro si stabilì a Kanasai sotto la guida di K.
Tanaka e Kiyoji Asai. Al pari dei ricercatori americani, questi studiosi si
scontrarono, nei primi tempi, con un'atmosfera fortemente avversa alla logica
fuzzy. E tuttavia, la loro tenacia e il duro lavoro si sarebbero dimostrati
estremamente fruttuosi già dopo un decennio: i ricercatori giapponesi, i loro
studenti e gli studenti di questi ultimi produssero molti importanti contributi
sia alla teoria che alle applicazioni della logica fuzzy. Nel 1974, Seto Assilian
ed Ebrahim H. Mamdani svilupparono, in Gran Bretagna, il primo sistema di
controllo di un generatore di vapore, basato sulla logica fuzzy. Nel 1976, la
Blue Circle Cement e il SIRA idearono la prima applicazione industriale
della logica fuzzy, per il controllo di una fornace per la produzione di
cemento. Il sistema divenne operativo nel 1982. Nel corso degli anni ottanta,
diverse importanti applicazioni industriali della logica fuzzy furono lanciate
con pieno successo in Giappone. Dopo otto anni di costante ricerca, sviluppo
e sforzi di messa a punto, nel 1987 Seiji Yasunobu ed i suoi colleghi della
Hitachi realizzarono un sistema automatizzato per il controllo operativo dei
treni metropolitani della città di Sendai. Un'altra delle prime applicazioni di
successo della logica fuzzy è un sistema per il trattamento delle acque di
scarico sviluppato dalla Fuji Electric. Queste ed altre applicazioni motivarono
molti ingegneri giapponesi ad approfondire un ampio spettro di applicazioni
inedite: ciò ha poi condotto ad un vero boom della logica fuzzy.
Una tale esplosione era peraltro il risultato di una stretta collaborazione, e del
trasferimento tecnologico, tra Università ed Industria. Due progetti di ricerca
67
Capitolo III
Logica Fuzzy
nazionali su larga scala furono decisi da agenzie governative giapponesi nel
1987, il più noto dei quali sarebbe stato il Laboratory for International Fuzzy
Engineering Research (LIFE). Alla fine di gennaio del 1990, la Matsushita
Electric Industrial Co. diede il nome di "Asai-go (moglie adorata) Day
Fuzzy" alla sua nuova lavatrice a controllo automatico, e lanciò una
campagna pubblicitaria in grande stile per il prodotto "fuzzy". Tale campagna
si è rivelata essere un successo commerciale non solo per il prodotto, ma
anche per la tecnologia stessa. Il termine d'origine estera "fuzzy" fu introdotto
nella lingua giapponese con un nuovo e diverso significato: intelligente.
Molte altre aziende elettroniche seguirono le orme della Panasonic e
lanciarono sul mercato, tra l'altro, aspirapolvere, fornelletti per la cottura del
riso, frigoriferi, videocamere (per stabilizzare l'inquadratura sottoposta ai
bruschi movimenti della mano) e macchine fotografiche (con un autofocus
più efficace). Ciò ebbe come risultato l'esplodere di una vera mania per tutto
quanto era etichettato come fuzzy: tutti i consumatori giapponesi impararono
a conoscere la parola "fuzzy", che vinse il premio per il neologismo dell'anno
nel 1990. I successi giapponesi stimolarono un vasto e serio interesse per
questa tecnologia in Corea, in Europa e, in misura minore, negli Stati Uniti,
dove pure la logica fuzzy aveva visto la luce.La logica fuzzy ha trovato
parimenti applicazione in campo finanziario. Il primo sistema per le
compravendite azionarie ad usare la logica sfumata è stato lo Yamaichi
Fuzzy Fund. Esso viene usato in 65 aziende e tratta la maggioranza dei titoli
quotati dell'indice Nikkei Dow, e consiste approssimativamente in 800
regole. Tali regole sono determinate con cadenza mensile da un gruppo di
esperti e, se necessario, modificate da analisti finanziari di provata
esperienza. Il sistema è stato testato per un periodo di due anni e le sue
prestazioni in termini di rendimento hanno superato l'indice Nikkei Average
di oltre il 20%. Durante il periodo di prova, il sistema consigliò "sell", ossia
"vendere", ben 18 giorni prima del Lunedì Nero (19 ottobre 1987): nel corso
68
Capitolo III
Logica Fuzzy
di quel solo giorno l'indice Dow Jones Industrial Average diminuì del 23%. Il
sistema è divenuto operativo nel 1988.
3.2 Numeri fuzzy
I numeri fuzzy sono insiemi fuzzy definiti sull’insieme R dei numeri reali con
funzione di appartenenza normale e convessa. Per definire una funzione di
appartenenza convessa è necessario introdurre l’insieme α-cut, ossia dato
l’insieme fuzzy A l’insieme α-cut, Aα, è l’insieme crisp per cui:
con Aα = { x | A (x) ≥ α } con 0 ≤ α ≤ 1
L’insieme Aα definisce una soglia che può essere interpretata come un livello
di confidenza α in una decisione o concetto rappresentati mediante un
insieme fuzzy. Un insieme fuzzy (definito su Rn) si definisce convesso se
tutti i suoi α-cut, 0 ≤ α ≤ 1, sono insiemi crisp convessi nel senso classico.
I numeri fuzzy di norma utilizzati sono triangolari e trapezoidali.
Un numero fuzzy triangolare è tipicamente denotato:
A = (a1, aM, a2)
e rappresentato graficamente dalla seguente membership function:
Figura 3.1 – Numero fuzzy triangolare
69
Capitolo III
Logica Fuzzy
Ovvero analiticamente:
Nella pratica spesso si ha un numero fuzzy triangolare centrale:
Figura 3.2 – Numero fuzzy triangolare centrale
Un numero fuzzy triangolare centrale è adatto a descrivere il concetto “vicino
a” (“vicino ad aM”). Operativamente, dovendo definire un valore incerto, si
può considerare a1 come il più piccolo valore possibile, a2 come il più grande
valore possibile, ed aM come il valore più plausibile.
Un numero fuzzy A = (a1, aM, aM) è detto numero triangolare sinistro, esso è
adatto a descrivere il termine ”altissimo” o simili nell’ipotesi che aM sia un
numero grande.
70
Capitolo III
Logica Fuzzy
Mentre un numero fuzzy A = (aM, aM, a2) è detto numero triangolare destro.
In particolare, un numero triangolare destro A= (0, 0, a), può essere usato per
descrivere il termine “bassissimo” o simili.
Un numero fuzzy trapezoidale è tipicamente denotato come segue:
A = (a1, b1, b2, a2)
ed è rappresentato graficamente dalla seguente membership function:
Figura 3.3 – Numero fuzzy trapezoidale
Analiticamente:
Se b1= b2= aM il numero trapezoidale si riduce ad un numero triangolare ed è
denotato A = (a1, aM, aM, a2).
Di conseguenza, un qualunque numero triangolare può essere scritto sotto
forma di numero trapezoidale, cioè (a1, aM, a2) = (a1, aM, aM, a2).
71
Capitolo III
Logica Fuzzy
Nella pratica risulta spesso [a1, b1] = [b2, a2], per cui il numero trapezoidale è
simmetrico ed è detto numero fuzzy trapezoidale centrale. Esso è adatto a
rappresentare l’intervallo [b1, b2] ed i numeri reali vicini a tale intervallo.
Figura 3.4 – Numero fuzzy trapezoidale centrale
Analogamente ai numeri triangolari si definisce un numero trapezoidale
sinistro il numero fuzzy A = (a1, b1, b2, b2), ed è adatto a rappresentare
“altissimo” o simili, nell’ipotesi che b1 sia un numero grande.
Mentre si definisce numero trapezoidale destro il numero fuzzy A = (b1, b1,
b2, a2) ed in particolare il numero A = (0, 0, b2, a2) è adatto a rappresentare il
termine “bassissimo” o simili.
3.2.1 Combinazione di numeri fuzzy e numeri crisp
Il principio di estensione ci permette di estendere ai numeri fuzzy le
operazioni aritmetiche standard sui numeri reali. Introduciamo, quindi, le
operazioni aritmetiche sui numeri fuzzy.
Addizione di numeri triangolari
Assegnati due numeri triangolari A1 e A2:
72
Capitolo III
Logica Fuzzy
si ha che:
La somma può facilmente essere estesa a n numeri triangolari.
Moltiplicazione e Divisione di un numero triangolare per un numero reale
Dati A = (a1, aM, a2) numero fuzzy triangolare ed r numero reale si ha:
Ar = rA = (ra1, raM, ra2)
La divisione di A per r è definita come moltiplicazione di A per 1/r
(ovviamente deve essere r ≠0).
Addizione di numeri trapezoidali
Assegnati due numeri trapezoidali A1 e A2:
si ha che:
La somma può facilmente essere estesa a n numeri trapezoidali.
Moltiplicazione e Divisione di un numero trapezoidale per un numero reale
Dati A = (a1, b1, b2, a2) numero fuzzy trapezoidale ed r numero reale si ha:
Ar = rA = (ra1, rb1, rb2, ra2)
La divisione di A per r è definita come moltiplicazione di A per 1/r
(ovviamente deve essere r ≠0).
73
Capitolo III
Logica Fuzzy
Somma di numeri triangolari e trapezoidali
Consideriamo il numero triangolare A1 = ( a1(1), aM(1),a2(1) ) che può essere
rappresentato come numero trapezoidale A1 = ( a1(1), aM(1), aM(1), a2(1) ), ed il
numero trapezoidale A1 = ( a1(2), b1(2), b2(2), a2(2) ). Si ha:
Media fuzzy triangolare
Consideriamo n numeri triangolari A1 = ( a1(i), aM(i),a2(i) ), i=1,…,n la media
fuzzy A è così definita:
che è il numero triangolare:
Media fuzzy triangolare pesata
Se i numeri reali rappresentano l’importanza di Ai = ( a1(i), aM(i),a2(i) ),
abbiamo:
74
Capitolo III
Logica Fuzzy
Media fuzzy trapezoidale
Analogamente ai numeri triangolari se consideriamo n numeri trapezoidali Ai
= ( a1(i), b1(i), b2(i), a2(i) ) i=1,…,n la media fuzzy è ancora un numero
trapezoidale così definito:
Media fuzzy trapezoidale pesata
Analogamente ai numeri triangolari possiamo definire le media fuzzy pesata
nel modo seguente:
3.3 Insiemi fuzzy
Un insieme fuzzy è caratterizzato dal fatto che il grado di appartenenza di
ogni elemento all’insieme può essere un qualunque numero reale tra 0 e 1.
Un insieme fuzzy A è definito quindi da una funzione di appartenenza µA :
X→[0,1], essendo X l’universo di definizione. L’universo X è un insieme
convenzionale (o crisp).
Spesso si usa il nome dell’insieme, che tipicamente è un’etichetta linguistica,
per indicare la funzione di appartenenza e si scrive semplicemente
A:X→[0,1].
I seguenti tre insiemi fuzzy sono definiti sullo stesso universo:
75
Capitolo III
Logica Fuzzy
Figura 3.5 – Esempio di insieme fuzzy
supporto: {x ∈X|µA (x) > 0} (insieme crisp)
core: {x ∈X|µA (x)=1} (insieme crisp)
altezza: h(A) = sup µA(x)
x ∈X
A è normale se h(A)=1
A è subnormale se h(A)<1
Fuzzy singleton ( o fuzzy point) : insieme fuzzy il cui supporto è un singolo
punto.
Alpha cut
76
Capitolo III
Logica Fuzzy
Consideriamo un insieme fuzzy A. Sia 0≤α ≤1.
Un alpha-cut (o lambda-cut) è un insieme crisp Aα ={x|µA (x)≥α}.
∀λ≤α , 0≤λ,α ≤1, si ha A α ⊆Aλ , dove A0 =X.
Figura 3.6 – Esempio di insieme alpha-cut
Un insieme fuzzy (definito su Rn ) si dice convesso se tutti i suoi α− cut ,
α ∈ (0,1], sono insiemi convessi nel senso classico.
Figura 3.7 – A, insieme fuzzy subnormale convesso; B, insieme fuzzy normale
non convesso
Come si denota un insieme fuzzy
77
Capitolo III
Logica Fuzzy
cioè x1 appartiene ad A con grado di appartenenza µA(x1), x2 con grado di
appartenenza µA(x2) , etc. (Osserviamo che la barra orizzontale non indica
una frazione, ma è semplicemente un delimitatore).
Unione di insiemi fuzzy
µA ∪ B (x)=max(µA (x),µB (x))
Figura 3.8 – Unione di insiemi fuzzy
78
Capitolo III
Logica Fuzzy
Intersezione di insiemi fuzzy
µA∩B (x)=max(µA (x),µB (x))
Figura 3.9 – Intersezione di insiemi fuzzy
Complemento di un insieme fuzzy
Figura 3.10 – Intersezione di insiemi fuzzy
Inclusione di insiemi fuzzy
A ⊆ B ⇔µA (x)≤µB(x)
Figura 3.11 – Inclusione di insiemi fuzzy
79
Capitolo III
Logica Fuzzy
3.3.1 Relazioni fuzzy
È un insieme fuzzy definito sul prodotto cartesiano
R:X×Y→[0,1]
Figura 3.12 – Esempi di relazioni fuzzy
R∪R ≠E, con E relazione completa
R∩R ≠O, con O relazione nulla
Prodotto cartesiano di insiemi fuzzy
Dati A:X→[0,1], B:Y→[0,1], il prodotto cartesiano A×B è una relazione
fuzzy:
A×B:X×Y→[0,1]
µX×Y (x, y) =min (A(x),B(y))
Figura 3.13 – Prodotto cartesiano di insiemi fuzzy
Rappresentazione di relazioni fuzzy
80
Capitolo III
Logica Fuzzy
Sia R la relazione che rappresenta il concetto “molto lontano” tra gli insiemi
X={NewYork,Parigi} e Y={Pechino,NewYork,Roma}.
R può essere rappresentata come segue:
- matrice
- R(X,Y) =1 (NewYork,Pechino) + 0 (NewYork,NewYork) +...
Composizione di relazioni fuzzy
R relazione fuzzy su X×Y, S relazione fuzzy su Y×Z, e W=R○S relazione
fuzzy su X×Z:
- composizione max-min fuzzy (o composizione standard):
Analogamente si può definire la composizione max-product fuzzy.
In generale, sia nel caso di composizione crisp sia nel caso di composizione
fuzzy, risulta R○S≠S○R.
Estensione di una funzione crisp
Una funzione crisp f :X→Y può essere estesa in f :P(X)→P(Y) come segue:
∀A∈P(X): f (A) ={y| y =f (x), x∈A}.
P(X) è l’insieme potenza (cioè l’insieme dei sottoinsiemi) di X.
81
Capitolo III
Logica Fuzzy
Figura 3.14 – Estensione di una funzione crisp
La funzione inversa f −1 può essere estesa in f −1:P(Y)→P(X) come segue:
-1
∀B∈P(Y):f (B)={x| f (x) ∈B}
3.3.2 Variabili linguistiche
Una variabile linguistica è una variabile i cui valori sono termini linguistici.
Figura 3.15 - Esempio di variabile linguistica
82
Capitolo III
Logica Fuzzy
Una variabile linguistica è definita in termini di una variabile base (variabile
in senso classico), i cui valori sono numeri reali all’interno di un dato
intervallo.
I termini linguistici, che rappresentano valori approssimati della variabile
base, sono interpretati come numeri fuzzy.
Una variabile linguistica è caratterizzata da una quintupla (v, T, X, g, m)
dove:
v = nome della variabile
T = insieme dei termini linguistici di v;
X = universo di definizione della variabile base;
g = regola sintattica (una grammatica) per generare i termini linguistici (ad
esempio, “molto alta”, “non molto bassa”);
m = regola semantica che assegna a ciascun termine linguistico t∈T il suo
significato, m(t), che è un insieme fuzzy su X (universo di definizione della
variabile base), cioè m:T→F(X) .
Una variabile linguistica è definita attraverso i suoi termini primari
(rappresentati nella figura precedente). I termini primari sono etichette di
insiemi fuzzy: ‘bassissima’, ‘bassa’, ‘media’, ‘alta’ e ‘altissima’.
Modificatori linguistici
I termini atomici (quali ‘medio’, ‘alto’, ‘buono’, ‘bello’) del linguaggio
naturale possono essere modificati con aggettivi o avverbi come ‘molto’,
‘quasi’, ‘più o meno’, ….
Interpretando i termini atomici come insiemi fuzzy, l’effetto di un
modificatore linguistico è quello di modificare la funzione di appartenenza di
un termine atomico.
Sia α un termine atomico
83
Capitolo III
Logica Fuzzy
Si ha, ad esempio, per "molto"α = α 2 :
per "leggermente"α= α1/2:
….
Le espressioni come la prima sono dette concentrazioni, perché riducono il
grado di appartenenza di tutti gli elementi che sono “parzialmente”
nell’insieme (riduzione dell’incertezza).
Più basso è il valore di appartenenza di un elemento ad un insieme fuzzy, più
è ridotta la sua appartenenza mediante una concentrazione.
Le espressioni come la seconda sono dette dilatazioni, perché incrementano
l’appartenenza di elementi che sono “parzialmente” nell’insieme (aumento
dell’incertezza).
Figura 3.16 – Concentrazione di un insieme fuzzy
Figura 3.17 – Dilatazione di un insieme fuzzy
84
Capitolo III
Logica Fuzzy
Intensificazione
Un’altra operazione sugli insiemi fuzzy linguistici è l’intensificazione.
Questa operazione incrementa il grado di appartenenza degli elementi il cui
valore di appartenenza originale è > 0.5 e diminuisce il grado di appartenenza
degli elementi il cui valore di appartenenza originale è < 0.5.
L’intensificazione può essere espressa in vari modi, uno dei quali, proposto
da Zadeh, è
L’intensificazione aumenta il contrasto tra gli elementi dell’insieme con
µ >0.5 e quelli con µ <0.5.
Figura 3.18 – Intensificazione di un insieme fuzzy
85
Capitolo III
Logica Fuzzy
3.4 Defuzzificazione
Sia C l’insieme fuzzy di uscita. In generale, C risulterà dall’unione di varie
funzioni triangolari, trapezoidali, etc. Magari non tutte queste funzioni
saranno normali. Occorre “defuzzificare” C per produrre un numero crisp.
3.4.1 Metodi di defuzzificazione
- Metodo della massima appartenenza (o metodo dell’altezza): è usato solo
per funzioni di uscita con un picco:
µ C(z*)≥ µ C(z)
∀z∈Z
Figura 3.19 - Metodo della massima appartenenza
- Metodo del centroide (o centro di gravità): è il più usato:
dove ∫ denota integrazione algebrica.
86
Capitolo III
Logica Fuzzy
Figura 3.20 – Metodo del centroide
- Metodo della media pesata: è usato solo per funzioni di appartenenza
simmetriche.
dove Σ denota somma algebrica. Ogni funzione membro nell’uscita è pesata
con il suo valore di appartenenza massimo.
Esempio:
Figura 3.21 – Metodo della media pesata
dove a e b sono le medie delle rispettive funzioni.
87
Capitolo III
Logica Fuzzy
- Metodo della media dei massimi: è simile al primo metodo eccetto il fatto
che il valore massimo può essere assunto in più di un punto. Si ha
dove a e b sono definiti come segue:
Figura 3.22 – Metodo della media dei massimi
a = inf {z|µ C(z) h(C)}
b = sup{z| µ C(z) h(C)}
con h = altezza di C.
3.4.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.
88
Capitolo III
Logica Fuzzy
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.
89
Scarica