Vai al contenuto
coden

Logica fuzzy: t-norme, implicazioni e regole SE–ALLORA

Gradi di verità, t-norme e t-conorme (minimo, prodotto, Łukasiewicz), quali leggi classiche sopravvivono, implicazioni residuate e la valutazione delle regole su un ventilatore controllato da temperatura e umidità.

14 minuti Matěj Žalmánek 2026-10-15

Serie Basi di IA Parte 34 di 52
  1. Mappa dell’intelligenza artificiale: che cos’è ciascuna cosa e come si incastra tutto
  2. Breve storia dell’intelligenza artificiale: da Turing ai modelli linguistici
  3. Dati, modello, addestramento, inferenza: i concetti di base su un unico esempio
  4. Come leggere la notazione matematica: simboli, indici, sommatorie e quantificatori
  5. Insiemi e relazioni: i mattoncini con cui si costruiscono le definizioni nell’IA
  6. Funzioni e applicazioni: perché ogni modello di IA è una funzione
  7. Logica e dimostrazioni: le regole con cui si ragiona nell’IA
  8. Grafi e alberi: la struttura su cui poggiano la ricerca e le reti neurali
  9. Algebra lineare per l’apprendimento automatico: vettori, matrici e perché l’IA soprattutto moltiplica
  10. Derivate, gradiente e regola della catena: come un modello capisce in quale direzione imparare
  11. Discesa del gradiente: come impara un modello
  12. Che cos’è la probabilità: dal lancio di un dado agli assiomi di Kolmogorov
  13. Probabilità condizionata e teorema di Bayes: come cambiare una stima quando scopri qualcosa di nuovo
  14. Variabile aleatoria e funzione di ripartizione: una sola funzione che dice tutto sulla distribuzione
  15. Funzione di densità e funzione di massa: perché una variabile continua ha probabilità zero in un punto
  16. Valore atteso, varianza e covarianza: dove si trova una distribuzione, quanto è larga e che cosa è legato a che cosa
  17. Panoramica delle distribuzioni di probabilità: Bernoulli, binomiale, Poisson, uniforme, normale ed esponenziale
  18. Legge dei grandi numeri e teorema del limite centrale: perché le medie si comportano in modo così prevedibile
  19. Statistica e stima dei parametri: massima verosimiglianza, MAP e intervalli di confidenza
  20. Teoria dell’informazione: entropia, entropia incrociata e divergenza KL — da dove vengono le funzioni di perdita
  21. Ricerca nello spazio degli stati: BFS, DFS, UCS e A* con animazioni
  22. Giochi e avversari: minimax, potatura alfa-beta e Monte Carlo tree search
  23. Soddisfacimento di vincoli: backtracking, propagazione dei vincoli e AC-3 su un sudoku e una mappa delle regioni ceche
  24. Logica e sistemi basati sulla conoscenza: concatenazione in avanti e all’indietro, risoluzione e sistemi esperti
  25. Pianificazione: STRIPS, il mondo dei blocchi, euristiche dal rilassamento e pianificazione negli agenti IA
  26. Ricerca locale e ricottura simulata: un commesso viaggiatore tra i capoluoghi di regione cechi
  27. Algoritmi genetici: popolazione, incrocio, mutazione e selezione su uno zaino per l’escursione
  28. Strategie evolutive e programmazione genetica: dalla regola di un quinto alla legge di Keplero
  29. Ottimizzazione con colonie di formiche: come una traccia di feromone trova un percorso breve
  30. Ottimizzazione a sciame di particelle: inerzia, esperienza propria ed esperienza dello sciame
  31. Neuroevoluzione: evoluzione dei pesi e della forma delle reti neurali e l’algoritmo NEAT
  32. Insiemi fuzzy e funzioni di appartenenza: come scrivere «un po’ caldo»
  33. Logica fuzzy e probabilità: perché «un po’ caldo» non significa «probabilmente caldo»
  34. Logica fuzzy: t-norme, implicazioni e regole SE–ALLORA
  35. Controllo fuzzy: Mamdani e Sugeno, dal ventilatore al pendolo inverso su un carrello
  36. Clustering fuzzy: l’algoritmo fuzzy c-means e i punti tra i cluster
  37. Sistemi neuro-fuzzy (ANFIS): regole fuzzy che imparano dai dati
  38. Catene di Markov: matrice di transizione, distribuzione stazionaria e PageRank
  39. Modelli di Markov nascosti: l’algoritmo di Viterbi e il casinò disonesto
  40. Reti bayesiane: perché l’erba è bagnata e che cosa significa per l’irrigatore
  41. Filtro di Kalman: come stimare da misure imprecise dove si trova un’auto e a che velocità va
  42. Tipi di apprendimento automatico: supervisionato, non supervisionato, semi-supervisionato e altri
  43. Prompt, contesto e RAG: come dare a un modello le informazioni giuste
  44. Autoencoder variazionali (VAE): immagini nuove da uno spazio latente continuo
  45. Reti generative avversarie (GAN): il falsario contro il detective
  46. Modelli di diffusione: come il rumore puro diventa un’immagine
  47. Processi decisionali di Markov: stati, azioni, ricompense ed equazioni di Bellman
  48. Q-learning e DQN: imparare il valore delle azioni, dalla tabella alla rete neurale
  49. Policy gradient e PPO: imparare direttamente la politica
  50. Come funziona un agente IA: un modello linguistico in un ciclo con strumenti
  51. Programmare con agenti IA: incarico, test e controllo
  52. Valutazione e sicurezza dei sistemi di IA: come misurare e come sorvegliare

