Bandiera inglese Bandiera italiana

Applicazioni della logica Fuzzy

Premessa

Gli argomenti discussi in questa pagina richiedono come requisiti propedeutici la conoscenza di alcune nozioni elementari di logica fuzzy, in particolare le definizione di insiemi fuzzy e qualche cenno alla matematica fuzzy. Coloro che si avvicinano per la prima volta alla logica fuzzy, o ne hanno solamente una vaga idea, potrebbero apprezzare la lettura integrale dell'articolo di introduzione alla logica fuzzy. Gli esperti di logica fuzzy possono invece passare direttamente alla sezione dedicata ai sistemi adattitivi fuzzy, ovvero alle reti neurali.

Contenuti

  • Il teorema di approssimazione fuzzy (leggi)
  • La memoria associativa fuzzy (leggi)
  • Il processo di defuzzificazione (leggi)
  • Considerazioni di carattere generale (leggi)
  • Un esempio di controllo automatico fuzzy (leggi)

Teorema di approssimazione fuzzy

Teorema approssimazione fuzzy Il teorema di approssimazione fuzzy (Fuzzy Approximation Theorem o FAT) è l'equivalente matematico di un concetto abbastanza intuitivo: è sempre possibile coprire una curva qualsiasi con un numero finito di pezze. In termini matematici più rigorosi il teorema afferma che, dato il grafo di una qualsiasi funzione analitica, è sempre possibile trovare una copertura finita di insiemi del grafo stesso (vedi figura).
Il teorema entra in gioco quando si vuole applicare la logica fuzzy al controllo dei controlli automatici (in altre parole si vuole automatizzare qualcosa). I controlli automatici tradizionali di solito si basano sul meccanismo della retroazione, che calcola il valore di una funzione dell'output per fornire un feed-back all'input e quindi correggerlo (per i dettagli rimandiamo al concetto di
retroazione).

Precisiamo innanzitutto la terminologia, che potrebbe confondere chi ha poca conoscenza dell'argomento. Consideriamo ad esempio un condizionatore d'aria: in tal caso il suo input rappresenta la potenza impostata sul motore, mentre l'output è associato alla temperatura della stanza. Un controllo automatico è un meccanismo che automatizza la regolazione del condizionatore, ad esempio: il meccanismo misura la temperatura nella stanza, analizza tale informazione e in base al risultato dell'elaborazione decide se cambiare o no la potenza del climatizzatore.
Quando si parla del controllo automatico (il meccanismo di regolazione) invece che del sistema regolato (il condizionatore), l'input x del controllo automatico coincide con l'output del sistema (la temperatura), mentre il risultato o output f(x) dell'elaborazione coincide con l'input del sistema (la potenza del motore). In altre parole la variabile d'ingresso del controllo automatico dipende dall'output del sistema, mentre la variabile d'uscita del controllo automatico modifica l'input del sistema (da cui il pericolo di fare confusione).

Nella maggior parte dei controlli automatici la funzione di regolazione f(x) è lineare, ma in generale si può usare una funzione di forma qualsiasi, come nel caso della linea rossa nella figura qui sotto. Il teorema FAT ci dice che possiamo ricoprire questa linea con una sequenza di insiemi, che nel nostro caso saranno degli insiemi fuzzy, ottenendo la copertura "multicolore" illustrata a destra. In altre parole: il teorema FAT ci dice che è sempre possibile sostituire la curva regolare di un controllo automatico con una copertura di insiemi fuzzy.

Controllo automatico mediante funzione analitica Controllo automatico mediante associazione di insiemi fuzzy controllo mediante funzione analitica controllo mediante associazione di insiemi fuzzy

Il teorema FAT permette di cambiare il modo di descrivere un controllo automatico. Invece di pensare ad una funzione analitica che associa un certo valore x ad un altro valore f(x), la sequenza di pezze suggerisce di associare gli insiemi fuzzy A1, A2, A3 ... An (intervalli dell'output) agli insiemi fuzzy I1, I2, I3 ... In (intervalli dell'input).

