Rozwiazania zadan z logiki rozmytej
Rozwiazania zadan z logiki rozmytej
Rozwiazania zadan z logiki rozmytej
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Zadanie 0 – gdy nie mamy <strong>logiki</strong> <strong>rozmytej</strong>…<br />
Wyobraźmy sobie, że chcemy oceniad czy dana temperatura świadczy o tym, że jest “gorąco” czy raczej „zimno”. A więc znając<br />
wartośd liczbową temperatury chcemy oceniad wartośd funkcji przynależności do klasy „gorąco”. Operując na własności <strong>logiki</strong><br />
klasycznej, która przypomnijmy pozwoli nam jedynie korzystad z dwóch wartości logicznych: prawdy (1) i fałszu (0), wartośd funkcji<br />
przynależności do klasy „GORĄCO” określilibyśmy następująco:<br />
Czyli jeśli temperatura w danym dniu wyniesie 49 stopni stwierdzimy, że „nieprawda, że jest gorąco”. Jeśli zaś będzie 50 stopni,<br />
powiemy, że jest „gorąco”. Niezbyt nam się podoba taka klasyfikacja zgodnie z którą jak jest 49 stopni to jeszcze gorąco nie jest, a<br />
jak już jest o 1 stopieo więcej zaledwie, a więc 50 stopni to już jest gorąco. Niestety takie ograniczenia stawia nam właśnie logika<br />
klasyczna. Aby było możliwe określanie bardziej „rozmyte” takich granic klasyfikacji, możemy użyd <strong>logiki</strong> <strong>rozmytej</strong>.<br />
W narzędziu typu Excel, Calc czy Gnumeric napisz formułę logiczną która wyznaczy wartośd przynależności dla podanej temperatury<br />
do zbioru „gorąco”.<br />
Rozwiązanie:<br />
Zadanie 1- gdy już mamy logikę rozmytą…<br />
Załóżmy, że mniej lub bardziej gorąco jest mniej więcej w przedziale od 20 do 100 stopni. A więc chcemy mówid, że zdecydowanie<br />
„jest gorąco” gdy temperatura jest większa niż 100stopni, zdecydowanie nie jest gorąco gdy temperatura jest mniejsza niż 20 stopni,<br />
zaś jeśli temperatura jest między 20 a 100 stopniami wartośd powinna byd odpowiednio proporcjonalna i w zakresie od 0 do 1.<br />
Zaproponujmy więc następującą definicję tzw. Funkcji przynależności do klasy „gorąco”:<br />
Funkcje przynależności<br />
Temperatura(°F) Stopieo „gorąca” Stopieo „zimna”<br />
20 0 1<br />
30 0.13 0.87<br />
40 0.25 0.75<br />
50 0.375 0.625<br />
60 0.5 0.5<br />
70 0.625 0.375<br />
80 0.75 0.25<br />
90 0.875 0.125<br />
100 1 0
Zatem dla temperatury np. 30 stopni:<br />
Stopieo przynależności do klasy “gorąco” wynosi wówczas: 0.13<br />
Stopieo przynależności do klasy „zimno” wynosi 0.87.<br />
Możemy też powiedzied, że po prostu gdy temperatura wynosi 30 stopni, w 13% jest gorąco a w 87% jest zimno.<br />
Dlaczego 0,13 <br />
Bo podstawiając wartośd “30” do wzoru:<br />
Która jak widad pasuje tylko do środkowego warunku: bo wartośd „30” jest między 20 a 100 stopni, zatem podstawiamy ją<br />
do wzoru:<br />
=10/80 = 1/8 = 0.125=0.13<br />
Proszę wyznaczyd wartośd funkcji przynależności do klasy “gorąco” dla temperatury: 20,35,40,50,60,70,80,90,100<br />
Rozwiązanie:<br />
Zadanie 2<br />
Dwa zbiory rozmyte reprezentują obraz samochodu i ciężarówki, i są zdefiniowane następująco:<br />
Znajdź:<br />
1. Car ∪ Truck<br />
3. not(Car)<br />
5. Car ∪ not(Car)<br />
2. Car Truck<br />
4. Car not(Truck)<br />
6. Car not(Car)
Rozwiązanie<br />
∪<br />
∪<br />
Zadanie 3<br />
Następująca funkcja rozmyta ma byd użyta do obliczania funkcji przynależności da zbioru osób zdrowych. „1” – zdrowy, „0” – nie<br />
zdrowy. Wartośd między 0 a 1 ma określad stopieo przynależności do klasy zdrowych. BMI z przedziału między 20 a 25 to przesłanka<br />
do tego by uznad kogoś za zdrowego. BMI większe niż 27 albo mniejsze niż 18 na pewno nie świadczy o stanie zdrowym. Wartości<br />
BMI bliskie zakresowi wartości dla osób zdrowych – a więc z od 20 do 25, to wartości z przedziału 0 a 1. Np. BMI = 19.6 to 0.8<br />
1. Narysuj graficznie reprezentację funkcji <strong>rozmytej</strong> health(x) – reprezentującą zarówno klasę „zdrowy” i „niezdrowy”.<br />
2. Jaki jest stopieo przynależności rozmytego zbioru dla osób zdrowych w przypadku Marka, którego BMI wynosi 26.2 A jaki jest<br />
stopieo jego przynależności do zbioru „niezdrowych” <br />
3. Oblicz swój własny BMI i określ jaki jest stopieo przynależności twojego BMI do klasy zdrowych <br />
Rozwiązanie:
Zadanie 4<br />
Wiedząc, że dane są następujące reprezentacje<br />
Przykład:<br />
wysoki mężczyzna=(0/180, 1/190)<br />
niski mężczyzna=(1/160, 0/170)<br />
średniego wzrostu mężczyzna=(0/165, 1/175, 0/185)<br />
Wyznacz:<br />
a) Dopełnienie zbioru:<br />
wysoki mężczyzna = (0/180, 0.25/182.5, 0.5/185, 0.75/187, 1/190)<br />
NOT wysoki mężczyzna =………………………………………….<br />
b) Iloczyn zbiorów:<br />
wysoki mężczyzna = (0/165, 0/175, 0/180, 0.25/182.5, 0.5/185, 1/190)<br />
średni mężczyzna = (0/165, 1/175, 0.5/180, 0.25/182.5, 0/185, 0/190)<br />
wysoki mężczyzna ∩ średni mężczyzna = …………………………………………….<br />
c) Zawieranie się zbiorów<br />
wysoki mężczyzna = (0/180, 0.25/182.5, 0.5/185, 0.75/187, 1/190)<br />
bardzo wysoki mężczyzna = ……………………………………………………………………<br />
d) Sumę zbiorów<br />
wysoki mężczyzna = (0/165, 0/175, 0/180, 0.25/182.5, 0.5/185, 1/190)<br />
średni mężczyzna = (0/165, 1/175, 0.5/180, 0.25/182.5, 0/185, 0/190)<br />
wysoki mężczyzna średni mężczyzna =…………………………………..<br />
Zadanie 5<br />
Nie dana będzie następująca interpretacja wzrostu danej osoby:<br />
<br />
<br />
Wyznacz graficznie funkcje przynależności do zbiorów:<br />
Small ∩Tall<br />
(Small ∪Medium)− Tall<br />
Rozwiązanie:
0,6<br />
0,5<br />
0,4<br />
0,3<br />
Small ∩ Tal<br />
0,2<br />
0,1<br />
0<br />
1 1,5 1,7 1,9 2<br />
wzrost<br />
1,2<br />
1<br />
0,8<br />
0,6<br />
(Small υ Medium)<br />
0,4<br />
0,2<br />
0<br />
1 1,5 1,7 1,9 2<br />
wzrost<br />
Zadanie 6<br />
Niech: A = 0.5/1 + 0.9/2 + 1/5, i B = 0.7/2 + 0.9/3 + 0.1/4.<br />
Oblicz A∪ B i A∩ B .<br />
Zadanie 7<br />
Załóżmy, że chcemy rozważad liczbę naturalną bliską wartości 9. Jeśli rozważymy następujący zbiór rozmyty A<br />
A=0.2/6+0.5/7+0.8/8+1/9+0.7/10+0.4/11 Odpowiedz na następujące pytania:<br />
• jaka będzie wysokośd zbioru rozmytego height(A)=<br />
• wskaż nośnik zbioru A: support(A)=,……………………………-<br />
• wskaż rdzeo zbioru A: core(A)=,…………………………………….-<br />
• wyznacz licznośd zbioru: card(A)=………………………<br />
Rozwiązanie:<br />
Nośnik (baza) zbioru rozmytego A *ozn. supp(A)+ to zbiór elementów dla których wartośd funkcji<br />
przynależności jest większa od zera:<br />
Jądro zbioru rozmytego A *ozn. core(A)+ to zbiór elementów, dla których wartośd funkcji<br />
przystosowania jest równa jeden:<br />
-przekrój zbioru rozmytego A to zbiór nierozmyty dla którego zachodzi:
wysokośd (ang. height) zbioru rozmytego A – czyli największa wartośd funkcji przynależności w obrębie<br />
tego zbioru:<br />
Zadanie 8<br />
Załóżmy, że systemowa baza wiedzy zawiera następujące reguły:<br />
RULE1: IF temperature is hot or warm, THEN the swimming pool is crowded.<br />
RULE2: IF temperature is cold, THEN the swimming pool is quiet.<br />
Funkcje przynależności dla poszczególnych zbiorów niech będą następujące:<br />
1. Co jest tutaj zmienną lingwistyczną a co wartością lingwistyczną <br />
2. Narysuj funkcje przynależności dla temperatury i zaludnienia basenu.<br />
3. Zakładając, że temperatura wynosi 21 stopni i że stosujemy regułę typu Mamdani, określ właściwą liczbę<br />
osób na basenie. W procesie wyostrzania zastosuj metodę środka ciężkości (centroidu).<br />
Rozwiązanie<br />
Odpowiednie wykresy wyglądad będą następująco:<br />
Dla temperatury:
0<br />
50<br />
100<br />
150<br />
200<br />
250<br />
300<br />
350<br />
400<br />
450<br />
500<br />
550<br />
600<br />
650<br />
700<br />
750<br />
800<br />
1,2<br />
1<br />
0,8<br />
0,6<br />
0,4<br />
0,2<br />
0<br />
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31<br />
mHot<br />
mWarm<br />
mCold<br />
Oraz dla liczby osób na basenie:<br />
1,2<br />
1<br />
0,8<br />
0,6<br />
0,4<br />
0,2<br />
0<br />
mCrowd<br />
mQuiet<br />
A więc dla temperatury 21 stopni powiemy, że na 60 % jest gorąco a na 40% cierpło. Na pewno nie jest zimno.<br />
Wtedy tylko reguła nr 1 zostanie uaktywniona.<br />
Ponieważ częśd przestankowa reguły nr 1 zawiera operator OR stosujemy funkcję Maksimum. Widzimy to w<br />
komórce B39 powyższego arkusza.<br />
Skoro rozmyta wartośd konkluzji tej reguły wyniesie 0.6 to możemy oszacowad wartośd zmiennej „liczba osób<br />
na basenie”. Wyniesie ona mniej więcej ok. 350 osób.<br />
Zadanie 9<br />
Załóżmy, że mamy system będący prostym kontrolerem stosującym błąd sygnału e i zmianę błędu sygnału de<br />
jako dane wejściowe i <strong>zadan</strong>e są 4 reguły w oparciu o które działa model rozmyty:<br />
RULE 1: IF e = P AND de = P THEN x = N<br />
RULE 2: IF e = P AND de = N THEN x = 0<br />
RULE 3: IF e = N AND de = P THEN x = 0<br />
RULE 4: IF e = N AND de = N THEN x = P
Załóżmy, że dane są dwa zbiory rozmyte jako wartości rozmytych zmiennych wejściowych e i de: P (positive) i<br />
N (negative). Rozmyta zmienna wyjściowa ma 3 wartości: P (positive), 0 (zero), N (negative) tak jak to<br />
pokazano na rysunku powyżej. Zakładając, że wejściowe zmienne mają następujące wartości funkcji<br />
przynależności w zbiorach wejściowych: μN(e) = 0.4; μP(e) = 0.6 i μN(de) = 0.2; i μP(de) = 0.8<br />
a) stosując wnioskowanie typu Mamdani wykaż, że całkowita wartośd rozmyta wyjściowego zbioru jest<br />
taka jak pokazano na poniższym rysunku (czerwona linia). Narysuj odpowiednie wykresy.<br />
b) Wyostrz wartośd wyjścia stosując metodę centroidu.<br />
c) Stosując metodę “zero‐order Sugeno” oblicz wartośd wyjścia. Narysuj graficznie.<br />
d) Porównaj rezultaty dla obu metod wnioskowania.<br />
Rozwiązanie punktu a:<br />
Najpierw należy napisad formuły logiczne do rozmycia pojęd {P,O,N}:<br />
Taka formuła dla zaznaczonej na czerwono komórki w kolumnie R w arkuszu powinna wyglądad następująco:<br />
Bierze się to po prostu z następujących funkcji do obliczania takich wartości:<br />
N<br />
0<br />
x 1<br />
<br />
( x)<br />
<br />
0. 5<br />
x<br />
<br />
<br />
0 0 . 5<br />
x 1<br />
1<br />
x 0.5<br />
0.5 x 0<br />
x 0<br />
0<br />
x 0. 5<br />
<br />
0(<br />
x)<br />
0.<br />
0 <br />
<br />
5.<br />
. 5<br />
x<br />
<br />
0 0 5<br />
x 0.5<br />
0.5 x 0<br />
0 x 0.5<br />
x 0.5<br />
P<br />
0<br />
x<br />
<br />
( x)<br />
1 0 <br />
. 5<br />
x<br />
<br />
<br />
0.<br />
0 5<br />
x 0<br />
0 x 0.5<br />
0.5 x 1<br />
x 1<br />
Odpowiednio narysowane dają wykres następujący:
1,2<br />
0,8 1<br />
0,6<br />
0,4<br />
0,2<br />
0<br />
-1 - -0,5 -<br />
0,75 0,25<br />
N O P<br />
0 0,25 0,5 0,75 1<br />
Teraz przechodzimy do bloku wnioskowania:<br />
Reguły w naszej bazie reguł są następujące:<br />
RULE 1: IF e = P AND de = P THEN x = N<br />
RULE 2: IF e = P AND de = N THEN x = 0<br />
RULE 3: IF e = N AND de = P THEN x = 0<br />
RULE 4: IF e = N AND de = N THEN x = P<br />
Obliczamy więc dla każdej reguły stopieo jej rozmycia na podstawie danych wejściowych (rozmytych):<br />
Dane wejściowe: µ N ( e ) = 0,4, µ P ( e ) = 0,6, µ P ( de ) = 0,8, µ N ( de ) = 0,2<br />
Reguła 1 ze stopniem rozmycia: min(0,6;0,8) = 0,6<br />
Reguła 2 ze stopniem rozmycia: min(0,6;0,2) = 0,2<br />
Reguła 3 ze stopniem rozmycia: min(0,4;0,8) = 0,4<br />
Reguła 4 ze stopniem rozmycia: min(0,4;0,2) = 0,2<br />
Tak więc zmienna x będąca konkluzją każdej reguły musi ulec wyostrzeniu. Przed tym jednak wszystkie reguły o tej samej<br />
wartości konkluzji muszą zostad poddane operacji połączenia.<br />
W naszym przypadku reguła 2 i 3 mają tę samą konkluzję: x=0. Zastosujemy to więc metodę Maksimum. Ostatecznie<br />
zmienna x, która jest konkluzją każdej reguły może mied następującą wartośd:<br />
N<br />
0.6<br />
<br />
x O<br />
max( 0.2;0.4) 0.4<br />
Co potwierdza wykres:<br />
<br />
P<br />
0.2<br />
Rozwiązanie dla punktu b:<br />
dla każdej decyzji (P,N,O) wybieramy średnią ważoną:<br />
dla P 0,5<br />
dla N -0,5<br />
0,5*0,6 0*0,4 0*0,2 0,5*0,2 0,2<br />
Wynik <br />
0,14<br />
dla O 0<br />
0,6 0,4 0,2 0,2<br />
1,4<br />
Wtedy metoda centroidu da wynik następujący:<br />
Rozwiązanie dla punktu c:<br />
dla każdej decyzji (P,N,O) wybieramy średnią ważoną:<br />
dla P 0,5<br />
dla N -0,5<br />
dla O 0<br />
Ustalamy też wagi dla każdej reguły osobno:<br />
wN 0,6<br />
wO (0,4+0,2)/2=0,3<br />
Wynik<br />
wP 0,2<br />
Wówczas wynik metodą Sugeno będzie następujący<br />
<br />
0,5*0,6 0*0,4 0,5*0,2<br />
<br />
0,6 0,3 0,2<br />
0,2<br />
0,18<br />
1,1
Zadania dodatkowe:<br />
Sprawozdanie z rozwiązaniem poniższych dwóch zadao będzie szansą na podwyższenie oceny z przedmiotu.<br />
Zadanie 10<br />
Załóżmy, że mamy dane cztery reguły:<br />
I że funkcje przynależności do poszczególnych klas dane są następująco:<br />
Wyznacz (korzystad z operatora implikacji Mamdani) ryzyko towarzystwa ubezpieczeniowego dla klienta<br />
(zaznaczając na wykresie obszar będący rezultatem wnioskowania) :<br />
a) Wiek = 35 I moc samochodu = 145 KM<br />
b) Wiek = 55 I moc samochodu = 145 KM<br />
c) Wiek = 35 I moc samochodu = 190 KM<br />
Zadanie 11<br />
Zaprojektuj system rozmyty typu Mamdani, który będzie oceniał prawdopodobieostwo spowodowania wypadku<br />
podczas jazdy samochodem.<br />
Zmienne wejściowe:<br />
• prędkośd jazdy (10 − 200km/h ): ,mała, średnio, szybko, bardzo szybko-<br />
• widocznośd (0.05 − 4km): ,bardzo słaba, średnia, dobra-<br />
Wyjście systemu:<br />
• Prawdopodobieostwo spowodowania wypadku (0 − 1): ,bardzo małe, małe, średnie, duże-<br />
Sporządź odpowiednie wykresy zmiennych dla podanych zmiennych lingwistycznych, podaj wzory proponowanych<br />
funkcji przynależności oraz przeprowadź wnioskowanie metodą Mandami. Wyostrz rezultat wnioskowania używając<br />
metody pierwszego maksimum.