Fuzzy logic
Il termine fuzzy significa “sfumato”, “sfocato”. Applicato alla logica indica che fra l’alternativa netta bianco/nero c’è tutta una scala di grigi. In termini numerici si tratta di tutto quello che c’è fra 0 e 1, da 0,01 a 0,99.
La fuzzy logic, o logica sfumata, è un’evoluzione della logica booleana che distingue solo fra 0 e 1 (falso/vero, spento/acceso) e consente a una determinata affermazione di essere vera, falsa oppure in parte vera o in parte falsa. E’ una logica polivalente, legata alla teoria degli insiemi sfocati, sviluppata da Lofti A. Zadeh nei primi anni ’60, secondo cui le tecniche tradizionali di analisi dei sistemi erano eccessivamente e inutilmente accurate per molti dei problemi tipici del mondo reale, che nella maggior parte dei casi non presenta situazioni nette, ma miscugli: il cielo non è sempre tutto sereno o tutto nuvoloso, ma spesso presenta nuvole sparse in un cielo azzurro, o una coltre di nubi squarciata da sprazzi di sereno. Un insieme netto ammette che un elemento ne faccia o non ne faccia parte.
Zadeh introdusse l’idea di grado d’appartenenza, che valuta se un elemento può appartenere totalmente ad un insieme, o solo in parte, e qual è la percentuale di questa parte. Se gli insiemi del bianco e del nero si distinguono in modo netto, un elemento può essere bianco o nero. Ma il contrario di “bianco” non è “nero”, bensì “non bianco”. Quindi un elemento grigio chiaro può essere non bianco al 10%, se è grigio scuro sarà non bianco all’80% o nero al 20% o “molto più nero che bianco” o “quasi nero”.
La logica fuzzy è dunque la logica del ragionamento approssimato, basata sugli insiemi sfocati. La usiamo quando ragioniamo per ordini di grandezza invece che per quantità definite, per esempio nella valutazione preventiva di un progetto, dove si parla di costi intorno ai centomila euro ammortizzabili in un paio di anni circa. Tutti capiscono che “intorno” e “circa” sfocano i valori numerici 100.000 (euro) e 2 (anni).
Anche gli operatori booleani NOT, OR, AND, applicati alla logica fuzzy assumono valori sfumati: NOT esclude l’appartenenza ad un insieme, senza specificare quale sia l’insieme alternativo; OR dice che ambedue gli elementi hanno un’alta percentuale di appartenenza all’insieme sfumato, AND che ambedue gli elementi hanno una percentuale di appartenenza bassa.
Se ci trasferiamo nel mondo dei computer, la logica booleana non ammette l’istruzione “un paio di anni circa”, la logica fuzzy la ammette, quindi è più adatta a comunicare alla macchina ragionamenti vaghi, approssimati, imprecisi, o situazioni che si trasformano in modo graduale, come la sfumatura fra due colori.
In tal senso è molto adatta ai sistemi di intelligenza artificiale e di machine learning, con cui il sistema non si limita ad eseguire o meno un comando, ma ne valuta l’attendibilità e la correttezza, confrontandolo con comandi simili ricevuti in precedenza, e ne esegue una parte proporzionale al livello di attendibilità che gli ha attribuito. Per esempio, ci capita di scrivere una parola nel riquadro di ricerca di Google. Con i vecchi software booleani, se facevamo un errore di battitura, il sistema non dava risposte. Oggi invece, se scriviamo “poligrosta” Google ci propone risposte alla versione corretta di ciò che abbiamo scritto, con la frase gentile: “forse cercavi poliglotta?”. Per poter fare ciò l’algoritmo non considera sbagliato l’input con logica booleana, ignorandolo, ma lo considera un po’ sbagliato, e lo confronta con altri elementi che ritiene sempre più giusti. In sintesi in un sistema esperto tradizionale la regola o ha successo o meno, e ha successo (produce un output) se la premessa è true (vero o 1); nel sistema esperto fuzzy invece la regola ha successo (produce output) con differenti gradi, se la sua premessa dà un grado di fiducia diverso da 0 (false). I molteplici output si possono aggregare in modo continuo (sfumatura, curva continua) o a gradini (scala, curva discreta), ed essere tradotti in numeri o “defuzzificati”.
E’ importante distinguere concettualmente fra logica fuzzy e probabilità. La probabilità e la logica fuzzy operano ambedue fra lo 0 (falso) e l’1 (vero), ma sono diverse perché la prima misura la verosimiglianza che un evento futuro avvenga, la seconda misura l’ambiguità di un avvenimento già accaduto.
La logica fuzzy è molto utile nell’intelligenza artificiale perché consente all’agente razionale di affrontare le scelte in condizioni di incertezza, affidandosi a una rappresentazione sfumata e adattiva della realtà. Essa potrà dare un notevole contributo allo sviluppo degli agenti intelligenti che popoleranno il nostro futuro.
a logica fuzzy consente di rappresentare modelli simbolici adottati per applicazioni che spaziano dal controllo di impianti industriali all’interpretazione delle immagini, dalla classificazione dei dati alle reti neurali, dal controllo di elettrodomestici al settore automobilistico. Controllori fuzzy fanno parte dei sistemi di frenata ABS delle automobili, delle lavatrici, delle videocamere, dei robot, dei carrelli elevatori, dei treni della metropolitana e delle sonde spaziali. Sistemi fuzzy permettono di ricercare informazioni in rete e in basi documentali, supportano decisioni economiche, controlli di qualità, conduzione di impianti industriali. Anche nell’informatica la logica fuzzy è usata nella gestione di variabili linguistiche e nell’interpretazione di immagini, nelle applicazioni di identificazione automatica e controllo adattativo, nelle tecniche avanzate di analisi matematica per la progettazione di reti neurali.