Altra conseguenza dell'approccio fuzzy è che la correlazione tra ingresso e uscita non è più univoca. Poiché un elemento x può appartenere (in maniera fuzzy) ad uno o più degli insiemi A1 ... An, anche il risultato dell'elaborazione sarà in generale descritto da uno o più degli insiemi I1 ... In. Nel prossimo paragrafo vedremo in che modo (e in che misura) viene stabilita l'associazione tra gli insiemi An e gli insiemi In.

La memoria associativa fuzzy (FAM)

I sistemi di controllo fuzzy sono composti da alcune regole denominate FAM, ovvero Fuzzy Associative Memory (memoria associativa fuzzy). Una regola FAM è un'espressione del tipo "se la misura x appartiene all'insieme An allora la funzione f(x) appartiene all'insieme In". Ciò viene espresso solitamente in forma abbrevviata scrivendo

SE x ∈ An ALLORA f(x) ∈ In ovvero SE An ALLORA In

In questo caso x ∈ An (ovvero An) è detta la condizione di attivazione della regola, mentre f(x) ∈ In (ovvero In) è il risultato della regola. Consideriamo adesso una "copertura di pezze" (la cui esistenza è garantita dal sistema FAT) che approssima il funzionamento di un controllo automatico. La definizione di insieme fuzzy permette di fissare la
curva di appartenenza agli insiemi in maniera abbastanza arbitaria, per cui possiamo considerare delle pezze rettangolari anziché degli elissoidi, al fine di semplificare i calcoli.

Copertura di insiemi fuzzy E' quindi possibile associare ciascuna regola FAM ad un rettangolo colorato e viceversa. In altre parole le 13 pezze rettangolari della figura qui a lato possono essere descritte nel seguente modo

SE A1 ALLORA I1
SE A2 ALLORA I2
...
SE A13 ALLORA I13

Ne segue che la descrizione di un controllo automatico mediante una copertura è equivalente alla descrizione fornita dal corrispondente elenco di regole FAM.

Di primo acchito le regole FAM sembrano un concetto banale, equivalente all'implicazione logica "=>" della matematica o al costrutto "IF ... THEN" dei linguaggi di programmazione. La differenza sta nel fatto che le condizioni delle FAM sono condizioni fuzzy, per cui una FAM non si attiva in maniera bivalente bensì in maniera polivalente. Facciamo un esempio, considerando la regola "se piove rallento". Nella logica bivalente la condizione "se piove" può essere solamente vera o falsa, per cui il controllo automatico (in questo caso un pilota automatico) fornisce solamente due risultati: se non piove non rallento, se piove rallento. Una FAM può invece attivarsi in infiniti modi: se piove pochissimo rallento appena appena, se piove un po' di più rallento un po' di più, se piove molto rallento in modo deciso, se diluvia arresto la vettura.
In generale vale quindi la proprietà

una regola FAM si applica solamente nella misura in cui è vera la condizione d'attivazione

Attivazione in parallelo di FAM Consideriamo ad esempio la copertura qui a lato e supponiamo che la misura x cada in parte nell'insieme A1 e in parte nell'insieme A2 (che sono tra loro parzialmente sovrapposti), ovvero

V( x ∈ A1 ) = 0,6 V( x ∈ A2 ) = 0,2

ne segue che la regola FAM "SE A1 ALLORA I1" (associazione tra insiemi rossi) si attiva al 60%, mentre la regola FAM "SE A2 ALLORA I2" (associazione tra insiemi blu) si attiva al 20%. Il risultato dell'elaborazione del controllo automatico fuzzy sarà allora

V( f(x) ∈ I1 ) = 0,6 V( f(x) ∈ I2 ) = 0,2


