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.
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.
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.
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?
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.