Algorytmy operacji na zbiorach rozmytych

Transkrypt

Algorytmy operacji na zbiorach rozmytych
1
Bogumiła MROZEK
Laboratorium ZSI - Fuzzy 1
Algorytmy operacji na zbiorach rozmytych i logiki rozmytej
1. Wprowadzenie
Pobierz z Internetu http://neural.cs.nthu.edu.tw/jang/book/ pliki biblioteki Soft Toolbox i odszukaj
pliki tri_mf.m, trap_mf.m, gbell_mf.m, gauss_mf.m, disp_mf.m, fuzsetop.m,.
1.1 Podstawowe pojęcia i definicje z teorii zbiorów rozmytych
Zbiorem rozmytym A w pewnej (niepustej) przestrzeni X (co można zapisać A ⊆ X) nazywamy
zbiór par:
A = {( x, µ A ( x) ); x ∈ X }
(1.1.1)
gdzie: µA(x) : X→ [0,1] jest funkcją przynależności zbioru rozmytego A.
Funkcja µA(x) każdemu elementowi x ∈ X przypisuje jego stopień przynależności do zbioru rozmytego.
Zbiór elementów przestrzeni X, dla których µA(x)> 0 nazywamy nośnikiem zbioru rozmytego A
i oznaczamy.
S ( A) = Supp( A) = {µ A ( x) > 0; x ∈ A}, x ∈ X
(1.1.2)
Wysokość zbioru rozmytego A oznaczamy h(A) i określamy jako:
h( A) = height( A) = Sup( µ A ( x)), x ∈ X
(1.1.3)
Dopełnieniem (negacją) zbioru rozmytego A ⊆ X jest zbiór rozmyty A opisany funkcją
przynależności:
µ A ( x) = 1 − µ A ( x), ∀x ∈ X
(1.1.4)
Przecięciem zbiorów rozmytych A,B ⊆ X jest zbiór rozmyty A∩B o funkcji przynależności
najczęściej opisanej wzorem (1.1.5) .
µ A∩B ( x) = min(µ A ( x), µ B ( x) ), ∀x ∈ X
(1.1.5)
µ (x )
1
µ A (x)
µ B (x)
x
Rysunek 1. Przecięcie dwóch zbiorów rozmytych
Sumą zbiorów rozmytych A i B jest zbiór rozmyty A∪B określony funkcją przynależności:
µ A∪B ( x) = max(µ A ( x), µ B ( x) ), ∀x ∈ X
(1.1.6)
µ (x )
1
µ A (x)
µ B (x)
x
Rysunek 2. Suma dwóch zbiorów rozmytych
1
2
Przecięcie zbiorów rozmytych możemy zdefiniować ogólniej jako:
µA∩B = T(µA(x),µB(x))
gdzie: funkcja T jest tzw. T-normą; najczęściej
(1.1.7)
µ A∩B ( x) = min(µ A ( x), µ B ( x) ), ∀x ∈ X
Podobnie sumę zbiorów rozmytych definiujemy następująco:
µA∪B = S(µA(x),µB(x))
gdzie: funkcja S jest tzw. S-normą; najczęściej
(1.1.8)
µ A∪B ( x) = max(µ A ( x), µ B ( x) ), ∀x ∈ X
T-normy (podobnie S-normy) mogą być opisane różnymi wzorami:
(1.1.9)
Gr. A iloczyn (PROD) µA∩B = T(µA(x),µB(x))= µ A ( x) ⋅ µ B ( x)
Gr. B iloczyn Hamachera µA∩B = T(µA(x),µB(x))=
Gr. C iloczyn Einsteina µA∩B = T(µA(x),µB(x))=
µ A ( x) ⋅ µ B ( x)
µ A ( x) + µ B ( x) − µ A ( x) ⋅ µ B ( x)
µ A ( x) ⋅ µ B ( x)
2 − ( µ A ( x) + µ B ( x) − µ A ( x) ⋅ µ B ( x))
Gr. D ograniczona różnica µA∩B = T(µA(x),µB(x)) = MAX(0, µA(x) + µB(x) - 1)
Gr. E iloczyn drastyczny
MIN ( µ A ( x), µ B ( x))
µA∩B = T(µA(x),µB(x))= 
0

