Le basi della logica fuzzy

Le basi della logica fuzzy

La logica fuzzy è un po’ come quando cerchi di decidere se un gelato è buono o cattivo, ma non è così semplice come dire “sì” o “no”. Nella vita normale, molte cose non sono solo nere o bianche, ma hanno tante sfumature di grigio.

Immagina che tu abbia un gelato al cioccolato. Se è fatto con il cioccolato più delizioso e ha la giusta quantità di zucchero, potresti dire che è “molto buono”. Ma se usa un cioccolato non tanto buono e ha troppo zucchero, potresti dire che è “non tanto buono”. E ci sono tanti livelli tra “molto buono” e “non tanto buono”.

La logica fuzzy aiuta i computer a capire queste sfumature, proprio come fai tu quando valuti il gelato. Invece di pensare solo in termini di “sì” o “no”, la logica fuzzy permette ai computer di lavorare con idee più complesse come “un po’ sì” o “più o meno”.

Tra “caldo” e “freddo” ci sono diversi gradi

La logica fuzzy è molto utile all’intelligenza artificiale (IA) perché aiuta i computer a capire e lavorare con informazioni che non sono sempre chiare o esatte. Nella vita reale, molte cose non sono solo “sì” o “no”, ma hanno molte sfumature, per esempio in situazioni dove non c’è una risposta chiara, come prevedere il tempo o decidere quanto riscaldamento o aria condizionata usare in una stanza.

La logica Fuzzy aiuta i computer a interpretare il modo in cui le persone parlano realmente, che spesso include termini vaghi o imprecisi. Aiuta i robot a navigare in ambienti complessi e a prendere decisioni basate su informazioni incomplete o incerte. Inoltre viene usata per controllare macchine e processi industriali in modo più efficiente, adattandosi a cambiamenti continui.

In sostanza, la logica fuzzy rende l’intelligenza artificiale più “umana”, permettendole di gestire situazioni incerte e complesse in modo simile a come farebbe una persona.

Com’è fatta la logica fuzzy?

Nell’ambito della logica fuzzy una Variabile Linguistica è l’argomento generale che stiamo discutendo. Prendiamo la temperatura come esempio.

I Termini Linguistici associati alla variabile possono essere: “Freddo”, “Caldo”, “Mite”. Questi sono modi specifici per descrivere la temperatura. Ognuno di questi termini è una parte della variabile “Temperatura”.

Funzioni di Appartenenza: Queste sono come dei righelli speciali che aiutano a capire quanto qualcosa sia “caldo” o “freddo”. Immaginiamo che “Freddo” significhi una temperatura da 0 a 15 gradi, “Mite” da 10 a 25 gradi, e “Caldo” da 20 a 30 gradi. Le funzioni di appartenenza sono come regole che ci dicono quando usare ciascun termine. Se la temperatura è tra 15 e 20 gradi, secondo la nostra funzione di appartenenza, la chiameremmo sicuramente “Mite”.

Per ogni termine linguistico associato a una variabile linguistica, c’è una funzione di appartenenza specifica.

Una variabile linguistica può avere più termini linguistici, e quindi avrà più funzioni di appartenenza.

Pensiamo alla variabile linguistica “Temperatura”. Supponiamo che essa abbia tre termini linguistici: “Freddo”, “Mite” e “Caldo”. Ogni termine avrà la sua specifica funzione di appartenenza:

  • Una funzione di appartenenza per “Freddo” che indica quanto una data temperatura è considerata fredda.
  • Una funzione di appartenenza per “Mite” che indica quanto una data temperatura è considerata mite.
  • Una funzione di appartenenza per “Caldo” che indica quanto una data temperatura è considerata calda.

Queste funzioni di appartenenza possono sovrapporsi, poiché, ad esempio, una temperatura di 18°C potrebbe appartenerne parzialmente sia alla categoria “Freddo” che a quella “Mite”.

I numeri Fuzzy

Un numero fuzzy è un modo speciale di rappresentare i numeri quando non siamo sicuri o quando un numero non è esatto. È un po’ come quando qualcuno ti chiede quanti anni hai e tu rispondi “intorno ai 10”, invece di dire esattamente “10 anni”.

Nella matematica normale, usiamo numeri esatti, come 1, 2, 3, e così via. Ma nella logica fuzzy, possiamo usare numeri che non sono così precisi. Questi numeri fuzzy possono dire cose come “circa 10” o “tra 5 e 15”.

Ecco un esempio: se dici che hai “circa 10 anni”, questo è un numero fuzzy. Non dice esattamente quanti anni hai, ma dà un’idea generale.

Matematicamente un numero fuzzy è rappresentato come un insieme di coppie, dove ogni coppia consiste in un valore numerico e un grado di appartenenza associato. Questo grado di appartenenza, che varia tra 0 e 1, indica quanto quel valore specifico appartiene al numero fuzzy.

Ad esempio, consideriamo un numero fuzzy A che rappresenta l’idea di “circa 10”. Potrebbe avere un grado di appartenenza di 1 per il valore 10, ma anche un grado di appartenenza di 0.8 per il valore 9 e 11, un grado di appartenenza di 0.5 per 8 e 12, e così via. Questo indica che 10 è sicuramente nel set, 9 e 11 sono molto probabili, ma 8 e 12 sono meno probabili.

Il concetto di numero fuzzy è spesso visualizzato usando funzioni di appartenenza, che tracciano il grado di appartenenza di ciascun valore al numero fuzzy. Queste funzioni possono avere diverse forme, come triangolare, trapezoidale, gaussiana, ecc., a seconda della natura e della distribuzione dell’incertezza.