Programma completo della serie 52 di 83 argomenti pubblicati

Cosa porterai a casa
  • Che cosa sono le t-norme e le t-conorme e perché la «e» nella logica fuzzy è un’intera famiglia di operazioni.
  • Quali leggi della logica classica valgono per il minimo, il prodotto e la t-norma di Łukasiewicz.
  • Come si valutano le regole SE–ALLORA: forza della regola, taglio della conclusione e unione con il massimo.

Utile sapere prima: Insiemi fuzzy e funzioni di appartenenza: come scrivere «un po’ caldo», Logica e dimostrazioni: le regole con cui si ragiona nell’IA

Gli insiemi fuzzy hanno dato a parole come «caldo» un significato preciso. Ora vogliamo ragionare con esse: unirle con i connettivi «e», «o», «non» e scrivere regole come «se fa caldo ed è umido, accendi il ventilatore al massimo». Nella logica classica è chiaro che cosa significa «e»: vero quando sono vere entrambe le parti. Ma se una parte è vera a 0,7 e l’altra a 0,6? Si scopre che di risposte ragionevoli ce n’è un’intera famiglia, e ciascuna conserva pezzi diversi della logica classica.

Prosegue le parti Insiemi fuzzy e funzioni di appartenenza, Logica fuzzy e probabilità e Logica e dimostrazioni.

1. Dall’appartenenza alla verità

A 25 °C l’enunciato «fa caldo» ha grado di verità 0,5: lo stesso numero dell’appartenenza di 25 °C all’insieme «caldo». La logica fuzzy è una logica in cui gli enunciati assumono valori di verità in tutto l’intervallo [0, 1], non solo 0 e 1. I connettivi sono funzioni che dalla verità delle parti calcolano la verità dell’insieme. La logica classica è il caso particolare in cui si usano solo i valori estremi.

Definizione — valore di verità di un enunciato composto

Scegliamo una t-norma T (il connettivo «e»), una t-conorma S («o»), una negazione ¬ («non») e un’implicazione I («se–allora»), tutte definite più sotto. Se gli enunciati φ, ψ hanno valori di verità ‖φ‖, ‖ψ‖ ∈ [0, 1], allora

  • ‖φ e ψ‖ = T(‖φ‖, ‖ψ‖),
  • ‖φ o ψ‖ = S(‖φ‖, ‖ψ‖),
  • ‖non φ‖ = ¬‖φ‖,
  • ‖se φ, allora ψ‖ = I(‖φ‖, ‖ψ‖).

Il valore di un enunciato atomico «x è A» è l’appartenenza μA(x).

In parole semplici

Un enunciato composto si valuta dal basso: prima le appartenenze, poi i connettivi uno alla volta, proprio come nella logica classica si compila una tavola di verità, solo che al posto di 0 e 1 mettiamo numeri intermedi.

Esempio — «fa caldo e non è umido» a 27 °C e 60 %