La prima cosa interessante da notare è che le regole FAM si attivano in parallelo. Anche se in ingresso si ha un'unica misura (il valore x) in uscita si possono avere più uscite, in questo caso entrambi gli insiemi I1 e I2. Ciò permette una regolazione molto più precisa e graduale rispetto ai controlli automatici tradizionali, che di solito si comportano a "scatti" quando il valore della x oscilla nei pressi della soglia di un criterio bivalente.
La seconda cosa da chiedersi è: cosa me ne faccio degli insiemi I1 e I2? Si tratta di un risultato molto accurato, che potrebbe però risultare incomprensibile e quindi inutile. La maggior parte dei sistemi di regolazione si aspettano infatti come input un valore numerico e non degli insiemi fuzzy. Non possiamo regolare un climatizzatore dicendogli "accenditi a metà tra poco e medio", ma occorre dirgli "vai a potenza 3" oppure "vai a potenza 5".
A questa domanda risponde il processo di defuzzificazione.

Il processo di defuzzificazione

Defuzzificare una misura fuzzy significa associare un insieme fuzzy ad un unico valore ben determinato. Si tratta di un procedimento presente un po' in tutti i rami della matematica e della scienza: ogni volta che abbiamo un gruppo di misure e vogliamo esprimere tale insieme con un unico valore operiamo una specie di defuzzificazione. Esempi di questo procedimento sono la media aritmetica, il valore d'aspettazione, la stima di valore centrale e il valore atteso (concetti infatti molto simili tra loro). Per "convertire" un insieme fuzzy in un unico valore si opera in modo simile, calcolando appunto il valor medio della variabile x rispetto alla funzione caratteristica dell'insieme fuzzy in esame.

Insiemi fuzzy Consideriamo ad esempio il risultato ottenuto sopra, ovvero

V(I1) = 0,6 V(I2) = 0,2

e supponiamo che gli insiemi I1 e I1 siano definiti da una curva di appartenenza di forma triangolare (come già visto per i
numeri fuzzy) i cui estremi sono ad esempio [10,30] e [25,45]. Nel nostro caso il risultato è rappresentato al 60% da I1 e al 20% da I2, ovvero dalla media pesata dei due triangoli, usando come pesi proprio i gradi di verità 0,6 e 0,2. Media di insiemi fuzzy

Questa media pesata può essere ricavata graficamente "schiacciando" i due triangoli fino all'altezza del loro grado di verità, come indicato qui a lato.
Se sommiamo tra loro le funzioni caratteristiche dei due triangoli "abbassati" otteniamo la curva caratteristica dell'insieme totale, ovvero la curva di appartenenza dell'insieme da defuzzificare (linea blu). Il valore medio di questa funzione ci darà il risultato defuzzificato che stiamo cercando, che nel nostro caso è un numero circa pari a 25.

Si ottiene questo risultato perché il triangolo rosso (insieme I1) "pesa di più" del triangolo verde (insieme I2), ovvero I1 è "più vero" di I2, quindi la media pesata (detta anche media ponderata o centroide) non si trova a metà strada tra i due insiemi ma risulta un po' spostata verso sinistra. Questo procedimento viene detto calcolo del centro di massa o del centroide dei due insiemi, ed è espresso dalla formula

Formula del valore atteso

Il valore E(x) è anche detto valore atteso o valore d'aspettazione della funzione p(x), che in questo caso è proprio la linea blu della figura, ovvero la funzione caratteristica dell'insieme risultante. La formula del valore atteso permette di progettare un qualsiasi controllo automatico in modo da trasformare gli ingressi in insiemi fuzzy, i quali vengono elaborati per mezzo delle FAM, e poi defuzzificare il risultato per pilotare il sistema da automatizzare.

Alcune considerazioni

Prima di considerare un esempio di controllo automatico basato sull'approccio visto sopra vogliamo discutere alcune questioni che solitamente sorgono spontanee quando ci si avvicina per la prima volta ai controlli fuzzy.

Se alle fine devo defuzzificare, a cosa serve la logica fuzzy?