Le regole fuzzy

Le regole fuzzy sono un po’ come le regole che seguiamo nella vita di tutti i giorni, ma sono usate dai computer per prendere decisioni quando le cose non sono completamente chiare o esatte.

Immagina di avere delle regole per decidere cosa indossare. Una regola potrebbe essere: “Se fuori fa molto freddo, allora indosso un cappotto pesante”. In questo caso, “molto freddo” e “cappotto pesante” sono termini fuzzy perché non sono super precisi. “Molto freddo” può significare temperature diverse per persone diverse.

Nella logica fuzzy, le regole aiutano i computer a capire queste situazioni non precise. Le regole fuzzy sono formate da due parti:

Condizione (Se…): Questa è la parte della regola che descrive la situazione. Per esempio, “Se fuori fa molto freddo” (antecedente)

Conclusione (Allora…): Questa è la parte della regola che dice al computer cosa fare in quella situazione. Per esempio, “Allora indosso un cappotto pesante” (conseguente).

Queste regole aiutano i computer a fare scelte in situazioni dove non è tutto nero o bianco, ma ci sono molte sfumature di grigio.

Per eseguire queste regole un computer si avvale del motore di Inferenza Fuzzy

I Motori di Inferenza Fuzzy sono come dei cervelli speciali dei computer che usano la logica fuzzy per prendere decisioni. Funzionano in tre passaggi principali: fuzzificazione, applicazione delle regole fuzzy, e defuzzificazione. Vediamoli uno per uno:

Fuzzificazione: La fuzzificazione passa da un numero a un termine linguistico. È il processo di prendere dati numerici precisi e trasformarli in termini fuzzy, che sono più generici e meno esatti. Si fa grazie alla funzione di appartenenza.
Ad esempio, se hai un numero come la temperatura di 10 gradi, la fuzzificazione lo trasforma in un termine linguistico come “bassa temperatura”. Questo aiuta i motori di inferenza fuzzy a lavorare con informazioni che non sono super precise, ma più vicine a come parliamo e pensiamo noi umani.

Applicazione delle Regole Fuzzy: Una volta che il computer ha i dati in forma fuzzy, usa le regole fuzzy per decidere cosa fare. Ad esempio, potrebbe avere una regola che dice “Se fa molto freddo, allora accendi il riscaldamento”. Il motore di inferenza fuzzy usa questa regola per capire cosa fare con l’informazione “Fa molto freddo”.

Defuzzificazione: Dopo aver preso una decisione, il motore di inferenza fuzzy deve tradurre quella decisione in qualcosa che noi possiamo capire o che può essere messo in pratica. Si fa anche in questo caso grazie alla funzione di appartenenza (inversa). Ad esempio, trasforma la decisione “Accendi il riscaldamento” in un’azione concreta, come accendere il riscaldamento a una certa temperatura.

Si parte con dati numerici precisi, come “la temperatura è di 10 gradi” registrati, per esempio da sensori.

I numeri vengono trasformati in termini fuzzy. Quindi, “10 gradi” potrebbe essere interpretato come “bassa temperatura” in base alle funzioni di appartenenza.

Il motore di inferenza fuzzy applica una regola. Ad esempio, se la regola dice “Se la temperatura è bassa, allora metti il riscaldamento a bassa potenza”, il termine “bassa temperatura” attiva questa regola. In questo caso il conseguente è “bassa potenza”.

Infine, il risultato della regola viene trasformato di nuovo in un’azione numerica concreta, come “impostare il riscaldamento a bassa potenza” (bassa potenza).

Se il valore numerico di partenza fosse “15 gradi” e corrispondesse ad un valore 0.6 della funzione di appartanenza associata a “bassa temperatura” allora la regola potrebbe stabilire come conseguente un valore 0,6 della funzione di appartanenza associata a “bassa potenza” che corrisponderebbe a 70 watt di potenza.

CLICCA SULL’IMMAGINE PER INGRANDIRLA

Quando non c’è esattezza

Ora, i sistemi fuzzy sono come meteorologi molto intelligenti che non hanno bisogno di sapere esattamente ogni dettaglio per fare una previsione. Anziché dire “Domani ci saranno esattamente 25 gradi e il 60% di umidità”, un sistema fuzzy potrebbe dire “Domani sarà probabilmente una giornata calda e un po’ umida”. Questo perché i sistemi fuzzy lavorano bene anche con informazioni approssimative.

Facciamo un esempio con il traffico in una grande città. Prevedere esattamente come sarà il traffico è molto difficile perché ci sono tante variabili: quante auto ci sono, gli orari di lavoro delle persone, se ci sono incidenti, ecc. Un sistema fuzzy, invece di cercare di calcolare tutto in modo preciso, potrebbe guardare a questi fattori in modo più generale e fare una previsione tipo: “Probabilmente ci sarà molto traffico nelle ore di punta la mattina e la sera, ma meno nel pomeriggio”.

Questo tipo di previsione non è perfetta, ma può essere molto utile per aiutare le persone a pianificare quando andare al lavoro o quando fare commissioni per evitare il traffico pesante.

I sistemi fuzzy sono bravi a fare queste previsioni perché riescono a lavorare con l’incertezza e con le informazioni che non sono completamente chiare o precise. È come avere un amico che, anche se non conosce ogni singolo dettaglio di una situazione, riesce comunque a darti un buon consiglio su cosa potrebbe succedere.