«Caldo» è il triangolo (22, 28, 34), quindi ‖caldo‖ = (27 − 22) / (28 − 22) = 5/6 ≈ 0,83. «Umido» sale da 40 a 70 %: ‖umido‖ = (60 − 40) / (70 − 40) = 2/3 ≈ 0,67, quindi ‖non umido‖ = 1 − 2/3 = 1/3 ≈ 0,33.

  • con il minimo: min(5/6; 1/3) = 0,33,
  • con il prodotto: 5/6 · 1/3 = 5/18 = 0,28,
  • con la t-norma di Łukasiewicz: max(0; 5/6 + 1/3 − 1) = 1/6 = 0,17.

Tre risposte ragionevoli alla stessa domanda: quale scegliere è l’argomento del resto di questa parte.

2. T-norme: che cosa significa «e»

Definizione — t-norma

Una t-norma è una funzione T : [0, 1]2 → [0, 1] che è

  • commutativa: T(a, b) = T(b, a),
  • associativa: T(a, T(b, c)) = T(T(a, b), c),
  • monotona: da b ≤ c segue T(a, b) ≤ T(a, c),
  • e ha 1 come elemento neutro: T(a, 1) = a.
In parole semplici

Quattro richieste ragionevoli per «e»: l’ordine non conta, le parentesi non contano, input migliori non danno un risultato peggiore, e «A e vero» è lo stesso che A. Da qui segue anche che «A e falso» è falso, quindi sui valori estremi ogni t-norma si comporta esattamente come la «e» classica.

Le quattro più importanti:

  • Minimo (di Gödel, di Zadeh) T(a, b) = min(a, b): una catena è forte quanto il suo anello più debole.
  • Prodotto T(a, b) = a · b: come la probabilità di due eventi indipendenti.
  • Di Łukasiewicz T(a, b) = max(0, a + b − 1): il limite inferiore di Fréchet della parte precedente.
  • Drastica: b quando a = 1; a quando b = 1; altrimenti 0.

La meno ovvia è la t-norma di Łukasiewicz, quindi smontiamola:

TŁ(a, b) = max(0, a + b − 1)

TŁ(a, b)
la verità di «A e B»: quanta verità devono avere le due parti in comune
a + b
le verità delle due parti insieme: immaginale come due segmenti di lunghezza a e b che devono stare in un segmento di lunghezza 1
− 1
la lunghezza dell’intero segmento: ciò che di a + b supera l’uno non ci sta affiancato e deve sovrapporsi; la sovrapposizione è ciò che vale contemporaneamente
max(0, …)
quando i segmenti ci stanno affiancati (a + b ≤ 1), non devono affatto sovrapporsi: la verità di «e» è allora 0, non un numero negativo
Per 0,7 e 0,6: 0,7 + 0,6 − 1 = 0,3. Nel caso peggiore i segmenti si sovrappongono solo di tanto: lo stesso ragionamento dà il limite inferiore di Fréchet per la probabilità di un’intersezione della parte precedente.
minimo T(0,7; 0,6) = 0,60 verità di a (0–1) verità di b (0–1) prodotto T(0,7; 0,6) = 0,42 verità di a (0–1) verità di b (0–1) Łukasiewicz T(0,7; 0,6) = 0,30 verità di a (0–1) verità di b (0–1) drastica T(0,7; 0,6) = 0,00 verità di a (0–1) verità di b (0–1)
Quattro t-norme sul quadrato [0, 1]²: più chiaro, più grande

Per a = 0,7 e b = 0,6 danno 0,60; 0,42; 0,30 e 0. Il minimo è la più generosa di tutte, la drastica la più severa, e questo vale in generale:

Teorema — limiti delle t-norme

Per ogni t-norma T e per tutti gli a, b ∈ [0, 1] vale TD(a, b) ≤ T(a, b) ≤ min(a, b), dove TD è la t-norma drastica.

Dimostrazione. Limite superiore: per la monotonia e l’uno neutro T(a, b) ≤ T(a, 1) = a, e per la commutatività allo stesso modo T(a, b) ≤ b. Limite inferiore: se a = 1, allora T(1, b) = b = TD(1, b); se b = 1, analogamente. Altrimenti TD(a, b) = 0 e T(a, b) ≥ 0 vale sempre. ∎

In parole semplici

«A e B» non può mai essere più vero della più debole delle due parti (segue dalla monotonia e dall’uno neutro: T(a, b) ≤ T(a, 1) = a). Tutte le t-norme stanno quindi fra due estremi.

