1
INTRODUZIONE
PERCHE’ UNA LOGICA FUZZY
I LIMITI DELLA LOGICA CLASSICA
Sono noti i molti paradossi che affliggono dal tempo dell’antica Grecia la rigida dicotomia della logica
classica. Uno fra tutti quello del “mucchio di grano” proposto da Eubulo di Mileto, filosofo greco della
seconda metà del IV secolo e contemporaneo di Aristotele, noto nelle due formulazioni equivalenti “dal basso
all’alto” e “dall’alto al basso”, qui proponiamo la seconda.
Mettiamo su un prato un bel mucchio di grano ed affermiamo:
è un mucchio di grano! Ed è senz’altro vero.
Togliamo dal mucchio di grano un chicco ed affermiamo:
è un mucchio di grano! Ed è ancora vero.
Togliamo un altro chicco di grano; abbiamo ancora un bel mucchio di grano, d’accordo.
Continuiamo a togliere ogni volta un chicco finché sul prato non ne rimanga che uno:
è ancora un mucchio di grano?... Stavolta pare proprio di no.
E a quale chicco ha smesso di essere “mucchio di grano” per divenire un “non-mucchio di grano”?
Siamo passati dal “mucchio di grano” al “non-mucchio di grano” senza aver saputo indicare quale sia stato il
chicco di grano che ha trasformato A in non-A, e questo perché, nella logica classica, il passaggio dal vero al
falso è brusco, netto, “crisp”.
Esistono anche molte altre situazioni che la logica classica non riesce a gestire adeguatamente, per
esempio tutte quelle situazioni vere solo in parte, “parzialmente vere” o “parzialmente false” e non
assolutamente vere o assolutamente false.
Ecco un esempio di situazioni né completamente vere né completamente false:
O ancora. Sapendo, per esempio, che “la maggior parte degli uomini giovani è in ottima salute” e che
“Ramiro è un uomo giovane” né la logica dei predicati classica, né la teoria delle probabilità possono
autorizzarmi a dedurre qualcosa sulla salute di Ramiro, mentre il nostro comune buon senso facilmente ci
fa dedurre che anche Ramiro, essendo giovane, godrà di un’ottima salute e questo anche la Logica Fuzzy
può farlo.
Il bicchiere è pieno?
Oppure il bicchiere è
non-pieno,
cioè vuoto?
Il prato è al sole?
Oppure il prato è
non-al-sole,
cioè in ombra?
2
E qui veniamo ad uno degli aspetti più interessanti del modo Fuzzy: la similitudine tra il modo di
ragionare umano ed i meccanismi della Logica Fuzzy.
IL RAGIONAMENTO UMANO
Gli esseri umani hanno la capacità di eseguire moltissimi compiti mentali e fisici, senza dover eseguire
misurazioni esatte, senza calcoli matematici, anzi, gestendo informazioni parziali ed imprecise,
percezioni, come potrebbe essere quella della “distanza” nel parcheggiare un’auto o della “rischiosità”
delle manovre da eseguire guidando in mezzo al traffico.
E questo perché il nostro cervello è perfettamente in grado di valutare asserzioni vere solo in parte,
permettendoci, così, di produrre inferenze ed eseguire delle scelte ottimali in base ad informazioni che,
seppure imprecise, incomplete, approssimative e parzialmente vere, sono sufficienti a farci prendere la
decisione sensata in un tempo brevissimo.
Il linguaggio umano, come il mondo in cui viviamo, sono per loro natura imprecisi e, quando non incerti,
approssimati. Questo tipo di incertezza, vaghezza è la fuzziness.
Si può intuire il grado di vaghezza di una cosa soltanto quando si è provato a renderla precisa.
(Bertrand Russell)
Nella logica classica, aristotelica e bivalente, i principi fondamentali sono due.
Il primo è la legge del terzo escluso, secondo il quale ciascuna proposizione può essere solamente o
vera o falsa, senza alcuna sfumatura di grigio tra il bianco e il nero.
Fu Platone, invece, a porre le fondamenta di quella che sarà poi la Logica Fuzzy, postulando
l’esistenza di una “terza ragione”, oltre al vero ed al falso, nella quale convivono entrambi.
Il secondo è la legge di non contraddizione, secondo la quale un elemento non può appartenere
contemporaneamente ad A e a non-A, il suo complemento.
E la matematica è esatta, ma la realtà non lo è e nel mondo reale, per come gli umani lo percepiscono, c’è
parzialità piuttosto che categoricità ed assolutezza, per cui capita che esistano, come abbiamo visto,
situazioni che non sono solo o vere o false e casi in cui un qualcosa appartiene contemporaneamente ad un
insieme ed al suo complemento logico, basta andare dal cinese per assaggiare una salsa agrodolce e
sperimentare un sapore dolce-amaro!
“Nella misura in cui le leggi della matematica si riferiscono alla realtà non sono certe; e nella misura in
cui sono certe non si riferiscono alla realtà” (A. Einstein)
Punto cruciale, invece, della filosofia fuzzy è che un elemento possa contemporaneamente appartenere ad
un insieme ed al suo complemento, perché, se nella teoria ingenua degli insiemi una cosa o è o non è, nel
mondo fuzzy l’appartenenza ad un insieme è associata ad un grado, quindi una salsa può essere dolce ed
agra insieme, per esempio dolce per il 60% ed agre per il 40%, possedendo un grado di appartenenza 0.6
all’ “essere dolce” ed un grado di appartenenza 0.4 all’ “essere agra” e siamo liberi di rappresentare un
tramonto o un’alba come situazioni in cui il sole c’è e non-c’è …
3
La Logica Fuzzy, dunque, capace di considerare tutte le possibili sfumature di grigio tra il bianco ed il
nero, tra il vero ed il falso, è molto più adatta della logica classica a simulare il mondo reale, il modo di
ragionare umano e la conoscenza da esso generata.
ESEMPIO
Tornando all’esempio del controllo di un veicolo mentre si guida, appare evidente la similitudine tra il nostro
comportamento ed un sistema di controllo fuzzy, che approfondiremo più avanti.
Una tipica situazione potrebbe essere:
SE il veicolo davanti sta frenando E la mia velocità è elevata E lo spazio tra noi non è molto
ALLORA riduco abbastanza la velocità!
Per decidere cosa fare, perciò, ci basiamo su regole del tipo “se … allora” analogamente ai sistemi fuzzy.
Infatti, e lo vedremo, un Controllo Fuzzy, cioè un sistema che sulla base delle condizioni presenti indica la
decisione da prendere o il controllo da attuare, usa proprio delle regole del tipo “se … allora”, che combinano
più variabili di tipo fuzzy in un antecedente, per generare il valore di una o più variabili fuzzy come
conseguente, ossia la decisione da prendere, con un processo inferenziale.
L’APPROCCIO FUZZY
Lotfi A. Zadeh, l’ideatore della Logica Fuzzy, professore di Ingegneria Elettrica e Teoria dei Sistemi a
Berkeley, in California, ma americano di adozione e iraniano di origine, quindi dotato anche di
un’attitudine mentale orientale, alla fine degli anni ‘60, affermava che “la Logica Fuzzy ha l’obiettivo di
formalizzare un modo di ragionare che sia approssimato piuttosto che esatto, ed il ragionamento umano è
approssimato per natura, perché abbiamo una conoscenza parziale, trattiamo con dati parziali, ed il
concetto di parzialità, specialmente quello di verità parziale, è centrale nel nostro modo di ragionare
come nella Logica Fuzzy” [5], logica che ha anche l’obiettivo di applicare ai calcolatori una modalità di
ragionamento simile a quella umana.
Bart Kosko, brillante allievo di Zadeh, trent’anni fa sosteneva che “le regole dei nostri ragionamenti sono
regole fuzzy” [6], che attivano e mettono in comunicazione certe aree cerebrali a generare la decisione da
prendere o l’inferenza da trarre.
La superiorità del ragionamento umano rispetto a quello matematico è dovuta alla sua tolleranza nei
confronti dell’imprecisione ed alla sua capacità di sintesi, ossia di estrarre da un gran numero di
informazioni quel sottoinsieme di dati necessario e sufficiente a prendere la decisione più sensata. Anche
nel linguaggio naturale regole del tipo “se … allora”, tipiche del mondo fuzzy, ci guidano a gestire un
ragionamento.
Un sistema fuzzy, un sistema di regole che trasforma una serie di input nell’output desiderato, si
comporta in maniera simile al cervello umano, infatti, come nella nostra memoria associativa, ciascun
input attiva tutte le regole in misura specifica e più è precisa la corrispondenza dell’input con la parte del
“se” di una regola, più viene eccitata la parte dell’ ”allora” di quella stessa regola.
Il sistema fuzzy somma tutti questi output, o parti dell’ “allora” e ne determina, ad esempio, la media o il
centroide che sarà l’output dell’intero sistema.
4
Esistono sistemi fuzzy adattativi, che apprendono le proprie regole dai dati e si comportano come un
esperto umano, riuscendo, come noi, ad imparare dall’esperienza, ossia utilizzano nuovi dati per
accrescere e perfezionare la propria conoscenza.
Fuzzy, dunque, non è sinonimo di approssimativo, di arrabattato, la Logica Fuzzy non dà output
approssimativi, viene usata dal 1987 in Giappone per il controllo operativo dei treni metropolitani della
città di Sendai per dirne una, sono invece gli input ad essere approssimativi o difficilmente classificabili e
la tolleranza per questa loro “vaghezza” rende la logica fuzzy abbastanza elastica da includerli nei sistemi
e nei ragionamenti logici che finora avevano dovuto escluderli, ampliando, perciò, la capacità di
trattazione della logica classica più che ponendosi come sua antitesi.
CONCETTI FUZZY
In questo breve cenno sulla necessità di una logica più ampia rispetto a quella classica, vogliamo
considerare una delle categorie di concetti per noi usuali, nel nostro modo di ragionare, ma che la logica
classica non è in grado di gestire, quella dei concetti “vaghi”, sfumati, Fuzzy, appunto.
In effetti il paradosso del mucchio di grano si poneva come tale perché faceva implicitamente riferimento
ad un concetto come quello di “piccolo” che per sua natura è vago, non esattamente definibile, Fuzzy.
Allora l’origine del paradosso è la vaghezza, che la logica classica non sa trattare, liquidando il problema
con il dichiarare l’insensatezza di ogni ragionamento che coinvolga nozioni vaghe, ponendo che non sia un
difetto della logica classica quello di non riuscire a formalizzare l’uso di concetti vaghi, ma che sia un
difetto dei linguaggi naturali l’includere l’uso di tali concetti privi di una frontiera precisa, posizione, ad
esempio, di G. Frege e B. Russel. Citando Frege:
“… ogni concetto deve avere confini netti, così che sia determinato per ogni oggetto se esso cade o no
sotto il concetto (…) La nota fallacia conosciuta come Acervus poggia sulla circostanza che viene trattato
come concetto qualcosa (ad esempio il mucchio) che per la sua imperfetta delimitazione non può venire
riconosciuto come tale in logica.” [11]
Dunque, eludendo il problema, la logica classica nelle proposizioni tiene fuori gli aggettivi, perché fanno
perdere oggettività alla proposizione, dire “Aristodemo è alto” è relativo, mentre dire “oggi c’è il sole” è
oggettivo: o c’è o non c’è.
La logica Fuzzy, invece, desidera poter includere gli aggettivi, la non-oggettività, la soggettività, anche
perché l’assolutizzazione di una presunta oggettività viene a cadere appena si allarga l’orizzonte oltre il
proprio naso: qui c’è il sole ed a pochi meridiani di distanza sta già tramontando e lì il sole “c’è e non c’è”
contemporaneamente e questa duplice appartenenza ad A e a non-A solo la Logica Fuzzy la ammette,
mentre la logica classica entra già in scacco, inciampando in quei paradossi che da tempo immemore non
riesce a togliersi di dosso..
Là dove “sembrerebbe in definitiva che la logica classica non sia capace di padroneggiare situazioni in
cui gli oggetti del discorso subiscono una evoluzione” [8], una particolare duttilità permette alla Logica
Fuzzy di includerli e gestirli.
5
Infatti, piuttosto che forzare, limitare, ingabbiare, addomesticare un concetto vago, le sembra più semplice,
e rispettoso, prenderlo così com’è, cioè accettarne la vaghezza ed allentare, sfumare, invece, i contorni, i
limiti dell’insieme che vorrebbe includerlo, rendendolo così capace di inglobarlo “in parte”.
Allora, piuttosto che irrigidire i confini, forzando una chiave quadrata, l’elemento, in una toppa rotonda,
l’insieme o il suo complemento, la Logica Fuzzy ammorbidisce i confini dell’insieme che riesce, così, ad
includerlo “per un certo grado”, perché “tutto è una questione di misura” [6].
Ma andiamo per passi.
In generale un concetto è detto Fuzzy quando corrisponde ad un insieme che non ha un confine ben preciso
tra gli oggetti che gli appartengono e quelli che non gli appartengono. Esempi ne sono i concetti di “bello”,
“piccolo”, “veloce”, “lento”, “alto”, “basso”, “giovane”, “scuro”, “ricco”, “vicino”, “utile”, “facile”,
“amico”, ecc, mentre altri concetti Fuzzy non lo sono affatto, come: “sposato”, “fratello”, “maschio”,
“femmina”, “numero intero”, “numero naturale” che hanno, invece, confini netti, crisp.
Concetto chiave nella filosofia fuzzy è allora quello di grado di appartenenza di un elemento ad un insieme.
Questo valore, compreso tra lo 0 del non appartenere affatto e l’1 dell’appartenere completamente, indica
l’appartenenza “parziale” dell’elemento all’insieme considerato.
I concetti fuzzy, in genere, sono più complessi dei concetti che non lo sono ed appartengono a situazioni
troppo complesse od imprecise da essere manipolate con gli strumenti tradizionali, mentre possono essere
adeguatamente studiate attraverso un approccio linguistico, squisitamente fuzzy, in cui si usano parole o
frasi del linguaggio naturale anziché numeri, ed in cui si sacrifica la precisione a favore del significato, in
modo simile a quanto avviene nella nostra vita reale, come mostra la seguente Figura. [13]
La logica sfumata si propone, dunque, “come un'interpretazione flessibile delle trasformazioni, della
vaghezza e pluralità di senso, delle complessità del reale. Le formalizzazioni logico-matematiche classiche
epuravano gli oggetti d'analisi da incertezza e vaghezza, la logica fuzzy invece ha come scopo una
rappresentazione formale che tenga conto e sappia trattare l'incertezza”. [12]
In una parola la Logica Fuzzy ha incluso la bandita incertezza.
Vs
6
Concludendo, la Logica Fuzzy, superata l’iniziale avversità del mondo accademico occidentale di struttura
mentale aristotelica, oggi viene largamente utilizzata perché concettualmente semplice, estremamente
flessibile, tollerante nei confronti dell’imprecisione dei dati, capace di modellare funzioni non lineari di
arbitraria complessità e di rendere trattabili problemi che altrimenti non lo sarebbero, strutturabile sulla base
dell’esperienza di esperti umani, facilmente usabile insieme alle tecniche di controllo convenzionali ed è
basata sul linguaggio naturale, dove parole e frasi vengono usate al posto dei numeri attraverso le variabili
linguistiche delle quali parleremo più avanti.
Ma come fa tutto questo?
Per avvicinarci alla logica fuzzy useremo un approccio induttivo, partendo da semplici intervalli numerici.
Mancando un testo introduttivo alla Logica Fuzzy in italiano, si è pensato di fornire, nella prima parte, un
compendio della teoria Fuzzy tratta dall’ottimo testo inglese dei coniugi Bojadziev [1] rielaborato ed integrato
da altri testi e da materiale reperito in rete, per i quali si rimanda alla Bibliografia e Sitografia.
Nella seconda parte, invece, si affronterà il problema di classificare e rappresentare i siti web in uno spazio
tassonomico proposto alcuni anni fa, utilizzando un approccio fuzzy, che traduca le percezioni umane riguardo
ai siti in coordinate dello spazio di classificazione.
8
CAPITOLO 1
NUMERI – INTERVALLO E LORO ARITMETICA
NUMERI-INTERVALLO
Ci troviamo in ℛ, insieme di tutti i numeri reali.
Consideriamo il caso in cui il valore di interesse , numero reale, sia incerto.
Sappiamo soltanto che è collocato tra i due numeri reali 1
e 2
, con 1
< 2
,
la cui coppia forma un intervallo.
Tutti i numeri appartenenti a questo intervallo vengono considerati aventi pari diritto in una data
situazione, ossia tutti possono ugualmente rappresentare .
Usualmente si assume che appartenga ad un intervallo chiuso e limitato, [ 1
, 2
],
ma l’intervallo potrebbe essere qualunque: aperto-chiuso ( 1
, 2
] , chiuso-aperto [ 1
, 2
),
aperto ( 1
, 2
), o illimitato a sinistra (−∞, 2
), a destra ( 1
, ∞), o in entrambi gli estremi (−∞, ∞)
Un Numero-Intervallo è definito come l’insieme dei numeri reali che risiedono nell’intervallo:
= [ 1
, 2
] = { | 1
≤ ≤ 2
1
, 2
, ∈ ℛ } (1.1)
Perciò l’intervallo chiuso rappresenta un numero incerto x ∈ [ 1
, 2
].
Geometricamente è rappresentato da un segmento sull’asse reale
Se, in particolare, 1
= 2
= il Numero-Intervallo , dato dalla (1.1), si riduce al numero reale =
[, ] che è detto punto intervallo o singleton.
Notare, quindi, come un Numero-Intervallo sia una generalizzazione di un punto intervallo, cioè
sia la generalizzazione di un numero reale.
Per un Numero-Intervallo si definiscono Ampiezza, Grandezza, Immagine e Inverso come segue:
Ampiezza ( ) = 2
− 1
Grandezza | | = (| 1
|, | 2
|) =
Immagine −
= [− 2
, − 1
]
numero-intervallo −
speculare del numero-intervallo rispetto all’origine
Inverso −1
= [
1
2
,
1
1
] con 0 ∉ [ 1
, 2
]
1
2
| 1
| se | 1
| ≥ | 2
|
| 2
| se | 1
| ≤ | 2
|
−
0
− 2
2
− 1
1
−1
1
5
1
2
0
5
2
1
9
L’insieme di tutti gli intervalli chiusi in ℛ è denotato da ( )
I suoi elementi, gli intervalli, sono denotati da lettere maiuscole , , , …
I numeri reali, i punti intervallo, sono denotati da lettere minuscole , , , . . . , , ,
Inclusione:
Dati due Numeri-Intervallo = [ 1
, 2
] e = [ 1
, 2
] tali che 1
< 1
< 2
< 2
scriviamo che ⊂ , cioè [ 1
, 2
] ⊂ [ 1
, 2
] , o che ⊃ , cioè [ 1
, 2
] ⊃ [ 1
, 2
] , volendo significare
che l’intervallo è contenuto, incluso come un sottoinsieme, nell’intervallo .
L’inclusione viene riferita come la proprietà di annidamento degli intervalli; l’intervallo è infatti
annidato, nascosto, nell’intervallo
L’inclusione, naturalmente, può venire generalizzata a più di due intervalli.
Dati gli intervalli = [ 1
, 2
], = [ 1
, 2
], … , = [ 1
, 2
], = [ 1
, 2
]
aventi gli estremi tali che 1
< 1
< ⋯ < 1
< 1
< 2
< 2
< ⋯ < 2
< 2
allora si ha l’inclusione: [ 1
, 2
] ⊂ [ 1
, 2
] ⊂ ⋯ ⊂ [ 1
, 2
] ⊂ [ 1
, 2
]
Uguaglianza:
Due intervalli = [ 1
, 2
], = [ 1
, 2
] si dicono uguali se 1
= 1
e 2
= 2
, ed in questo caso
scriviamo =
OPERAZIONI ARITMETICHE CON I NUMERI-INTERVALLO
Le operazioni aritmetiche tra gli intervalli (numeri incerti) in (ℛ) seguono direttamente dalla definizione
di Numeri Intervallo e dalle operazioni aritmetiche definite sui numeri reali.
Per gli intervalli sono definite le seguenti operazioni.
Considerando ad es. = [ 1
, 2
] e = [ 1
, 2
] si definisce:
Addizione di intervalli
A + B = [ 1
, 2
] + [ 1
, 2
] = [ 1
+ 1
, 2
+ 2
]
Sottrazione di intervalli
− = [ 1
, 2
] − [ 1
, 2
] = [ 1
− 2
, 2
− 1
]
Che corrisponde all’addizione ad dell’immagine di :
A + −
= [ 1
, 2
] + [− 2
, − 1
] = [ 1
− 2
, 2
− 1
] = −
Moltiplicazione di intervalli
Ossia l’intervallo avente per estremi il minimo ed il massimo prodotto degli estremi dei due
intervalli.
AB = [ 1
, 2
][ 1
, 2
] = [min ( 1
1
, 1
2
, 2
1
, 2
2
) , max ( 1
1
, 1
2
, 2
1
, 2
2
)]