27.01.2015 Views

Rozwiazania zadan z logiki rozmytej

Rozwiazania zadan z logiki rozmytej

Rozwiazania zadan z logiki rozmytej

SHOW MORE
SHOW LESS

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.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!