3. T-conorme e negazione: «o» e «non»

Definizione — t-conorma, negazione, dualità

Una t-conorma S ha le stesse proprietà di una t-norma, solo che l’elemento neutro è 0: S(a, 0) = a. La negazione standard è ¬a = 1 − a.

A ogni t-norma corrisponde la t-conorma duale S(a, b) = 1 − T(1 − a, 1 − b). Per una coppia così valgono le leggi di De Morgan: ¬T(a, b) = S(¬a, ¬b).

In parole semplici

«A o B» è lo stesso che «non è vero che né A né B». Ogni «e» porta quindi con sé la sua «o». Al minimo corrisponde il massimo, al prodotto la somma probabilistica a + b − ab, alla t-norma di Łukasiewicz la somma limitata min(1, a + b). Per 0,7 e 0,6 danno 0,70; 0,88 e 1.

S(a, b) = 1 − T(1 − a, 1 − b)

S(a, b)
la verità di «A o B»: vogliamo ricavarla dalla «e», non inventarla a parte
1 − a, 1 − b
le verità di «non A» e «non B»: la «o» fallisce esattamente quando non vale nessuna delle due parti
T
la t-norma scelta: calcola quanto vale «non A e non B», cioè quanto la «o» fallisce
1 −
la negazione esterna: trasforma «quanto fallisce» in «quanto vale»; grazie a essa le leggi di De Morgan valgono automaticamente per ogni coppia T, S
Esempio — tre t-conorme per dualizzazione
  • Minimo: 1 − min(1 − a, 1 − b) = max(a, b); il complemento minore appartiene al numero maggiore. Per 0,7 e 0,6: 1 − min(0,3; 0,4) = 1 − 0,3 = 0,70.
  • Prodotto: 1 − (1 − a)(1 − b) = 1 − (1 − a − b + ab) = a + b − ab. Per 0,7 e 0,6: 1 − 0,3 · 0,4 = 1 − 0,12 = 0,88.
  • Łukasiewicz: 1 − max(0, (1 − a) + (1 − b) − 1) = 1 − max(0, 1 − a − b) = min(1, a + b). Per 0,7 e 0,6: 1 − max(0; 0,3 + 0,4 − 1) = 1 − 0 = 1,00.

La somma probabilistica ha un significato noto: per eventi indipendenti P(A ∪ B) = P(A) + P(B) − P(A)P(B); si sottrae la sovrapposizione, che altrimenti verrebbe contata due volte.

4. Quali leggi sopravvivono

La logica classica ha moltissime leggi. Nella logica fuzzy non può valere tutto contemporaneamente, e ogni t-norma sceglie in modo diverso. Verificato sulla griglia di valori 0; 0,05; …; 1:

LeggeMinimoProdottoŁukasiewicz
idempotenza: A e A = Asìnono
non contraddizione: A e non A = 0nonosì
terzo escluso: A o non A = 1nonosì
leggi di De Morgansìsìsì
distributività della «e» rispetto alla «o»sìnono

Il minimo conserva l’«algebra» (idempotenza e distributività), ma perde il principio di non contraddizione: «caldo e non caldo» può arrivare a 0,5. Łukasiewicz conserva la non contraddizione e il terzo escluso, ma «caldo e caldo» a 0,7 dà solo 0,4. È un risultato noto: il minimo è l’unica t-norma idempotente, e con essa il principio di non contraddizione non può valere. Scegliere il connettivo significa quindi scegliere a quali proprietà teniamo.

Teorema — il minimo è l’unica t-norma idempotente

Se T è una t-norma e T(a, a) = a per ogni a ∈ [0, 1], allora T(a, b) = min(a, b).

Dimostrazione. Sia a ≤ b. Per idempotenza e monotonia a = T(a, a) ≤ T(a, b), e per il teorema dei limiti T(a, b) ≤ min(a, b) = a. Dunque T(a, b) = a; per a > b allo stesso modo grazie alla commutatività. ∎

Corollario. L’idempotenza e il principio di non contraddizione (con la negazione standard) non possono valere insieme: idempotente è solo il minimo, e nel punto 0,5 dà min(0,5; 1 − 0,5) = 0,5 ≠ 0.

