Ultralytics YOLO27: Iscriviti alla lista d'attesa.
Licenza YOLO
Torna al glossario di Ultralytics

Fuzzy Logic

La logica fuzzy assegna valori di verità tra 0 e 1, consentendo ai sistemi basati su regole di ragionare con termini vaghi come caldo o vicino. Panoramica di controllori e codice.

La logica fuzzy è una forma di logica a molti valori in cui un'affermazione può essere parzialmente vera, con un grado di verità compreso tra 0 e 1, anziché essere soltanto vera o falsa. Nasce dall'articolo di Lotfi Zadeh del 1965 sugli insiemi fuzzy, pubblicato all'Università della California, Berkeley, e offre ai computer un modo per usare calcoli precisi con termini vaghi del linguaggio umano come «caldo», «vicino» o «veloce». Un sistema fuzzy codifica le conoscenze degli esperti sotto forma di semplici regole «se-allora» e combina le regole applicabili in parte, così l'output cambia gradualmente al variare degli input. Questa caratteristica ha reso la logica fuzzy un elemento fondamentale dell'ingegneria del controllo, dalla frenata dei treni alle lavatrici, e continua a essere utilizzata nei sistemi di intelligenza artificiale (AI) che richiedono regole interpretabili e regolabili manualmente.

Insiemi fuzzy e funzioni di appartenenza#

Nella teoria classica degli insiemi, un elemento appartiene o non appartiene a un insieme. Un insieme fuzzy assegna a ogni elemento un grado di appartenenza compreso tra 0 e 1 tramite una funzione di appartenenza, di solito una curva triangolare, trapezoidale o gaussiana sull'intervallo di input. Gli insiemi vicini si sovrappongono, quindi una stanza a 24 °C può essere «calda» al grado 0,6 e «molto calda» al grado 0,2 contemporaneamente; l'etichetta cambia gradualmente invece di scattare al superamento di una soglia. Gli operatori logici si estendono ai gradi: le definizioni originali di Zadeh prendono il minimo tra due gradi per AND, il massimo per OR e 1 meno il grado per NOT; altre scelte, come il prodotto per AND, appartengono a una famiglia chiamata t-norme.

Come funziona un sistema di inferenza fuzzy#

Un controllore fuzzy trasforma le letture discrete dei sensori in un comando discreto in quattro passaggi:

  1. Fuzzificazione: mappa ogni valore di input sul relativo grado di appartenenza in ciascun insieme fuzzy; per esempio, indica quanto un ostacolo è «vicino», «a media distanza» o «lontano».
  2. Valutazione delle regole: attiva ogni regola se-allora, come «se la distanza è ridotta, la frenata è intensa», in misura proporzionale al grado di validità della condizione.
  3. Aggregazione: limita l'insieme di output di ogni regola al relativo grado di attivazione e combina gli insiemi limitati, di solito prendendone il massimo.
  4. Defuzzificazione: riduce l'insieme combinato a un unico numero, molto spesso il suo baricentro.

Questo schema è il metodo di Mamdani, dal nome di Ebrahim Mamdani, che lo usò con Sedrak Assilian per controllare un motore a vapore da laboratorio nel 1975. I sistemi Takagi-Sugeno sostituiscono gli insiemi di output con formule degli input e ne calcolano la media; sono meno costosi dal punto di vista computazionale e più facili da regolare a partire dai dati. Questo esempio implementa un controllore Mamdani a tre regole che imposta la forza frenante in base alla distanza da un ostacolo:

import numpy as np

# Output fuzzy sets over braking force (0-100%)
force = np.linspace(0, 100, 501)
gentle = np.interp(force, [0, 40], [1, 0])
firm = np.interp(force, [20, 50, 80], [0, 1, 0])
hard = np.interp(force, [60, 100], [0, 1])

for distance in [8, 15, 22, 35]:
    # Fuzzification: how near, medium, and far the obstacle is (meters)
    near = np.interp(distance, [5, 20], [1, 0])
    medium = np.interp(distance, [10, 20, 30], [0, 1, 0])
    far = np.interp(distance, [20, 40], [0, 1])

    # Rules: near -> hard, medium -> firm, far -> gentle; clip each set (min), combine (max)
    combined = np.maximum.reduce([np.minimum(near, hard), np.minimum(medium, firm), np.minimum(far, gentle)])

    # Defuzzification: the centroid of the combined set is the crisp braking command
    print(f"{distance:>2} m -> brake {np.sum(force * combined) / np.sum(combined):.0f}%")

Lo script stampa forze frenanti dell'86%, 60%, 47% e 14% per distanze di 8, 15, 22 e 35 metri. A 15 metri, l'ostacolo è «vicino» al grado 0,33 e «a media distanza» al grado 0,5, quindi le regole per la frenata intensa e sostenuta si attivano entrambe parzialmente e la loro combinazione produce il 60%. Tre regole generano una curva di frenata uniforme, senza soglie che facciano scattare bruscamente il comando.

