Logica Fuzzy · Funzioni di Appartenenza

Funzioni di Appartenenza Fuzzy: Forme e Proprietà

Una descrizione tecnica delle principali famiglie di funzioni di appartenenza e del loro utilizzo in sistemi fuzzy e modelli neuro-fuzzy.

Torna all'indice generale

Definizione matematica

Un insieme fuzzy A su un universo X è definito da una funzione di appartenenza μA(x) che associa a ogni x ∈ X un valore reale nell'intervallo [0, 1].

In notazione compatta:

μA : X → [0, 1]

dove μA(x) rappresenta il grado di appartenenza di x all'insieme fuzzy A.

Funzione di appartenenza triangolare

La funzione triangolare è definita da tre parametri (a, b, c) con a < b < c. È zero fuori dall'intervallo [a, c], cresce linearmente da a a b e decresce linearmente da b a c.

In forma piecewise:

0                            se x ≤ a
(x - a) / (b - a)            se a < x ≤ b
(c - x) / (c - b)            se b < x < c
0                            se x ≥ c
      

Questa forma è molto usata nei controllori fuzzy grazie alla sua semplicità e al fatto che i parametri hanno interpretazioni intuitive (inizio, picco, fine).

Funzione di appartenenza trapezoidale

La funzione trapezoidale è una generalizzazione della triangolare con un plateau centrale. È definita da quattro parametri (a, b, c, d) con a < b ≤ c < d.

0                            se x ≤ a
(x - a) / (b - a)            se a < x ≤ b
1                            se b < x ≤ c
(d - x) / (d - c)            se c < x < d
0                            se x ≥ d
      

È utile per rappresentare concetti come “circa costante” in una regione centrale di valori.

Funzione di appartenenza gaussiana

La funzione gaussiana utilizza la forma tipica di una campana, controllata da media m e deviazione σ > 0:

exp( - ( (x - m)² ) / (2 σ²) )
      

La gaussiana è particolarmente utile quando si desidera una transizione liscia e infinita (anche se di fatto tagliata dal range dei dati). È comune nei modelli neuro-fuzzy, perché è facilmente derivabile rispetto ai parametri m e σ.

Criteri pratici di scelta

  • Sistemi embedded o risorse limitate: triangolari e trapezoidali per semplicità computazionale.
  • Modelli neuro-fuzzy: gaussiane o sigmoidi per facilità di ottimizzazione tramite gradienti.
  • Prototipazione rapida: triangolari come scelta predefinita, da affinare in seguito.

In Python, le funzioni di appartenenza possono essere implementate come semplici funzioni o come oggetti con parametri modificabili dinamicamente durante il training.