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