Applicazioni#

  • Sistemi di controllo: il sistema fuzzy di guida automatica dei treni di Hitachi controllava accelerazione e frenata sulla linea Namboku della metropolitana di Sendai alla sua apertura nel 1987, offrendo viaggi più fluidi e fermate più precise. I controllori fuzzy regolano anche elettrodomestici come lavatrici, cuociriso e condizionatori sulla base di letture imprecise dei sensori.
  • Segmentazione delle immagini: il fuzzy c-means, una versione soft del clustering k-means, assegna a ogni pixel un grado di appartenenza a ciascun cluster. È ampiamente utilizzato nell'analisi di immagini mediche, per esempio per separare i tipi di tessuto cerebrale nelle scansioni MRI, in cui un pixel sul confine può contenere entrambi i tessuti.
  • Decisioni basate sulla visione: la soluzione Ultralytics per la stima della velocità traccia i veicoli con un modello YOLO26 e indica la velocità di ciascuno in km/h; un controllore fuzzy può valutare questo input discreto come lento, moderato o veloce prima di impostare un livello di allerta o la temporizzazione di un segnale.
  • Sistemi neuro-fuzzy: il sistema di inferenza neuro-fuzzy adattivo (ANFIS), introdotto da Jyh-Shing Roger Jang nel 1993, apprende dai dati le funzioni di appartenenza e i parametri delle regole con metodi di addestramento delle reti neurali, mantenendo le regole leggibili.

Logica fuzzy a confronto con probabilità e IA simbolica#

La logica fuzzy e la probabilità usano entrambe numeri compresi tra 0 e 1, ma descrivono tipi diversi di incertezza. Una probabilità, la quantità su cui ragionano le reti bayesiane, esprime quanto è probabile un evento definito con precisione, per esempio una probabilità del 30% che domani piova. Un grado di appartenenza fuzzy esprime quanto una descrizione vaga corrisponda a uno stato noto, per esempio una tazza di caffè a 50 °C che è «calda» al grado 0,7. Rispetto all'IA simbolica classica, i sistemi di regole fuzzy mantengono la forma leggibile «se-allora» dei sistemi esperti, ma sostituiscono la condizione sì-o-no di ogni regola con un grado, consentendo a più regole di contribuire contemporaneamente a una decisione.

Esplora le soluzioni

La visione artificiale nello sport

La visione artificiale nello sport

Scopri come Ultralytics YOLO alimenta la computer vision nello sport con il tracciamento di giocatori e palloni, l'analisi delle prestazioni, gli approfondimenti per gli allenatori e la riabilitazione degli atleti.
Scopri di più
Computer vision per immagini aeree

Computer vision per immagini aeree

Trasforma immagini aeree e riprese da drone in informazioni utili in tempo reale per agricoltura, acquacoltura, conservazione e analisi geospaziale con Ultralytics YOLO.
Scopri di più
Computer vision nel settore aerospaziale

Computer vision nel settore aerospaziale

Applica la visione artificiale nel settore aerospaziale con Ultralytics YOLO per l'ispezione degli aeromobili, il rilevamento di FOD sulle piste, le operazioni di terra aeroportuali e il rilevamento di difetti nei materiali compositi.
Scopri di più
Visione artificiale nella sicurezza

Visione artificiale nella sicurezza

Proteggi ogni sito con i modelli Ultralytics YOLO. L'IA visiva alimenta il monitoraggio perimetrale, il rilevamento delle minacce, il riconoscimento delle targhe e la sicurezza sul lavoro.
Scopri di più
Visione artificiale nella robotica

Visione artificiale nella robotica

Dai più potenza alle macchine intelligenti con i modelli Ultralytics YOLO. Nell'ambito della robotica, l'IA visiva alimenta la navigazione autonoma, la percezione, il tracciamento degli oggetti e il controllo in tempo reale.
Scopri di più
Visione artificiale nella logistica

Visione artificiale nella logistica

Semplifica la logistica con i modelli Ultralytics YOLO. L'IA per la visione consente l'ispezione dei pacchi, la selezione, il tracciamento dei veicoli e il monitoraggio della sicurezza nei magazzini in tempo reale.
Scopri di più
Visione artificiale nel commercio al dettaglio

Visione artificiale nel commercio al dettaglio

Ripensa il commercio al dettaglio con i modelli Ultralytics YOLO. L'IA per la visione consente di tracciare le scorte, monitorare gli scaffali, gestire le code e ottenere informazioni più approfondite sui clienti.
Scopri di più
Visione artificiale in ambito sanitario

Visione artificiale in ambito sanitario

Crea soluzioni sanitarie con i modelli Ultralytics YOLO. In ambito sanitario, l'IA per la visione consente di elaborare più rapidamente le immagini mediche, migliorare la diagnostica e monitorare i pazienti.
Scopri di più
Computer vision nella produzione

Computer vision nella produzione

Ottimizza la produzione con i modelli Ultralytics YOLO. La visione basata sull'IA migliora il controllo qualità, il rilevamento dei difetti, la conformità ai requisiti sui DPI e l'automazione delle linee di assemblaggio.
Scopri di più
Computer vision nel settore automobilistico

Computer vision nel settore automobilistico

Applica la computer vision al settore automobilistico con i modelli Ultralytics YOLO. La visione basata sull'IA migliora la sicurezza stradale, i sistemi di assistenza alla guida e l'automazione dei veicoli, per strade più intelligenti.
Scopri di più
Visione artificiale in agricoltura

Visione artificiale in agricoltura

Porta l'IA visiva nell'agricoltura intelligente con i modelli Ultralytics YOLO. Gestisci il monitoraggio delle colture, il tracciamento del bestiame e l'agricoltura di precisione per ottenere raccolti più abbondanti e intelligenti.
Scopri di più

Costruiamo insieme il futuro dell'IA!

Inizia il tuo percorso verso il futuro del machine learning