dla
MAX ( µ A ( x), µ B ( x)) = 1
poza tym
2. Implementacja algorytmów logiki rozmytej w MATLAB-ie
2.1 Funkcje przynależnosci
Zapoznaj się z M-plikami tri_mf.m, trap_mf.m, gbell_mf.m, gauss_mf.m, w których
zapisano często stosowane funkcje przynależności (kody tych plików podano poniżej). Zwróć uwagę
na sposób wywołania tych funkcji i zapoznaj się z umieszczonymi w nich komentarzami.
%............................................Jyh-Shing Roger Jang, 6-28-93.
function y = tri_mf(x, parameter)
% TRI_MF Triangular membership function with three parameters.
%
TRI_MF(x, [a, b, c]) returns a matrix y with the same size as x;
%
each element of y is a grade of membership.
a = parameter(1); b = parameter(2); c = parameter(3);
if a > b,
error('Illegal parameters: a > b');
elseif b > c,
error('Illegal parameters: b > c');
elseif a > c,
error('Illegal parameters: a > c');
end
y = max(min((x-a)/(b-a), (c-x)/(c-b)), 0);
____________________________________________________________________________________________________
function y = trap_mf(x, parameter)
% TRAP_MF Trapezoidal membership function with four parameters.
%
TRAP_MF(x, [a, b, c, d]) returns a matrix y with the same size as x;
%
each element of y is a grade of membership.
a = parameter(1); b = parameter(2); c = parameter(3); d = parameter(4);
if a > b,
error('Illegal parameters: a > b');
elseif b > c,
error('Illegal parameters: b > c');
elseif c > d,
error('Illegal parameters: c > d');
end
y = max(min(min((x-a)/(b-a), (d-x)/(d-c)), 1), 0);
____________________________________________________________________________________________________
2
3
function y = gbell_mf(x, parameter)
% GBELL_MF Generalized bell-shaped membership function with three parameters.
%
GBELL_MF(x, [a, b, c]) returns a matrix y with the same size as x;
%
each element of y is a grade of membership.
a = parameter(1); b = parameter(2); c = parameter(3);
y = 1./(1+(((x - c)/a).^2).^b);
___________________________________________________________________________________
function y = gauss_mf(x, parameter)
% GAUSS_MF Gaussian membership function with two parameters.
%
GAUSSIAN(x, [sigma, c]) returns a matrix y with the same size as x;
%
each element of y is a grade of membership.
c = parameter(1);
sigma = parameter(2);
tmp = (x - c)/sigma;
y = exp(-tmp.*tmp/2);
Wykresy funkcji przynależności zapisane w plikach powyżej można zobaczyć uruchamiając M-plik
disp_mf.m (rysunek 3).
Membership Grades
1
0.5
0
0
20 40 60 80 100
(c) Gaussian MF
1
0.5
0
(b) Trapezoidal MF
Membership Grades
Membership Grades
Membership Grades
(a) Triangular MF
0
Rysunek 3.
20
40
60
80 100
1
0.5
0
0
20 40 60 80 100
(d) Generalized Bell MF
1
0.5
0
0
20
40
60
80 100
Wykresy funkcji przynależności z M-pliku disp_mf.m
Sprawdź (poprzez modyfikację pliku disp_mf.m), jaki wpływ na kształt funkcji przynależności
mają ich parametry.
2.2 Operacje na zbiorach rozmytych
Zapoznaj się z M-plikiem fuzsetop.m, który ilustruje podstawowe operacje na zbiorach rozmytych.
Opisz jakie to są operacje i algorytmy, które je realizują. Wykonaj te operacje dla innych funkcji
przynależności (poprzez modyfikację pliku fuzsetop.m).
2.3 Biblioteka Fuzzy Logic Toolbox
Zapoznaj się z funkcjami przynależności dostępnymi w bibliotece Fuzzy Logic Toolbox – polecenie
mfdemo. Zobacz algorytmy rozmytych operacji arytmetycznych zaimplementowanych w funkcji
fuzarith (zobacz też polecenia help fuzarith, doc fuzarith, edit fuzarith).
Zobacz przykłady zastosowań logiki rozmytej w zagadnieniach sterowania:
>> sltbu - zadanie parkowania ciężarówki
>> slcp - zadanie utrzymania w pionie odwróconego wahadła.
Zapoznaj się z demo pod adresem http://www.mathworks.com/products/fuzzylogic/demos.html
Udostępniono tam 3 video dotyczące obsługi interfejsu dla Fuzzy Logic Toolbox, który otwiera się
poleceniem fuzzy .
3
4
Do sprawozdania z laboratorium Fuzzy
Dla dwóch zbiorów rozmytych A i B opisanych funkcjami przynależności :
Gr. A Zbiór A - funkcja trójkątna, zbiór B – funkcja trapezowa
Gr. B Zbiór A - funkcja trójkątna, zbiór B – funkcja Gaussa
Gr. C Zbiór A - funkcja trójkątna, zbiór B – funkcja dzwonowa (ang. Bell)
Gr. D Zbiór A – funkcja trapezowa, zbiór B – funkcja Gaussa
Gr. E Zbiór A – funkcja trapezowa, zbiór B – funkcja dzwonowa (ang. Bell)
Dla zbiorów rozmytych A i B opisanych funkcjami przynależności (dla poszczególnych grup jak
powyżej) i parametrach jak w pliku disp_mf.m :
• Wykonaj wykresy (zobacz plik fuzsetop.m) funkcji przynależności zbiorów rozmytych dla:
1. przecięcia A ∩ B , według wzoru (1.1.5)
2. sumy A ∪ B , według wzoru (1.1.6)
3. dopełnienia (negacji) B , według wzoru (1.1.4)
Zaznacz na rysunkach i podaj wartość nośnika i wysokości każdego zbioru rozmytego.
• Oblicz i podaj w tabelce wartości funkcji przynależności określonych powyżej,
dla x=[20 40 60 80]
x
20
40
60
80
A∩ B
A∪ B
B
•
Dla zbiorów rozmytych A i B (określonych funkcjami przynależności jak powyżej). Wykonaj
rysunek (zobacz plik fuzsetop.m) funkcji przynależności zbioru rozmytego opisującego
przecięcie A ∩ B i T-normy opisanej wybranym wzorem z (1.1.9).
4

Podobne dokumenty