Si potrebbe pensare che siccome alla fine del processo si converte un risultato fuzzy in un numero ben determinato, l'applicazione della logica fuzzy sia soltanto un trucco o una complicazione inutile. Vediamo perché non è così: un controllo automatico fuzzy non è fuzzy perché sono "sfumati" i suoi valori d'ingresso o d'uscita, ma è fuzzy perché è sfumato il criterio di elaborazione che associa un determinato ingresso ad una certa uscita, grazie all'attivazione parziale e parallela delle regole FAM. Per spiegare il concetto possiamo pensare alla riproduzione di un film su DVD: si parte da un oggetto "analogico" (il supporto fisico del DVD) e si finisce con un segnale analogico (la luce che impatta la retina dello spettatore), ma il processo di riproduzione resta sempre e comunque digitale.

La precisione aumenta col numero delle regole

Si potrebbe obiettare che i controlly fuzzy sono imprecisi perché composti da una quantità di regole quantificabile (cioè numerabile), mentre le funzioni matematiche contemplano infiniti valori (con la potenza del continuo). Ciò non è vero per due motivi: innanzitutto anche se le regole sono numerabili un controllo fuzzy gestisce comunque tutti i valori possibili d'ingresso e d'uscita. In secondo luogo, se un controllo fuzzy non risulta abbastanza preciso basta aggiungere qualche regola (cioè qualche "pezza") per coprire in modo più accurato la funzione in esame. Con dieci regole si ottimizza la messa a fuoco di una videocamera, con qualche decina si regola una lavatrice, con un centinaio si fa volare un elicottero attraverso una tempesta (elicottero di Sugeno).

Controllo configurabile dall'utente

Un sistema fuzzy permette di essere configurato direttamente dall'utente. Una volta definiti gli ingressi e le uscite, l'utente finale può direttamente modificare le regole senza alcuna conoscenza tecnica. Se una lavatrice fuzzy conosce già le condizioni "giorno" e "notte" per ottimizzare i consumi, e i concetti "caldo" e "freddo" per regolare la temperatura dell'acqua, l'aggiunta della regola "se è giorno usa poca acqua calda" potrebbe essere inserita direttamente dall'utente, senza la necessità di leggere alcun manuale di istruzioni.
E' vero che anche i sistemi tradizionali possono offrire questa funzionalità, usando ad esempio un programma di traduzione "utente-computer", ma è proprio qui il punto: un controllo fuzzy non necessita di alcuna traduzione, perché viene "programmato" attraverso delle FAM che sono già espresse nel linguaggio umano.

La liberazione dai modelli

Quando si progetta un controllo automatico mediante una funzione analitica, o mediante un software basato su condizioni del tipo "IF ... THEN" bivalenti, si ottiene una ben precisa correlazione tra ingresso ed uscita. Al contrario, quando si progetta un controllo automatico usando la logica fuzzy, si possono scrivere le regole FAM senza la necessità conoscere l'eventuale correlazione analitica tra ingresso ed uscita. Si potrebbe, a posteriori, ricavare la legge di correlazione prodotta (implicitamente) dalle FAM, ma si tratta spesso di una legge molto complicata dal punto di vista matematico, a volte difficile da giustificare con un ragionamento a priori (vedi esempio in Excel).
In questi termini i controlli fuzzy ci liberano dalla "schiavitù dei modelli": non è più necessario trovare la formula matematica che simula un certo sistema, ci basta conoscere il sistema "a grandi linee" per poter progettare una serie di "pezze" che lo descrivono con la precisione di cui abbiamo bisogno.

Le decisioni umane

Il processo di defuzzificazione operato per mezzo della media ponderata assomiglia al processo utilizzato dalla mente umana per prendere una decisione. Secondo le neuroscienze il cervello umano funziona in maniera simile ad un controllo fuzzy. Quando prendiamo una decisione non esiste mai un'unico motivo che ci ha spinto quella direzione, ma esistono invece una serie di "regole" che si sono attivate in parallelo, ognuna solamente in una certa misura: alcune di esse sono note a livello cosciente, altre lavorano a livello emotivo senza che ce ne rendiamo conto.