Esempio — controesempi e una dimostrazione dalla tabella
  • Łukasiewicz soddisfa la non contraddizione per ogni a, non solo sulla griglia: TŁ(a, 1 − a) = max(0, a + 1 − a − 1) = max(0, 0) = 0. Analogamente min(1, a + 1 − a) = 1 è il principio del terzo escluso.
  • Łukasiewicz non è idempotente: TŁ(0,7; 0,7) = 0,7 + 0,7 − 1 = 0,4 ≠ 0,7.
  • Il prodotto non è distributivo: per a = b = c = 0,5 si ha «a e (b o c)» = 0,5 · (0,5 + 0,5 − 0,25) = 0,3750, ma «(a e b) o (a e c)» = 0,25 + 0,25 − 0,25 · 0,25 = 0,4375.
  • Il prodotto non soddisfa la non contraddizione: 0,5 · (1 − 0,5) = 0,25 ≠ 0.

Basta un solo controesempio perché una legge non valga. Un «sì» nella tabella, invece, è verificato solo sulla griglia; per la non contraddizione di Łukasiewicz, però, più sopra c’è anche una dimostrazione generale.

5. Implicazione

Definizione — implicazione residuata

A una t-norma continua T corrisponde il residuo

I(a, b) = sup { c ∈ [0, 1] : T(a, c) ≤ b }.

Vale T(a, c) ≤ b se e solo se c ≤ I(a, b). Per il minimo si ottiene l’implicazione di Gödel (1 quando a ≤ b, altrimenti b), per il prodotto quella di Goguen (1 quando a ≤ b, altrimenti b/a) e per la t-norma di Łukasiewicz min(1, 1 − a + b).

In parole semplici

«Se A, allora B» è l’affermazione più forte che, insieme ad A, non dà più di quanto valga B. L’implicazione è del tutto vera ogni volta che la premessa non è più vera della conclusione, proprio come nella logica classica, dove dal falso segue qualsiasi cosa. Per la premessa 0,8 e la conclusione 0,3 le tre implicazioni danno 0,3; 0,375 e 0,5.

I(a, b) = sup { c ∈ [0, 1] : T(a, c) ≤ b }

I(a, b)
la verità di «se A, allora B» per una premessa con verità a e una conclusione con verità b
c ∈ [0, 1]
un candidato per la verità dell’implicazione: proviamo tutti i valori possibili
T(a, c)
«A e (se A, allora B)»: ciò che deduciamo dalla premessa e dall’implicazione insieme; è esattamente ciò che fa il modus ponens
≤ b
la condizione di correttezza: la conclusione dedotta non deve essere più vera di quanto B sia davvero; l’implicazione non deve «promettere di più»
sup
il più grande dei candidati corretti: l’implicazione deve essere la più forte possibile, altrimenti sarebbe sempre 0 e non direbbe nulla
L’implicazione è l’affermazione più forte con cui il modus ponens non deduce mai da A più di quanto valga B.
Esempio — tre implicazioni per la premessa 0,8 e la conclusione 0,3

Cerchiamo il più grande c per cui T(0,8; c) ≤ 0,3:

  • minimo: min(0,8; c) ≤ 0,3 vale esattamente quando c ≤ 0,3 (perché 0,8 > 0,3), quindi I = 0,300,
  • prodotto: 0,8 · c ≤ 0,3, cioè c ≤ 0,3 / 0,8, quindi I = 0,375,
  • Łukasiewicz: max(0; 0,8 + c − 1) ≤ 0,3, cioè c − 0,2 ≤ 0,3 e c ≤ 0,5, quindi I = 0,500.

Verifica con il modus ponens: rimettiamo c = I in T(0,8; c): min(0,8; 0,3) = 0,3; 0,8 · 0,375 = 0,3; max(0; 0,8 + 0,5 − 1) = 0,3. In tutti e tre i casi esce esattamente la conclusione 0,3: l’implicazione è tarata per centrarla.

I residui non sono solo eleganti: grazie alla relazione T(a, c) ≤ b ⇔ c ≤ I(a, b) per essi vale una versione fuzzy del modus ponens: da A con verità a e da «A ⇒ B» con verità c segue B con verità almeno T(a, c). Su questo poggiano le logiche fuzzy formali, costruite negli anni Novanta dal logico ceco Petr Hájek.

6. Regole SE–ALLORA

