Cosa è la fuzzy logic o logica sfumata?

Cosa è la logica fuzzy?

Nella prima parte di questo articolo un tipo di logica differente da quella classica: la fuzzy logic o logica sfumata. Questo tipo di logica è fondamentale per l’intelligenza artificiale dei cosiddetti sistemi esperti.

La logica classica

Prima di presentare la logica sfumata è necessario qualche richiamo elementare di logica classica. La logica classica nasce come branca della filosofia. Il primo pensatore ad aver presentato un tipo di logica formale è stato Aristotele, con la teoria delle proposizioni e la sillogistica.

Il filosofo stagirita Aristotele, iniziatore della logica
Il filosofo stagirita Aristotele (384-322 a.C.), universalmente riconosciuto come l’iniziatore della scienza logica

La logica aristotelica si basa implicitamente su un principio apparentemente scontato e universalmente valido Tale principio è il principio di bivalenza.

Il principio di bivalenza afferma che una qualsiasi proposizione dichiarativa \(P\) o è vera o è falsa. In altri termini secondo la logica bivalente – o booleana – esistono solo e soltanto due valori di verità: il Vero o il Falso. In informatica al Vero viene associato il numero \(1\) e al Falso il numero \(0\). Per esemplificare, possiamo dire che una persona può essere o viva o morta, tedesca o non tedesca, o analfabeta o non analfabeta, ma solo una tra due possibilità.

Nel corso della storia del pensiero alla logica classica si sono aggiunte logiche alternative. Tra le principali famiglie di logiche non classiche vi sono quelle deontiche, quelle epistemiche, quelle temporali, quelle polivalenti. Tra queste ultime vi è anche la logica sfumata.

La logica fuzzy

La logica fuzzy parte in realtà da una considerazione molto semplice. Non tutte le proprietà sono distinguibili in maniera binaria e discreta. Se da un lato è vero che un individuo può essere o tedesco o non tedesco, diverso è il caso di un individuo che può essere giovane o vecchio. O della temperatura dell’acqua, che può essere non soltanto calda o fredda, ma attraversare uno spettro continuo di rapporti tra caldo e freddo. Il seguente grafico illustra quanto appena detto.

La "sfumatura" delle temperature
La “sfumatura” delle temperature – Lepido (translator). Original by Fullofstars. – File:Fuzzy logic temperature en.svg

In quest’ottica i valori di verità della logica fuzzy sono i numeri reali compresi largamente tra  \(0\) e \(1\). Una proposizione certamente vera avrà valore di verità \(1\); una proposizione “abbastanza” vera avrà, ad esempio, valore \(0.75\); e così via, scendendo, diventerà completamente falsa quando il suo valore di verità diventerà \(0\).

Logica fuzzy e sistemi esperti

I connettivi della logica classica possono essere “sfumati”. Questa “sfumatura” è particolarmente importante quando dall’ambito teoretico passiamo all’ambito applicativo informatico. In informatica si parla di sistema esperti quando un programma è capace di approcciare un problema come farebbe un esperto umano.

Tipicamente la programmazione di un sistema esperto è costituita per lo più da istruzioni che hanno la forma di strutture condizionali. Queste strutture logiche si chiamano così perché hanno la seguente forma:

Se-Condizione-allora-Azione

Se si verifica una certa condizione, allora rispondi con la conseguente azione.

In principio i sistemi esperti erano troppo categorici, poiché adottavano una logica bivalente. La logica fuzzy ha permesso a tali sistemi una certa versatilità. Tale versatilità si traduce proprio sfumando le possibili condizioni.

Fuzzyficazione

Esempio dello scaldabagno