Esempio: sto viaggiando in autostrada, con un carico di formaggi freschi nel portabagagli, e decido di fermarmi per una pausa. Siccome voglio fare un pò di stretching scelgo di fermarmi in un autogrill dove so che si trova un prato pulito e poco frequentato. Entro nell'autogrill ma non vedo il prato perché alcuni camion ci hanno parcheggiato davanti, così proseguo a bassa velocità cercando un parcheggio. Man mano che avanzo sento crescere la delusione, forse perché non trovo un buon parcheggio. Alla fine raggiungo le pompe di benzina, ormai alla fine dell'autogrill, decido di rinunciare e rientro in autostrada.

Proviamo adesso a spiegare questo comportamento mediante la logica fuzzy.

Decisioni in autogrill

Consideriamo le seguenti tre regole: A) "se vedi il prato rallenta", B) "se il parcheggio è al sole prosegui" (per non guastare i formaggi) e C) "se la manovra è difficile prosegui" (per non rischiare incidenti).
Supponiamo di entrare nell'area di sosta consci solamente della prima regola, senza essere consapevoli delle altre. All'inizio "vedo poco prato" (regola A) quindi "rallento poco".
Man mano che procedo si attiva anche la regola B: "il parcheggio è molto al sole, quindi prosegui molto". La media pesata dei risultati "rallenta poco" e "prosegui molto" è una specie di "prosegui poco", così avanzo senza prendere una decisione. Alla fine entra in gioco anche la regola C, ovvero "la manovra è un po' difficile, quindi prosegui un poco", e il centro di massa si sposta decisamente verso la scelta "prosegui molto". Alla fine questa scelta vince e torno in autostrada, forse senza essere certo del perché.

