You are on page 1of 63

AGENTI CHE RAGIONANO LOGICAMENTE

LOGICA FUZZY
E.Mumolo
mumolo@units.it

Introduzione

Logica Booleana (Boole 1854)


Teoria Classica degli insiemi (1900) insiemi tradizionali (appartenenza
booleane) e operazioni sugli insiemi.
Logica multivariata (Lukasiewicz, 1930)
Teoria degli insiemi Fuzzy (Zadeh 1965) estensione degli insiemi
tradizionali (appartenenza non booleana) e operazioni sugli elementi

Sulla base di queste propriet e operazioni gli insiemi fuzzy vengono usati
per trattare lincertezza e per rappresentare conoscenza mediante regole

Definizioni

Come possiamo rappresentare la conoscenza di un esperto umano


che usa termini vaghi di descrizione?

La Logica Fuzzy viene usata per descrivere e operare con definizioni


vaghe

Esempio (controllo di un cementificio): se la temperatura alta aggiungere poco


cemento e aumentare di molto lacqua

La logica Fuzzy basata sullidea che gli elementi dellinsieme sono


definiti mediante un grado di appartenenza.

La potenzialit espressiva viene aumentata: molte grandezze possono


essere rappresentate in modo fuzzy

Esempio:.

Il motore molto caldo.

Luigi molto alto.

Definzioni

La logica Booleana usa definizioni nette tra


appartenenza e non appartenenza ad un insieme.

Per esempio: insieme di persone con altezza


maggiore di 180 cm.

Luigi alto perch la sua altezza di 181 cm.


Viceversa Davide basso perch la sua altezza di 179
cm.

Ovviamente, ci chiediamo se possiamo definire


basso Davide

Il termine Fuzzy Logic

Tipicamente usato in due sensi:

Senso stretto: la Fuzzy logic un ramo della


teoria degli insiemi fuzzy, che tratta della
rappresentazione e della inferenza della
conoscenza. La logica Fuzzy tratta la conoscenza
imprecisa.
Senso lato: la logica fuzzy viene cosniderato
sinonimo della teoria degli insiemi fuzzy

Definizioni

La logica Fuzzy un insieme di principi matematici


per la rappresentazine della conoscenza basati sul
gradi di appartenenza ad un insieme (degrees of
membership).

La logica Fuzzy usa un continuo di valori logici tra 0


