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