• Non ci sono risultati.

2   Metodologia 35

2.3   Metodologia di analisi dati 47

2.3.1   Logica Fuzzy 47

Il padre della logica fuzzy è Lofti A. Zadeh, a cui va il merito di aver usato per la prima volta il termine e le basi della matematica fuzzy. Una prima formulazione della teoria fuzzy infatti è contenuta nei suoi saggi “Fuzzy sets”, pubblicato nel 1965 dalla rivista “Information and Control” e “Fuzzy sets and system”, pubblicato lo stesso anno in “Proc. Symp. System Theory”. Il termine fuzzy in tale contesto assume il significato di sfocato, confuso, indistinto e si contrappone all’aggettivo crisp, che indica gli insiemi ordinari e significa definito, chiaro.

Nella logica fuzzy una proposizione non assume più i valori di verità 0 o 1, come nella logica classica, ma può assumere valori compresi in un intervallo tra 0 e 1. Rispetto alla logica classica binaria, che afferma che nel mondo le cose sono completamente vere o completamente false, la fuzzy logic propone che il grado di verità di una proposizione sia compreso tra i valori 0 e 1, senza limitarsi solo agli estremi, in modo da non perdere tutte le possibili sfumature delle verità.

Fuzzy Sets

Un fuzzy set è definito come un insieme di elementi appartenenti ad un certo intervallo numerico, detto universo, ciascuno caratterizzato dal valore del suo grado di appartenenza (membership degree) all’insieme stesso. Tale grado di appartenenza, come già detto, può assumere un valore qualunque tra 0 ed 1, intendendo che un elemento appartiene in maniera maggiore o minore all’insieme.

Quindi un sottoinsieme fuzzy A di un insieme universo U, è definito dalla sua funzione di appartenenza μA, che associa ad ogni elemento u

U, un numero μA(u)

[0, 1].

In riferimento alla Figura 17, si può ad esempio dire che un neonato è giovane con una μY = 1, un trentacinquenne è giovane con una μY = 0,3, non molto giovane con una μNVY =

Figura 17 - Esempio di fuzzy sets

Queste forme delle funzioni di appartenenza sono soltanto esempi delle possibili forme per un fuzzy set. Tra le più comuni ci sono forme triangolari, trapezoidali, gaussiane, left gaussiane, right gaussiane, ma le funzioni di appartenenza possono assumere qualsiasi forma.

Per una variabile fuzzy si devono definire diverse funzioni di appartenenza, corrispondenti ai diversi valori linguistici che la variabile può assumere (ad esempio età giovane, non molto giovane, anziano). La scelta delle funzioni di appartenenza è un passo fondamentale nella messa a punto di un sistema fuzzy, visto che determina le caratteristiche dei processi di fuzzificazione degli ingressi e defuzzificazione delle uscite. La fuzzificazione permette di calcolare il grado di appartenenza di ogni valore numerico assunto da una variabile d’ingresso ad ogni fuzzy set definito per essa. Viceversa, la defuzzificazione calcola, a partire dal risultato fuzzy ottenuto nel processo di inferenza, un valore reale per la variabile in uscita.

Per le definizioni di appartenenza agli insiemi fuzzy di una stessa variabile linguistica, un criterio di progettazione di validità generale è fare in modo che non ci siano parti dell’universo della variabile che rimangano scoperte. Questo si può evitare sovrapponendo parzialmente le funzioni di appartenenza della variabile. Inoltre i fuzzy set situati agli estremi dell’insieme di definizione della variabile, sono solitamente descritti in modo che i valori estremi presentino grado di appartenenza unitario. Altra regola di costruzione degli insiemi è che almeno un valore di ogni insieme abbia μ uguale ad 1. Possono esistere insiemi la cui funzione è completamente contenuta all’interno di un’altra (ad esempio l’insieme “molto anziano” potrebbe essere compreso completamente all’interno dell’insieme “anziano”).

Le classi (gli insiemi fuzzy) solitamente non sono maggiori di 7, perché si ritiene che la mente umana non sia in grado di gestire più di 7 concetti per volta.

Operazioni

Molte sono le operazioni definibili sugli insiemi fuzzy, alcune derivate dalle corrispondenti della teoria classica, altre peculiari della fuzzy logic. Siano A e B due fuzzy sets di uno stesso universo X, con funzioni di appartenenza rispettivamente μA e μB, sono definibili,

tra i tanti, i seguenti operatori standard, descritti per mezzo delle loro funzioni di appartenenza. Per le operazioni di unione ed intersezione sono definite una serie di possibili norme o conorme triangolari (t-norme e t-conorme), tra le quali sono frequentemente utilizzate gli operatori min e max, rispettivamente.

• uguaglianza: A = B se e solo se μA (x) = μB (x)

• complemento (NOT): μ ¬A (x) = 1 - μA (x)

• unione (OR): μA U B (x) = max (μA (x), μB (x))

• intersezione (AND): μA ∩ B (x) = min (μA (x), μB (x))

Regole

La base della conoscenza di un sistema fuzzy è costituita da due componenti fondamentali: le funzioni di appartenenza e l’insieme delle regole d’inferenza fuzzy. Le regole fuzzy rappresentano il punto di passaggio tra le conoscenze di tipo empirico e la loro elaborazione numerica, ma costituiscono al tempo stesso una descrizione formale del sistema. Infatti, una volta messe in relazione con le funzioni di appartenenza, esse forniscono un modello del sistema puramente numerico, su cui può lavorare anche un calcolatore.

Una regola fuzzy è solitamente espressa con un costrutto del tipo “IF [antecedente] THEN [conseguente]”, in cui l’antecedente è un termine linguistico ed il conseguente può assumere una forma sia linguistica che numerica. Una regola assume quindi la seguente forma:

Una regola di questo tipo è equivalente all’implicazione fuzzy A à B.

Generalmente le regole fuzzy sono del tipo a più ingressi ed una uscita, ma è possibile trovare regole con più uscite. È quindi necessario introdurre operazioni di collegamento tra i diversi antecedenti e tra i diversi conseguenti: solitamente si usano i connettivi AND, OR, NOT per gli ingressi, mentre si utilizza AND per correlare i conseguenti.

Antecedenti e conseguenti sono espressi in forma (x is L), dove x è la variabile linguistica e L è la label associata a un insieme fuzzy definito.