ĆWICZENIE 2 RELACJE ROZMYTE 0. Wprowadzenie Relacją rozmytą R jest zbiór rozmyty w przestrzeni : 5!1 �...�5!n zdefiniowany następująco: R5! �...�5!n (x1, x2,..., xn) = {((x1, x2,..., xn), �R(x1, x2,..., xn))}, 1 (x1, x2,..., xn)"5!1 �...�5!n Przykład 2.1 Niech 5!1 = {x1, x2, x3} i 5!2 = {y1, y2, y3, y4}. Tabelka poni\sza przedstawia pewną dwuwymiarową relację. R y1 y2 y3 y4 0.1 0 0.2 0 x1 0.3 0 0 0.9 x2 0.4 0.7 1 1 x3 Inaczej mo\na zapisać: R = {((x1, y1),0.1),((x1, y2),0),...,((x3, y4),1)} Matlab: Relacje rozmyte będziemy zapisywać w postaci macierzy: R=[0.1 0 0.2 0; 0.3 0 0 0.9; 0.4 0.7 1 1] R = 0.1000 0 0.2000 0 0.3000 0 0 0.9000 0.4000 0.7000 1.0000 1.0000 Rzutowanie relacji. Funkcja przynale\ności (1) �R (x) = (" �R(x, y) y definiuje pierwsze rzutowanie relacji R . Podobnie funkcja przynale\ności ( �R2)(y) = (" �R(x, y) x definiuje drugie rzutowanie relacji R . Drugie rzutowanie pierwszego rzutowania (lub vice versa) będzie nazywane rzutowaniem globalnym i oznaczane h(R). Zatem h(R) = (" (" �R(x, y) = (" (" �R(x, y) x y y x Je\eli h(R) = 1, to mówimy, \e relacja jest normalna. PRz, KIiA, Sztuczna inteligencja, Laboratorium, Ćw2 Relacje rozmyte, Roman Zajdel 1 Przykład 2.2 (1) R y1 y2 y3 y4 �R 0.1 0 0.2 0 0.2 x1 0.3 0 0 0.9 0.9 x2 0.4 0.7 1 1 1 x3 ( 0.4 0.7 1 1 1 �R2) h(R) Pierwsze rzutowanie: (1) �R (x1) = (" �R(x1, y) = max[0.1,0,0.2,0]= 0.2 y (1) �R (x2) = (" �R(x2, y) = max[0.3,0,0,0.9]= 0.9 y (1) �R (x3) = (" �R(x3, y) = max[0.4,0.7,1,1]= 1 y Podobnie liczymy drugie rzutowanie. Widać, \e relacja jest normalna. Matlab: [P1, P2, h]=proj(R) P1 = 0.2000 0.9000 1.0000 P2 = 0.4000 0.7000 1.0000 1.0000 h = 1 Niech R i L będą relacjami rozmytymi z funkcjami przynale\ności odpowiednio �R i �L . Nośnikiem relacji rozmytej R (supp R ) jest zbiór ostry par uporządkowanych (x, y), dla których �R(x, y) > 0 . 1 2 3 4 �ł łł �ł5 śł Matlab: Aby wyznaczyć nośnik relacji R zostanie zdefiniowana macierz X = 6 7 8 indeksująca �ł śł �ł śł �ł9 10 11 12�ł elementy relacji. X=[1:4;5:8;9:12]; supp(X,R) ans = 1 5 9 10 3 11 8 12 PRz, KIiA, Sztuczna inteligencja, Laboratorium, Ćw2 Relacje rozmyte, Roman Zajdel 2 czyli suppR = {(x1, y1),(x1, y3),(x2, y1),(x2, y4),(x3, y1),(x3, y2),(x3, y3),(x3, y4)}. Inkluzja relacji. Mówimy, \e relacja R zawiera się w relacji L, je\eli zachodzi: �R(x, y)d" �L(x, y) "(x, y)"5!1 �5!2 Przykład 2.3. Matlab: R=[.3 .4 .2 0; .5 0 1 .9; .4 0 .1 .8] R = 0.3000 0.4000 0.2000 0 0.5000 0 1.0000 0.9000 0.4000 0 0.1000 0.8000 L=[.4 .4 .2 0; .5 0 1 1; .5 .1 .2 .9] L = 0.4000 0.4000 0.2000 0 0.5000 0 1.0000 1.0000 0.5000 0.1000 0.2000 0.9000 incl(R,L) ans = 1 Suma relacji R i L jest relacją oznaczaną jako R *" L o funkcji przynale\ności danej zale\nością: �R*"L = �R (x, y) (" �L (x, y) Matlab: or(R,L) Przecięcie relacji R i L jest relacją oznaczaną jako R )" L o funkcji przynale\ności danej zale\nością: �R)"L = �R (x, y) '" �L (x, y) Matlab: and(R,L) Dopełnieniem relacji R jest relacja R o funkcji przynale\ności danej zale\nością: �R = 1- �R (x, y) "(x, y)"5!1 �5!2 Matlab: not(R) Suma wyłączająca relacji R i L jest relacją oznaczaną R �" L daną zale\nością: R �" L = (R )" L) *" (R )" L) Iloczyn algebraiczny relacji R i L jest relacją oznaczaną jako R �" L o funkcji przynale\ności danej zale\nością: �R�"L = �R (x, y) �" �L (x, y) Matlab: aprod(R,L) Suma algebraiczna relacji R i L jest relacją oznaczaną jako R + L o funkcji przynale\ności danej zale\nością: �R+L = �R (x, y) + �L (x, y) - �R (x, y) �" �L (x, y) Matlab: asum(R,L) PRz, KIiA, Sztuczna inteligencja, Laboratorium, Ćw2 Relacje rozmyte, Roman Zajdel 3 Relacja zwykła najbli\sza relacji rozmytej R jest relacja R o funkcji przynale\ności danej zale\nością: 0 dla �R (x, y) < 0.5 ńł �ł �R (x, y) = dla �R (x, y) > 0.5 �ł1 �ł0 lub 1 dla �R (x, y) = 0.5 ół ą-obcięcie relacji rozmytej jest zwykłą relacją daną zale\nością: ą ą ą Rą = {(x, y)�R(x, y)e" ą} Niech R1 �" X �Y i R2 �" Y � Z . Zło\enie typu max min relacji R1 i R2 jest relacją oznaczaną jako R2 żR1 , której wartości funkcji przynale\ności określa się następująco: �R żR2 = ("[�R (x, y) '" �R ( y, z)], 1 1 2 y gdzie x " X , y "Y , z " Z . Przykład 2.4. R1 y1 y2 y3 0.1 0.2 0 x1 0.3 0.5 0 x2 R2 z1 z2 0.9 0 y1 0.2 1 y2 0.8 0 y3 Wyznaczmy element (x1, z1) min(�R (x1y1), �R (y1, z1))= min(0.1,0.9) = 0.1 1 2 min(�R (x1y2), �R (y2, z1))= min(0.2,0.2) = 0.2 1 2 min(�R (x1y3), �R (y3, z1))= min(0,0.8) = 0 1 2 max[min(�R (x1yi ), �R (yi , z1))]= max(0.1,0.2,0) = 0.2 1 2 yi Ostatecznie: R2 żR1 z1 z2 0.2 0.2 x1 0.3 0.5 x2 Matlab: R1=[.1 .2 0; .3 .5 0]; R2=[.9 0; .2 1; .8 0]; R=supmin(R1,R2) R = 0.2000 0.2000 0.3000 0.5000 PRz, KIiA, Sztuczna inteligencja, Laboratorium, Ćw2 Relacje rozmyte, Roman Zajdel 4 Zło\enie typu max iloczyn relacji R1 i R2 dane jest zale\nością: �R żR2 = ("[�R (x, y) �" �R ( y, z)] , 1 1 2 y gdzie x " X , y "Y , z " Z . Matlab: R=supprod(R1,R2) Niech X " X i Y " Y . Rozwa\my relację rozmytą R istniejącą pomiędzy X i Y . Mo\na zdefiniować indukcję zbioru rozmytego A' poprzez relację R następująco: je\eli X = A' , to Y = B' poprzez R . Lub inaczej: A' * B' R gdzie symbol * mo\na interpretować jako indukcję (implikację). Je\eli �R(x, y) jest funkcją przynale\ności relacji R i � (x, y) jest funkcją przynale\ności dla zbioru A' , to funkcja przynale\ności �B'(y) dla zbioru B' A' dana jest zale\nością: �B'(y) = (" [�A'(x)'" �R(x, y)] x"X Przykład 2.5. X = {x1, x2, x3} A'= {(x1,0.3),(x2,0.7),(x3,1)} Y = {y1, y2, y3, y4} Wówczas: A' R y1 y2 y3 y4 0.1 0 0.2 0 0.3 x1 0.3 0 0 0.9 0.7 x2 0.4 0.7 1 1 1 x3 0.4 0.7 1 1 B' Przeprowadzmy obliczenia dla kolumny y1 A' y1 0.3 0.1 0.1 0.7 '" 0.3 = 0.3 1 0.4 0.4 Stosując następnie operację maksimum otrzymujemy: 0.1(" 0.3 (" 0.4 = 0.4 Zatem �B'(y1) = 0.4 Matlab: R=[.1 0 .2 0; .3 0 0 .9; .4 .7 1 1]; Ap=[.3 .7 1]; Bp=supt(Ap,R) Bp = 0.4000 0.7000 1.0000 1.0000 PRz, KIiA, Sztuczna inteligencja, Laboratorium, Ćw2 Relacje rozmyte, Roman Zajdel 5 t-norma jest uogólnieniem klasycznej koniunkcji, natomiast s-norma (konorma) jest uogólnieniem alternatywy. Przykłady najczęściej stosowanych t-norm i s-norm przedstawiono w poni\szej tabeli: Tabela 1. t - norma s- norma a '" b dla a (" b = 1 a (" b dla a '" b = 0 ńł ńł a Tob = a b = �ł0 dla a (" b `" 1 �ł1 dla a '" b `" 0 4%o ół ół a T1 b = 0 (" (a + b -1) a b = 1'" (a + b) 4%1 a T2 b = ab a b = a + b - ab 4%2 a Tminb = a '" b a b = a (" b 4%max Matlab: C= tnorm(A,B,'t0'); D= snorm(A,B,'s0'); plot(X,A,'b',X,B,'g',X,C,'r',X,D,'y') 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0 5 10 15 20 25 30 35 40 PRz, KIiA, Sztuczna inteligencja, Laboratorium, Ćw2 Relacje rozmyte, Roman Zajdel 6 CEL ĆWICZENIA Celem ćwiczenia jest zapoznanie się z relacjami i implikacjami rozmytymi oraz systemem wnioskowania rozmytego przy pomocy Fuzzy Logic Toolbox a p. Krzysztofa Wiktorowicza. SZCZEGÓAOWY PRZEBIEG ĆWICZENIA I. Pojęcie relacji rozmytej: definicja, rzutowanie. II. Działania logiczne na relacjach rozmytych. Dane są relacje: Gr. 1 R L y1 y2 y3 y4 y1 y2 y3 y4 0,3 0,2 1 0 0,3 0 0,7 0 x1 x1 0,8 1 0 0,2 0,1 0,8 1 1 x2 x2 0,5 0 0,4 0 0,6 0,9 0,3 0,2 x3 x3 Gr. 2 R L y1 y2 y3 y4 y1 y2 y3 y4 0,3 0,2 1 0 0,3 0 0,7 0 x1 x1 0,8 1 0 0,5 0,1 0,8 1 1 x2 x2 0,5 0 0,4 0,2 0,6 0,9 0,3 0 x3 x3 Gr. 3 R L y1 y2 y3 y4 y1 y2 y3 y4 0,3 0 1 0 0,3 0,2 0,7 0 x1 x1 0,8 1 0 0,2 0,1 0,8 1 1 x2 x2 0,5 0 0,4 0 0,6 0,9 0,3 0,2 x3 x3 PRz, KIiA, Sztuczna inteligencja, Laboratorium, Ćw2 Relacje rozmyte, Roman Zajdel 7 Gr. 4 R L y1 y2 y3 y4 y1 y2 y3 y4 0,3 0,2 1 0 0,3 0 0,7 0 x1 x1 0,8 1 0 0,2 0,1 0,8 0 0 x2 x2 0,5 0 0,4 0 0,6 0,9 0,3 0,2 x3 x3 Gr. 5 R L y1 y2 y3 y4 y1 y2 y3 y4 0,3 0,2 0,6 0 0,3 0 0,7 0 x1 x1 0,8 1 0 0,2 0,1 0,8 1 1 x2 x2 0,5 0 0,4 0 0,6 0,9 0,5 0,2 x3 x3 Wyznaczyć ich: nośnik relacji R (supp), inkluzję (incl), sumę (or), przecięcie (and), dopełnienie relacji R (not), sumę wyłączającą (exor). W sprawozdaniu podać odpowiednie definicje. III. Działania algebraiczne na relacjach rozmytych 1. Dla relacji z p. II wyznaczy sumę (asum) i iloczyn algebraiczny (aprod) relacji. 2. Dla relacji p. II wyznaczy relację zwykłą najbli\szą relacji rozmytej (nset), oraz ą -obcięcie na poziomie 0.3 i 0.7. IV. Składanie relacji. Wyznaczyć zło\enie relacji typu max-min (supmin) i max-iloczyn (supprod) dla następujących relacji: Gr. 1 R1 y1 y2 y3 y4 y5 R2 z1 z2 z3 z4 0,1 0,2 0 1 0,7 0,9 0 0,3 0,4 x1 y1 0,3 0,5 0 0,2 0,1 0,2 1 0,8 0 x2 y2 0,8 0 1 0,4 0,3 0,8 0 0,7 1 x3 y3 0,4 0,2 0,3 0 y4 0 1 0 0,8 y5 PRz, KIiA, Sztuczna inteligencja, Laboratorium, Ćw2 Relacje rozmyte, Roman Zajdel 8 Gr. 2 R1 y1 y2 y3 y4 y5 R2 z1 z2 z3 z4 0,1 0,2 0 1 0,7 0,9 0 0,3 0,4 x1 y1 0,3 0,7 0 0,2 0,1 0,2 1 0,8 0 x2 y2 0,8 0 1 0,4 0,3 0,2 0 0,7 1 x3 y3 0,4 0,2 0,3 0 y4 0 1 0 0,3 y5 Gr. 3 R1 y1 y2 y3 y4 y5 R2 z1 z2 z3 z4 0,1 0,2 0 1 0,7 0,9 0 0,3 0,7 x1 y1 0,9 0,5 0 0,2 0,1 0,2 1 0,8 0 x2 y2 0,8 0 1 0,4 0,3 0,8 0,1 0,7 1 x3 y3 0,4 0,2 0,3 0 y4 0 1 0 0,8 y5 Gr. 4 R1 y1 y2 y3 y4 y5 R2 z1 z2 z3 z4 0,1 0,2 0 1 0,7 0,9 0 0,3 0,4 x1 y1 0,8 0,5 0 0,2 0,1 0,2 0,1 0,8 0 x2 y2 0,3 0 1 0,4 0,3 0,3 0 0,7 1 x3 y3 0,4 0,2 0,3 0 y4 0 1 0 0,8 y5 Gr. 5 R1 y1 y2 y3 y4 y5 R2 z1 z2 z3 z4 0,1 0,2 0 1 0,7 0,9 0.3 0,3 0,4 x1 y1 0,3 0,5 0 0,8 0,1 0,2 1 0,8 0 x2 y2 0,8 0 1 0,4 0,3 0,8 0 0,7 1 x3 y3 0,4 0,2 0,3 0 y4 0 0,1 0 0,8 y5 PRz, KIiA, Sztuczna inteligencja, Laboratorium, Ćw2 Relacje rozmyte, Roman Zajdel 9 V. Indukcja zbioru rozmytego. Wyznaczyć przy pomocy odpowiednich funkcji MATLAB a zbiór B wnioskowany ze zbioru: Gr. 1. A =[0,3 0,7 0,1] Gr. 2. A =[0,2 0,1 0,3] Gr. 3. A =[0,1 0,1 0,3] Gr. 4. A =[0,2 0,1 0,2] Gr. 5. A =[0,3 0,1 0,1] poprzez zło\enie relacji R1oR2 z p. IV. Przyjąć, \e wnioskowanie jest typu max-min (supt). VI. Normy trójkątne i konormy. Dane są zbiory AA i BB zadane w sposób określony w ćw. 1. Sporządzić wykresy t-norm T0 - Tmin (tnorm) i s-norm Ą"0 - Ą"min (snorm) zdefiniowanych w tab. 1. SPRAWOZDANIE Z ĆWICZENIA Opisać szczegółowo poszczególne punkty ćwiczenia wraz z krótkim uzasadnieniem teoretycznym. PRz, KIiA, Sztuczna inteligencja, Laboratorium, Ćw2 Relacje rozmyte, Roman Zajdel 10