Sequenza di decisioni FAM (dal basso verso l'alto)

Questo semplice esempio suggerisce che l'arte di prendere la decisione giusta, ovvero di capire cosa vogliamo, può essere descritta come l'arte di "percepire" il nostro centro di massa tra la varie possibilità, ed è proprio per questo che si parla infatti si "scelta ponderata" e dell'importanza di saper ascoltare se stessi. E' anche per questo motivo che i sistemi fuzzy sono considerati "sistemi intelligenti", poiché simulano la flessibilità e l'adattabilità del pensiero umano.

Esempio di applicazione

Consideriamo un controllo automatico che debba regolare la potenza del motore di un condizionatore d'aria in base alla temperatura della stanza. Supponiamo che la relazione analitica "ingresso-uscita" sia lineare, per cui un normale controllo automatico potrebbe correlare la temperatura alla potenza come segue: se la temperatura T aumenta di Δt, la potenza P del motore aumenta di ΔP = k⋅Δx, dove k è una costanta opportuna. Un controllo fuzzy ragiona invece in termini di "pezze" che coprono la relazione lineare (in questo caso una retta), dove ciascuna pezza rappresenta una regola FAM. Progettiamo un controllo fuzzy molto elementare, utilizzando solamente tre pezze per coprire la curva lineare: ciò corrisponde a definire tre regole FAM:

SE la temperatura è fredda ALLORA regola il condizionatore a bassa potenza
SE la temperatura è giusta ALLORA regola il condizionatore a media potenza
SE la temperatura è calda ALLORA regola il condizionatore alla massima potenza

le tre regole possono essere espresse in forma breve così Controllo fuzzy a tre regole

SE fredda ALLORA bassa
SE giusta ALLORA media
SE calda ALLORA massima

che corrisponde alla copertura illustrata qui a destra.
Gli insiemi "fredda", "giusta" e "calda" sono ovviamente
insiemi fuzzy, come i tre insiemi "bassa", "media" e "massima". Ciò significa che ogni insieme è definito da una funzione caratteristica che assume un valore compreso tra 0 ed 1 solamente all'interno di un intervallo di valori. Considerando funzioni caratteristiche di forma triangolare, si potrebbe ad esempio definire "bassa" una temperatura compresa tra 15 e 25 gradi, "giusta" una compresa tra 20 e 30 ed "alta" una temperatura nell'intervallo tra 25 e 35.

Si ottengono in tal modo i tre insiemi fuzzy illustrati qui sotto, parzialmente sovrapposti tra loro. Essi sono associati agli intervalli di regolazione del motore mediante le tre regole FAM. Per fissare le idee supponiamo inoltre che la potenza del condizionatore sia un numero compreso tra 10 e 90. Un foglio elettronico che permette di simulare il comportamento di questo controllo automatico è disponibile qui in formato Microsoft Excel.
Vediamo adesso come calcolare l'uscita del controllo nel caso che la temperatura sia pari a 22 gradi. Tale misura appartiene agli insiemi "fredda" e "giusta" in modo fuzzy, cioè (vedasi foglio "Input" del file Excel)

T ∈ fredda = 0,6 T ∈ giusta = 0,4

insiemi che corrispondono alle uscite (foglio "Output" del file Excel)

P ∈ bassa = 0,6 P ∈ media = 0,4

defuzzificando tale uscita si trova il centroide della figura, pari a 35. Il controllo fuzzy perciò "reagisce" alla temperatura di 22 gradi impostando la potenza del condizionatore a 35.

Ingresso del controllo fuzzy Uscita del controllo fuzzy Ingresso del controllo fuzzy Uscita del controllo fuzzy

Controllo fuzzy a tre regole A questo punto sarebbe interessante capire qual è l'andamento dell'uscita in funzione dell'ingresso. In altre parole ci domandiamo: con quale legge di correlazione tra ingresso e uscita si potrebbe simulare il sistema fuzzy?. Se proviamo ad inserire i valori di temperatura compresi tra 20 e 30 gradi e prendiamo nota del valore dell'uscita si ottiene il grafico qui a destra. Anche se le tre regole FAM sembrano delle "banali associazioni lineari tra ingresso ed uscita", in realtà il controllo si comporta in modo non lineare. Ciò è dovuto proprio alla natura fuzzy degli insiemi, che attivano le regole in modo fuzzy, ovvero in modo parziale e in parallelo tra loro.
Questo è uno dei punti di forza dei sistemi fuzzy: possiamo progettare sistemi complessi di regolazione non lineari con pochissima matematica e senza il bisogno di costruire un modello (come la curva qui a lato) del nostro sistema.

Importante

Un controllo fuzzy va progettato in modo che le "pezze" (le regole FAM) coprano l'intero intervallo di valori in cui andrà a lavorare il controllo. Là dove le pezze "finiscono" (ai margini dell'intervallo di valori) si potrebbero avere comportamenti anomali. Il controllo di temperatura visto sopra, ad esempio, è progettato per regolare la temperatura nell'intervallo tra i 20 e i 30 gradi, perché fuori da questo intervallo si attivano solamente le regole estreme (e si attivano sempre meno più usciamo da questo intervallo). Per questo motivo è meglio usare qualche pezza in più che in meno, e sistemare delle pezze anche oltre il limite dell'intervallo di valori previsto.

Controllo fuzzy con 7 regole Un controllo fuzzy reale di solito lavora con almeno una decina di regole. Per progettare un buon controllo automatico di un impianto di climatizzazione sarebbe opportuno aggiungere delle regole verso le temperature "molto basse" o "molto alte", in modo che il sistema rimanga affidabile a qualsiasi temperatura.
Un modo per "tagliare la testa al toro" e risolvere il problema è quello di applicare delle pezze illiminate ai margini, usando cioè degli insiemi fuzzy che dopo (o prima) di un certo valore attivano sempre la regola, come nell'esempio qui a destra: per temperature molto basse si attiva sempre la regola I1, mentre per temperature molto alte si attiva sempre la regola I7.


Argomenti correlati