In pratica incontrerai la logica fuzzy soprattutto in regole che controllano una macchina. Vogliamo un ventilatore che si regoli in base a temperatura e umidità. La velocità (0–100 %) ha i termini lento, medio e veloce, l’umidità i termini secco e umido, la temperatura i termini della parte sugli insiemi fuzzy. La base di regole:

  • R1: SE la temperatura è freddo O gradevole, ALLORA la velocità è lento.
  • R2: SE la temperatura è caldo E l’umidità è secco, ALLORA la velocità è medio.
  • R3: SE la temperatura è caldo E l’umidità è umido, ALLORA la velocità è veloce.
  • R4: SE la temperatura è torrido, ALLORA la velocità è veloce.
Definizione — valutazione di una regola (Mamdani)

Per un ingresso netto si calcola prima la forza della regola α: le appartenenze degli ingressi ai termini della condizione, combinate con una t-norma («e») o una t-conorma («o»). La conclusione, un insieme fuzzy B in uscita, viene poi tagliata: μ′(y) = min(α, μB(y)), oppure ridotta: μ′(y) = α · μB(y). Le conclusioni di tutte le regole si uniscono con il massimo.

In parole semplici

Una regola vale quanto vale la sua condizione, e in quella misura impone anche la sua conclusione. Una regola la cui condizione vale 0,67 può imporre «veloce» al massimo fino all’altezza 0,67. Tutte le regole parlano insieme, e il risultato è il contorno di ciò che spinge in ciascuna direzione.

Ingresso: 27 °C e umidità al 60 %. La temperatura è «gradevole» a 0,2 e «caldo» a 0,83, l’umidità «umido» a 0,67 e «secco» per niente. La regola R3 ha forza min(0,83; 0,67) = 0,67:

temperatura = 27 °C umidità = 60 % velocità del ventilatore (%) minimo 0,83 0,67 0,67 prodotto 0,83 0,67 0,56 temperatura T (°C) umidità relativa (%) velocità del ventilatore (%) appartenenza μ (0–1)
Regola R3 con il minimo (taglio) e con il prodotto (scalatura)

Con il minimo la conclusione «veloce» viene tagliata all’altezza 0,67 e ne resta un trapezio piatto. Con il prodotto la regola ha forza 0,83 · 0,67 = 0,56 e «veloce» viene ridotto per intero: conserva la forma, solo più basso. Entrambi gli approcci si usano nella pratica; il primo è la scelta originale di Mamdani.

L’intera base di regole insieme:

temperatura = 27 °C umidità = 60 % velocità del ventilatore (%) R1 0,20 0,20 R2 0,83 0,00 0 R3 0,83 0,67 0,67 R4 0,00 0 temperatura T (°C) umidità relativa (%) velocità del ventilatore (%) appartenenza μ (0–1) risultato
Tutte le regole del ventilatore per 27 °C e 60 % di umidità

Sono scattate due regole: R1 con forza 0,2 (la temperatura è un po’ «gradevole») e R3 con forza 0,67. R2 e R4 tacciono. Il risultato è un insieme fuzzy sulla velocità: un gradino basso su «lento» e uno alto su «veloce». Ma il motore ha bisogno di un solo numero. Come ricavarlo da questo insieme è l’argomento della prossima parte, sul controllo fuzzy.

μ(y) = maxr min(αr, μBr(y))

μ(y)
l’insieme fuzzy risultante sulla velocità: quanto la base di regole raccomanda la velocità y (nella figura, l’area verde)
αr
la forza della regola r: quanto vale la sua condizione per l’ingresso di oggi; una regola non può affermare più di quanto valga la sua premessa
μBr(y)
la conclusione della regola: la forma di un termine come «veloce», quali velocità gli appartengono e quanto (nella figura, il contorno tratteggiato)
min
taglio: la conclusione viene tagliata all’altezza αr, perché una regola la cui condizione vale 0,67 non può raccomandare nulla più che a 0,67 (nella figura, l’area ambra)
maxr
unione delle regole: le regole sono alternative («R1 o R2 o …»), quindi una velocità è raccomandata tanto quanto la raccomanda la regola più disponibile
Con il prodotto al posto del minimo, la conclusione viene ridotta invece che tagliata: αr · μBr(y).
Esempio — la base di regole passo per passo per 27 °C e 60 %