Diamo concretezza a quanto accennato con un esempio. Per fuzzyficare un sistema esperto è necessario innanzitutto creare una tabella di riferimento. Prendendo ad esempio la temperatura dell’acqua, potremmo voler definire i rapporti tra freddo e caldo nel seguente modo:

  • se l’acqua ha una temperatura di 0°C l’acqua è “totalmente” fredda (\(V_f = 1\));
  • l’aumento di ogni grado comporta l’aumento percentuale del 2%. Ad esempio se l’acqua e ha 17°, allora è calda al \(V_c = 0.34\), il che equivale a dire che è fredda al 66%;
  • la soglia di accettabilità è 25-35° C, quindi per valori tra \(V = 0.5\) è sia fredda quanto calda e \(V_f =0.30 \) e \(V_c =0.30 \).

Queste indicazioni sono ovviamente arbitrarie: potrebbero dipendere da personali preferenze sulla temperatura dell’acqua durante la doccia. Quello che però è importante comprendere è che esse raccolgono una serie di condizioni in base alla quale si potrebbe o meno attivare uno scaldabagno a logica sfumata. Lo scaldabagno si accenderà (per un certo periodo) in proporzione alla condizione. Se l’acqua è , ad esempio, a 17°C, lo scaldabagno dovrà accendersi per poi spegnersi una volta raggiunto l’intervallo di accettabilità.

Esempio del semaforo

Un ulteriore esempio può essere un semaforo: se al semaforo viene mandato in input un certo grado di congestione del traffico, allora i semaforo aggiusterà proporzionalmente la durata del verde. Questo è evidente: nel caso di totale assenza di traffico, il semaforo perde la sua funzione. Nel caso di massima congestione del traffico su una via il semaforo deve tenere acceso il verde per più tempo per diminuire il grado di congestione.

Se il traffico è particolarmente congestionato, un semaforo fuzzy prolunga la durata della luce verde sino a che la congestione del traffico non diminuisce ad un valore prestabilito
Se il traffico è particolarmente congestionato, un semaforo fuzzy prolunga la durata della luce verde sino a che la congestione del traffico non diminuisce ad un valore prestabilito

A questo punto è evidente che un sistema esperto fuzzyficato sia più intelligente di uno bivalente. Questi sistemi, come abbiamo detto, presentano maggiore versatilità e, a livello economico, garantiscono un significativo risparmio.

Applicazioni della logica fuzzy

La logica sfumata trova nel mondo odierno, una miriade di applicazioni. Alcune di esse sono più vicine a noi di quanto potessimo credere prima di aver letto questo articolo. Alcune moderne lavatrici, ad esempio, sono costruite con chip capaci di gestire regole fuzzy. Anche condizionatori, aspirapolvere. Altre importanti applicazioni riguardano il settore dei trasporti e della viabilità:  la logica fuzzy può essere implementate su sistemi di frenaggio dei mezzi e semafori. Quella che abbiamo fornito non è certamente una lista esaustiva. In generale, tutte le volte che un decisore artificiale deve operare in base a condizioni ad argomenti continui è possibile utilizzare la logica sfumata.

Addendum: il paradosso del mucchio

Già poco dopo Aristotele in realtà i pensatori ellenistici elaborarono un noto paradosso, il paradosso del mucchio (o del sorite). Immaginiamo un mucchio di una qualche sostanza. Immaginiamo poi di togliere da quel mucchio una quantità minima. Quell’entità è ancora un mucchio. Immaginiamo di togliere nuovamente una quantità minima da quel mucchio, che rimane tale. Procediamo così e ovviamente ci chiediamo: quando il mucchio smette di essere tale?

"Mucchio" è una nozione vaga
“Mucchio” è una nozione vaga

Questo paradosso è un paradosso basato sulla vaghezza. Non a caso le logiche fuzzy sono dette anche “vaghe”.

Per approfondire

Un libro per approfondire questi temi è certamente Logiche non classiche – Un’introduzione (Carrocci, Roma, 2007) di Dario e Claudia Palladino. Il capitolo 14 di questo volume è proprio dedicato alla logica fuzzy. L’ultimo paragrafo del capitolo è poi dedicato ad una trattazione tecnica del paradosso del sorite.