(completamente falso) e 1 (completamente vero.

0 1

(a) Boolean Logic.

Logica booleana

0 0

0.2

0.4

0.6

0.8

1 1

(b) Multi-valued Logic.

Logica multivariata

Insiemi tradizionali e Insiemi


Fuzzy
Degree of

GradiMembership
di appartenenza

Crisp Sets

1.0

Lasse x rappresenta luniverso del


discorso: tutti I possibili valori
applicabili ad una determinata
variabile.

0.8

Tall Men

0.6
0.4
0.2
0.0
150

160

170

Degree of

Gradi
di appartenenza
Membership

180

190

200

210
Height, cm

altezza (cm)

Fuzzy Sets

1.0
0.8

Lasse y rappresenta il valore di


appartenenza allinsieme Fuzzy.

0.6
0.4
0.2
0.0
150

160

170

180

190

200

210
Height,(cm)
cm
altezza

Un insieme Fuzzy ha confini


Fuzzy

Sia X luniverso del discorso ed i suoi elementi siano


chiamati x. Nella teoria classica degli insiemi linsieme A
su X definito tramite la funzione fA(x) chiamata la
funzione caratteristica di A:
fA(x) : X {0, 1}, dove

1, if x A
0, if x A

f A ( x)

Questo insieme mappa luniverso del discorso X ad un


insieme di due elementi.

Un insieme Fuzzy ha confini


Fuzzy

Nella teoria degli insiemi Fuzzy, linsieme fuzzy A su X definito


tramite la funzione A(x) chiamata la funzione di appartenenza
dellinsieme A:
A(x) : X {0, 1}, dove

A(x) = 1 se x completamente in A;
A(x) = 0 se x non in A;
0 < A(x) < 1 se x parzialmente in A.

Per ogni elemento x delluniverso X, la funzione di appartenenza


A(x) rappresenta quanto x appartiene allinsieme A

Questo valore, compreso tra 0 e 1, rappresenta il grado di


appartenenza dellelemento a allinsieme A.

Rappresentazione degli
insiemi Fuzzy
Lesempio della altezza pu essere espresso tramite tre insiemi Fuzzy:
tall, short e average
of
Gradi diDegree
appartenenza
Membership

Crisp Sets

1.0
Short

0.8

Average

Short
Tall
Tall Men

0.6
0.4
0.2
0.0
150

160

170

of
Gradi diDegree
appartenenza
Membership

180

190

200

210
Height, cm

200

210

Fuzzy Sets

1.0
0.8
Short

0.6

Tall

Average

0.4
Tall

0.2
0.0
150

160

170

180

190

Rappresentazione degli
insiemi Fuzzy

Gli insiemi fuzzy sono rappresentati tipicamente con le


funzioni sigmoide, gaussiana, trapezio, triangolo

fuzzy
X Sottoinsieme
Fuzzy Subset
A A

(x)
1

Crisp Subset
A
Sottoinsieme
tradizionale
A

0
Fuzziness
Fuzziness
incertezza (fuzzyness)

Variabili linguistiche

Alla base della teoria c lidea delle Variabili Linguistiche


Una Variabile Linguistica una variabile fuzzy I cui valori sono
termini linguistici. Per esempio, laffermazione Luigi alto implica
che la variabile linguistica Luigi ha il valore linguistico alto.
Nei sistemi esperti Fuzzy, le variabili linguistiche sono usate nelle
regole fuzzy. Per esempio:
SE

il vento

ALLORA andare a vela

forte
buono

oppure
IF
THEN

speed
is slow
stopping_distance is short

Variabili linguistiche e
affermazioni vaghe (Hedges)

Il campo dei possibili valori di una variabile linguistica rappresenta


luniverso del discorso di quella variabile.

Esempio: universo del discorso della variabile linguistica velocit


potrebbe andare dai valori da 0 a 300 Km/h e pu essere diviso nei
sottoinsiemi fuzzy molto lento, lento, medio, veloce e molto
veloce.

I fuzzy set possono avere di qualificatori, chiamati hedges.

Gli hedges sono termini che modificano la forma degli insiemi fuzzy.
Possono essere gli avverbi molto, in qualche modo, piuttosto, pi
o meno, leggermente (very, somewhat, quite, more or less,
slightly).

Funzioni di appartenenza

Un insieme fuzzy rappresentato nel seguente modo


A = A(xi)/xi + . + A(xn)/xn
dove A(xi)/xi la coppia (grado_di_appartenenza, elemento) dove
lelemento appartiene alluniverso del discorso:
A = {x1, x2, .., xn}

Operazioni sugli insiemi


Fuzzy
Not A

B
A

AA

Complement

Containment

Intersection

AA

Union

Complemento di un insieme
fuzzy

Insiemi tradizionali: sono gli elementi che non appartengono


allinsieme

Insiemi fuzzy: stabilisce il grado col quale gli elementi non


appartengono allinsieme

Per gli insiemi tradizionali, il complemento di un insieme lopposto


dellinsieme.

Esempio: insieme delle persone alte, il complemento linsieme delle


persone NON alte
Se rimuoviamo le persone alte dalluniverso del discorso, otteniamo il
complemento.

Se A un insieme fuzzy, il suo complemento ~A ottenuto nel


seguente modo:

~A(x) = 1 A(x)

In altri termini

Complemento

Appartenenza

Esempio:
Persone

Persone alte

Persone molto alte

Negli insiemi tradizionali tutti gli elementi di un insieme


appartengono interamente al soprainsieme.
Negli insiemi fuzzy, ogni elemento pu appartenere di
meno al sottoisieme che al soprainsieme
Un elemento di un insieme fuzzy pu avere meno grado
di appartenenza al sottoinsieme che al soprainsieme

Intersezione di due insiemi


fuzzy

Insiemi tradizionali:

Quale elemento appartiene ad entrambi gli insiemi?

Insiemi Fuzzy:

Quanto appartiene un elemento a entrambi gIi insiemi?

Negli insiemi classici, una intersezione tra due insiemi contiene gli
elementi condivisi. Negli insiemi fuzzy un elemento pu appartenere
parzialmente ai due insiemi con diversi gradi di appartenenza

Lintersezione tra insiemi fuzzy definita come il grado di


appartenenza pi basso

Intersezione tra due insiemi fuzzy A e B sulluniverso del discorso X:

AB(x) = min [A(x), B(x)] = A(x) B(x),


dove xX

Unione di due insiemi fuzzy

Insiemi tradizionali:

Quale elemento appartiene ad entrambi gli insiemi?

Insiemi Fuzzy:

Quanto appartiene un elemento a entrambi gIi insiemi?

L insieme unione di due insiemi tradizionali formato da tutti gli


elementi che appartengo sia a uno che allaltro.

Negli insiemi fuzzy lunione linverso della intersezioneIn fuzzy


sets, the union is the reverse of the intersection: il grado di
appartenenza pi alto degli elementi di entrambi gli insiemi:
AB(x) = max [A(x), B(x)] = A(x) B(x),
con xX

In altri termini

Unione

Intersezione

Propriet degli insiemi fuzzy:


uguaglianza

Un insieme fuzzy uguale ad unaltro se e solo se


A(x) = B(x), xX

Esempio
A = 0.3/1 + 0.5/2 + 1/3
B = 0.3/1 + 0.5/2 + 1/3
quindi A = B

Propriet degli insiemi fuzzy:


inclusione
Linsieme fuzzy A, A X, incluso in un insieme fuzzy
B, B X, se
A(x) B(x), xX

A un sottoinsieme di B
Esempio:
si consideri X = {1, 2, 3} e gli insiemi A e B
A = 0.3/1 + 0.5/2 + 1/3;
B = 0.5/1 + 0.55/2 + 1/3
allora A un sottoinsieme di B, or A B

Propriet degli insiemi fuzzy:


cardinalit
La cardinalit di un
insieme finito tradizionale il numero

di elementi.
La cardinalit di un insieme fuzzy A la somma dei
valori dei gradi di appartenenza di A, A(x):
cardA = A(x1) + A(x2) + A(xn) = A(xi),

Esempio: X = {1, 2, 3} e insiemi A e B


A = 0.3/1 + 0.5/2 + 1/3;
B = 0.5/1 + 0.55/2 + 1/3
cardA = 1.8
cardB = 2.05

i=1..n

Propriet degli insiemi fuzzy:


fuzzy set vuoto
Un insieme fuzzy A vuoto se e solo se:
A(x) = 0, xX

Esempio: se X = {1, 2, 3} e linsieme A


A = 0/1 + 0/2 + 0/3
allora A vuoto

Normalit di un insieme
fuzzy

Un insieme fuzzy sulluniverso del discorso X chiamato


normale se esiste almeno un elemento xX tale che
A(x) = 1.

Tutti gli insiemi tradizionali sono bormali eccetto linsieme


nullo.

Laltezza di un sottoinsieme fuzzy A il livello di appartenenza


pi alto di un elemento di A:
height(A) = maxx(A(x))

Il nucleo e il supporto di un
insieme fuzzy

Si consideri A, un sottoinsieme fuzzy di X:

il supporto di A il sottoinsieme tradizionale di X


consistente di tutti gli elementi con grado di
appartenenza non nullo:
supp(A) = {x A(x) 0 e xX}

Il nucleo di A il sottoinsieme tradizionale di X


consistente di tutti gli elementi pari a 1:
core(A) = {x A(x) = 1 e xX}

Operazioni matematiche con


insiemi Fuzzy

Prodotto: aA = {aA(x), xX}


Esempio: sia a =0.5, e
A = {0.5/a, 0.3/b, 0.2/c, 1/d}
allora

aA = {0.25/a, 0.15/b, 0.1/c, 0.5/d}

Potenza: Aa = {A(x)a, xX}


Esempio: sia a =2, e
A = {0.5/a, 0.3/b, 0.2/c, 1/d}
allora
Aa = {0.25/a, 0.09/b, 0.04/c, 1/d}

Esempi

Siano A e B due sottoinsiemi fuzzy su X,


X = {a, b, c, d, e }
A = {1/a, 0.3/b, 0.2/c 0.8/d, 0/e}
e
B = {0.6/a, 0.9/b, 0.1/c, 0.3/d, 0.2/e}

Esempi

Supporto:
supp(A) = {a, b, c, d }
supp(B) = {a, b, c, d, e }

Nucleo:
core(A) = {a}
core(B) = {o}

Cardinalit:
card(A) = 1+0.3+0.2+0.8+0 = 2.3
card(B) = 0.6+0.9+0.1+0.3+0.2 = 2.1

Esempi

Complemento:
A = {1/a, 0.3/b, 0.2/c 0.8/d, 0/e}
A = {0/a, 0.7/b, 0.8/c 0.2/d, 1/e}

Unione:

A B = {1/a, 0.9/b, 0.2/c, 0.8/d, 0.2/e}

Intersectione:

A B = {0.6/a, 0.3/b, 0.1/c, 0.3/d, 0/e}


Recall B = {0.6/a, 0.9/b, 0.1/c, 0.3/d, 0.2/e}

Regole Fuzzy

Le regole fuzzy mettono in relazione gli insiemi fuzzy mediante


una sequenza antecedente - conseguente

Una regola fuzzy pu essere definita come una istruzione


condizionale della forma:
IF
THEN

x
y

is A
is B

dove x e y sono variabili linguistiche e A,B sono valori linguistici


determinati da insiemi fuzzy sugli universi X e Y

Viceversa una regola IF-THEN classica usa logica binaria

Regola IF-THEN-ELSE

In logica tradizionale
Rule: 1
IF
speed is > 100
THEN stopping_distance is long

Rule: 2
IF
speed is < 40
THEN stopping_distance is short

speed pu essere tra 0 e 200

In logica fuzzy
Rule: 1
Rule: 2
IF
speed is fast
IF
speed is slow
THEN stopping_distance is longTHEN stopping_distance is short

anche qui speed pu essere tra 0 e 200 ma un elemento degli insiemi fuzzy slow,
medium, fast

Attivazione delle regole

Regola fuzzy: modello di stima dei gradi di appartenenza


Esempio:
IF
height is tall
THEN weight is heavy

Questo modello stabilisce una relazione non lineare tra laltezza e il


peso di una persona
Degree of
Membership
1.0
0.8

Degree of
Membership
1.0
Heavy men
0.8

Tall men

0.6

0.6

0.4

0.4

0.2

0.2

0.0
160

0.0
180

190

200
Height, cm

70

80

100

120
Weight, kg

Attivazione delle regole

Il valore delluscita stabilita dal conseguente pu essere stimato


direttamente da una corrispondenza del grado di appartenenza
dellantecedente
Questa forma di Inferenza fuzzy chiamata selezione monotonica .

Degree of
Membership
1.0

Degree of
Membership
1.0
Tall men

0.8

0.8

0.6

0.6

0.4

0.4

0.2

0.2

0.0

0.0
160

180

190
200
Height, cm

Heavy men

70

80

100
120
Weight, kg

Attivazione delle regole

Una regola fuzzy in generale ha pi antecedenti:


IF
AND
AND
THEN

project_duration is long
project_staffing is large
project_funding is inadequate
risk is high

IF
OR
THEN

service is excellent
food is delicious
tip is generous

Pu avere anche pi conseguenti


IF
THEN

temperature is hot
hot_water is reduced;
cold_water is increased

Esempi di insiemi Fuzzy

Controllo di un condizionatore:

RULE 1:
IF TEMP is COLD

THEN

SPEED is MINIMAL

RULE 2:
IF TEMP is COOL

THEN

SPEED is SLOW

RULE 3:
IF TEMP is PLEASANT

THEN

RULE 4:
IF TEMP is WARM

THEN

SPEED is FAST

RULE 5:
IF TEMP is HOT

THEN

SPEED is BLAST

SPEED is MEDIUM

Esempi di insiemi Fuzzy


Gli insiemi fuzzy possono
essere calibrati sulla
percezione umana
dove:
Y : temp tale che (0<A(x)<1)
Y* : temp tale che (A(x)=1)
N : temp tale che (A(x)=0)

Temp
(0C).

COLD

COOL

PLEASANT

WARM

HOT

Y*

10

12.5

Y*

15

17.5

Y*

20

22.5

Y*

25

27.5

30

Y*

Esempi di insiemi Fuzzy


ugualmente:
where:
Y : temp tale che
(0<A(x)<1)
Y* : temp tale che
(A(x)=1)
N : temp tale che
(A(x)=0)

Rev/sec
(RPM)

MINIMAL

SLOW

MEDIUM

FAST

BLAST

Y*

10

20

30

Y*

40

50

Y*

60

70

Y*

80

90

100

Y*

Esempi di insiemi Fuzzy

Esempi di insiemi Fuzzy

Esempi
Se
A = {0.2/a, 0.4/b, 1/c, 0.8/d, 0/e}
B = {0/a, 0.9/b, 0.3/c, 0.2/d, 0.1/e}
calcolare:
- Supporto, Nucleo, Cardinalit, and Complemento
di A e B
- Unione e Intersezione
- linsieme C, con C = A2
- linsieme D, con D = 0.5B
-

Soluzioni
A = {0.2/a, 0.4/b, 1/c, 0.8/d, 0/e}
B = {0/a, 0.9/b, 0.3/c, 0.2/d, 0.1/e}
Supporto
Supp(A) = {a, b, c, d}
Supp(B) = {b, c, d, e}
Nucleo
Core(A) = {c}
Core(B) = {}
Cardinalita
Card(A) = 0.2 + 0.4 + 1 + 0.8 + 0 = 2.4
Card(B) = 0 + 0.9 + 0.3 + 0.2 + 0.1 = 1.5
Complemento
Comp(A) = {0.8/a, 0.6/b, 0/c, 0.2/d, 1/e}
Comp(B) = {1/a, 0.1/b, 0.7/c, 0.8/d, 0.9/e}

Soluzioni
A = {0.2/a, 0.4/b, 1/c, 0.8/d, 0/e}
B = {0/a, 0.9/b, 0.3/c, 0.2/d, 0.1/e}
Unione
AB = {0.2/a, 0.9/b, 1/c, 0.8/d, 0.1/e}
Intersezione
AB = {0/a, 0.4/b, 0.3/c, 0.2/d, 0/e}
C=A2
C = {0.04/a, 0.16/b, 1/c, 0.64/d, 0/e}

D = 0.5B
D = {0/a, 0.45/b, 0.15/c, 0.1/d, 0.05/e}

Inferenza Fuzzy

Il metodo pi usuale di inferenza il metodo


Mamdani (prof. Ebrahim Mamdani, 1975)

Si articola in 4 passi:
1.

Fuzzificazione dellingresso

2.

Inferenza (valutazione delle regole)

3.

Aggregazione (composizione) dei conseguenti

4.

Defuzzificazione.

Inferenza Fuzzy Mamdani


Esempio: problema con due ingressi-una uscita- tre regole:
Rule: 1
IF
x is A3
OR
y is B1
THEN z is C1

Rule: 1
IF
project_funding
OR
project_staffing
THEN risk

is adequate
is small
is low

Rule: 2
IF
x is A2
AND
y is B2
THEN z is C2

Rule: 2
IF
project_funding
AND
project_staffing
THEN risk

is marginal
is large
is normal

Rule: 3
IF
x is A1
THEN z is C3

Rule: 3
IF
project_funding
THEN risk

is inadequate
is high

Fuzzificazione

Primo passo: si prendono I due ingressi, x1 y1 (project funding e project


staffing), per determinare a quale grado appartengono agli insiemi fuzzy:

Crisp
Input
ingresso
x1
1
0.5
0.2
0

A1

A2
x1

(x = A1) = 0.5
(x = A2) = 0.2

Crisp
Input
ingresso
y1
1
0.7

A3
X

0.1
0

B1

B2

y1

(y = B1) = 0.1
(y = B2) = 0.7

Valutazione della regola

Secondo passo: si prendono gli ingressi fuzzificati, (x=A1) = 0.5,


(x=A2) = 0.2, (y=B1) = 0.1 and (y=B2) = 0.7, e si applicano agli
antecedenti.

Se una regola ha pi antecedenti, gli operatori fuzzy (AND or OR)


si usano per avere il risultato degli antecedenti.

Questo numero si applica alle funzioni di appartenenza dei


conseguenti.

Valutazione della regola


(cont.)
Operatore fuzzy unione OR:

AB(x) = max [A(x), B(x)]


Operatore fuzzy intersezione AND:

AB(x) = min [A(x), B(x)]

Valutazione della regola


(cont.)
1

A3

B1

0.1

0.0
0

x1

Rule 1: IF x is A3 (0.0)

OR

y1

y is B1 (0.1)

A2
0

x1

y1

Rule 2: IF x is A2 (0.2) AND y is B2 (0.7)


1

A1
x1

Rule 3: IF x is A1 (0.5)

z is C1 (0.1)

AND
(min)
Y

0.2

C1

C2

THEN

C3

THEN

z is C2 (0.2)
C2

C3
Z

1
0.5 C1

0.5

C2

B2
0

C1

THEN
0.7

0.2
X

OR
(max)

0.1

C3
Z

z is C3 (0.5)

Valutazione della regola


(cont.)

Ora il risultato della valutazione degli antecedenti


pu essere applicato alle funzioni di appartenenza
del conseguente.

Due metodi principali:

Clipping: si taglia in conseguente allivello di appartenenza


dellantecedente. Metodo semplice

Scaling

Aggregazione

il processo di unificazione dei conseguenti di tutte e


regole.

Si prendono le funzioni di appartenenza di tutte I


conseguenti e si combinano in un unico insieme fuzzy.

Lingresso del processo di aggregazione la lista delle


funzioni di appartenenza dei conseguenti, e luscita un
insieme fuzzy per ogni variabile duscita.

Aggregazione

C1

C2

0.5

C3

0.2

0.1
0

z is C 1 (0.1)

0.5
0.1

z is C 2 (0.2)

z is C 3 (0.5)

0.2
0

Defuzzificazione

Lingresso della defuzzificazione linsieme fuzzy


aggregato e luscita un singolo numero

Il pi popolare il metodo del cetroide (centro di


gravit). Matematicamente:
b

COG

A x x dx
a
b

A x dx
a

ovvero

Defuzzificazione

Il metodo calcola un punto che rappresenta il centro di


gravit dellinsieme fuzzy A sullintervallo ab.

Stima ragionevole:
(x)
1.0
0.8
A

0.6
0.4
0.2
0.0
150

a
160

b
170

180

190

200

X
210

Defuzzificazione
Degree of
Membership
1.0
0.8
0.6
0.4
0.2
0.0
0

10

20

30

40

50

60

70
67.4

COG

80

90

100
Z

(0 10 20) 0.1 (30 40 50 60) 0.2 (70 80 90 100) 0.5


67.4
0.1 0.1 0.1 0.2 0.2 0.2 0.2 0.5 0.5 0.5 0.5

Inferenza Fuzzy di Sugeno

Michio Sugeno ha suggerito di usare un singolo valore


(singleton) come funzione di appartenenza del
conseguente.

Un singleton un insieme fuzzy con una funzione di


appartenenza che unitaria in un particolare punto
dellunivero del discorso e zero altrimenti.

Valutazione delle regole di


Sugeno

Aggregazione di Sugeno

1
0.1
0

0.5

0.5

0.1
0

0.2
k1

z is k1 (0.1)

k2

z is k2 (0.2)

k3

z is k3 (0.5)

0.2
k1

k2

k3

Defuzzificazione di Sugeno
Weighted Average (WA)

WA

(k1) k1 (k 2) k 2 (k 3) k 3 0.1 20 0.2 50 0.5 80

65
(k1) (k 2) (k 3)
0.1 0.2 0.5

z1

Crisp Output
z1

Mamdani o Sugeno?

Mamdani viene generalmente usato per descrivere


la conoscenza. Ci consente di descrivere
lesperienza in modo intuitivo.

Sugeno efficiente e viene usato in problemi di


ottimizzazione o di controllo adattativo

Relazione tra logica fuzzy e


Reti Neurali

Relazione tra logica fuzzy e


Reti Neurali

ingressi

uscite

Strato nascosto

You might also like