Passo 1 — fuzzificazione. Temperatura 27 °C: «freddo» 0 (finisce a 14 °C), «gradevole» scende da 23 a 28 °C, quindi (28 − 27) / (28 − 23) = 0,2; «caldo» (27 − 22) / 6 = 0,83; «torrido» 0 (comincia solo a 30 °C). Umidità 60 %: «secco» 0 (finisce a 50 %), «umido» (60 − 40) / 30 = 0,67.

Passo 2 — forze delle regole. La «o» dentro una condizione la calcola la t-conorma duale, la «e» fra le condizioni la t-norma:

RegolaAppartenenze nella condizioneα con il minimoα con il prodotto
R10,00 o 0,200,200,20
R20,83 e 0,000,000,00
R30,83 e 0,670,670,56
R40,000,000,00

Per esempio R3 con il prodotto: 5/6 · 2/3 = 10/18 ≈ 0,56; R1 con il massimo: max(0; 0,2) = 0,2.

Passo 3 — taglio e unione. Il valore dell’insieme di uscita in alcuni punti, μ(y) = max(min(0,2; μlento(y)), min(0,67; μveloce(y))); R2 e R4 hanno forza 0 e non aggiungono nulla:

velocità y (%)10405060708090
μlento(y)1,000,200,000,000,000,000,00
μveloce(y)0,000,000,000,200,601,001,00
μ(y), minimo0,200,200,000,200,600,670,67
μ(y), prodotto0,200,040,000,110,330,560,56

Per esempio in y = 70: «veloce» lì vale (70 − 55) / (80 − 55) = 0,6, meno della forza 0,67, quindi il taglio non cambia nulla e μ(70) = 0,6. In y = 90 «veloce» vale per intero (1) e il taglio lo abbassa a 0,67. Nessuna regola raccomanda le velocità fra 45 e 55 %.

def sila(podminky, vstup, t_norma=min):
    hodnoty = []
    for promenna, terminy in podminky:          # termini uniti da «o»
        hodnoty.append(max(mu[promenna][t](vstup[promenna]) for t in terminy))
    vysledek = 1.0
    for h in hodnoty:                           # condizioni unite da «e»
        vysledek = t_norma(vysledek, h)
    return vysledek

def vystup(pravidla, vstup, y):
    return max(min(sila(r.kdyz, vstup), mu_otacky[r.pak](y)) for r in pravidla)

7. La logica fuzzy e l’IA di oggi

  • Una logica che si può derivare. Le t-norme sono continue, quindi si possono derivare. Gli approcci neurosimbolici come le Logic Tensor Networks ne ricavano una funzione di perdita: la rete impara non solo dagli esempi, ma anche da regole del tipo «ogni cane è un mammifero», la cui verità si calcola con connettivi fuzzy.
  • Vincoli morbidi. Probabilistic Soft Logic usa i connettivi di Łukasiewicz per scrivere regole con pesi, per esempio per le raccomandazioni o per collegare record sulla stessa persona.
  • Decisioni leggibili. Le regole fuzzy sono brevi e comprensibili. Dove le persone devono controllare il processo decisionale, si usano ancora oggi come alternativa spiegabile a una scatola nera.

8. Riepilogo

  • Nella logica fuzzy gli enunciati hanno una verità in [0, 1]; i connettivi sono funzioni su questi valori.
  • La «e» è una t-norma (minimo, prodotto, di Łukasiewicz e altre); tutte stanno fra la t-norma drastica e il minimo.
  • La «o» è la t-conorma duale, il «non» è di norma 1 − a; le leggi di De Morgan valgono sempre, le altre leggi a seconda della t-norma scelta.
  • L’implicazione residuata conserva il modus ponens; su di essa poggiano le logiche fuzzy formali.
  • Le regole SE–ALLORA si valutano con la forza della condizione, il taglio o la riduzione della conclusione e l’unione con il massimo: per il ventilatore a 27 °C e 60 % scatta R1 con forza 0,2 e R3 con forza 0,67.

Vuoi provarci tu? Chiedi a un agente IA di scrivere la tabella delle leggi di questa parte per altre t-norme, per esempio la famiglia di Hamacher o quella di Frank, e scopri quale somiglia di più alla logica classica.

La vedi diversamente? Scrivi a support@coden-app.com.

Un Agente sul tuo computer, guidato dal telefono