Podstawy Sztucznej Inteligencji- PROJEKT-Logika rozmyta Rok akademicki 2014/2015 |
---|
Imię i nazwisko : Adamski Damian Bosak Katarzyna |
Grupa ćwiczeniowa: I III rok Informatyka Stosowana |
Wstęp teoretyczny
Logika rozmyta opiera się na pojęciu zbioru rozmytego. Zbiór rozmyty różni się od klasycznego zbioru logiki dwuwartościowej tym, że nie ma ostrej, dobrze określonej granicy. W przypadku klasycznego zbioru A element x całkowicie należy do A (przynależność równa 1) albo całkowicie jest z A wyłączny (przynależność równa 0), czyli należy do zbioru nie-A (jest to tzw. zasada wyłączonego środka). W przypadku zbioru rozmytego przynależność elementu może być częściowa i przybierać dowolną wartość z przedziału [0,1]. Wartość ta jest określona przez tzw. funkcję przynależności (membership function). W przypadku pojęć nieostrych i nieprecyzyjnych logika rozmyta jest naturalnym sposobem opisu. O konkretnym kształcie i położeniu funkcji przynależności decyduje "wiedza eksperta", którym może być doświadczony operator albo np. sieć neuronowa uczona danymi doświadczalnymi z procesu. Poziomy przynależności do zbiorów rozmytych różne od 0 (false) lub 1 (true) wymagają rozszerzenia definicji operacji logicznych. I tak najprostszym rozszerzeniem operacji iloczynu logicznego A AND B, gdzie A,B c [0,1] są poziomami przynależności, jest zastosowanie funkcji min(A,B) wybierającej mniejszą z wartości funkcji przynależności do A i B, dla operacji sumy A OR B można zastosować funkcję max(A,B), a dla negacji NOT A funkcję 1-A. Tworzy się w ten sposób tablice prawdy logiki rozmytej. W ogólności, funkcje dla operatorów logiki rozmytej można wybierać w sposób bardzo dowolny przy zachowaniu ogólnych zasad, w szczególności zgodności z logiką klasyczną dla wartości 0
i 1. Alternatywą dla funkcji AND jest często iloczyn prod(A,B), a dla funkcji OR suma
probabilistyczna probor(A,B)=A+B-A*B.
Zbiory i operatory rozmyte pełnią funkcje odpowiednio podmiotu i orzeczenia zdań logiki rozmytej. Do konstruowania algorytmów rozmytych wykorzystuje się zdania warunkowe typu if-then. W
najprostszym przypadku ma ono formę if x is A then y is B, gdzie A i B są wartościami lingwstycznymi
określonymi przez zbiory rozmyte na przestrzeniach X i Y, z których pochodzą elementy x i y. Zdanie
po if nazywa się przesłanką, a zdanie po then - następstwem lub konkluzją.
Projekt wykonany został w programie MATLAB
Poleceniem >>fuzzy uruchamiamy graficzny edytor FIS (Fuzzy Logic Toolbox ).
Projekt polega na zaprojektowaniu sterownika rozmytego temperatury w chłodni.
Rys.1 Schemat chłodni, do której projektujemy sterownik temperatury
Zakładamy, że optymalna temperatura chłodni mieści się w granicach od -20 do -16 oC ; niższa temperatura jest za niska. Wyższa temperatura, w zależności od temperatury zewnętrznej, powinna być regulowana przez sterownik.
Reprezentacja zmiennych lingwistycznych w postaci zbiorów rozmytych.
INPUT-Temperatura wewnątrz chłodni:
Przedział od -25 oC do 5 oC, wykresy typu: trapmf
1. zbyt niska: [-25 -24 -21 -18]
2. optymalna: [-20 -18 -16 -16]
3. niska: [-17 -14 -11 -10]
4. podwyższona: [-12 -10 -7 -5]
5. wysoka: [-6 -1 1 2]
6. zbyt wysoka: [0 2 5 5]
INPUT-Temperatura na zewnątrz chłodni :
Przedział od -20 oC do 30 oC, wykresy typu: trapmf
1. mróz: [-20 -20 -13 -10]
2. bardzo zimno: [-11 -9 -5 -3]
3. zimno: [-5 -3 1 5]
4. chłodno: [3 6 11 12]
5. ciepło: [10 15 18 19]
6. bardzo ciepło: [18 22 30 30]
OUTPUT- Ustawienia czujnika
Przedział od 0 do 3, wykresy typu: trimf
1.wyłącz:[-1 0 0.75]
2.słabe chłodzenie:[0 0.75 1.5]
3.chłodzenie:[0.75 1.5 2.25]
4.mocne chłodzenie:[1.5 2.25 3]
Reguły rozmyte
Reguły rozmyte tworzyliśmy za pomocą narzędzia Edit->Rule Rule Editor:
Zostały one zapisane według poniższej tabeli. Zawarte w niej są kombinacje kiedy czujnik powinien wyłączyć chłodzenie(np. gdy jest mróz na zewnątrz, a wewnątrz jest zbyt niska temperatura), włączyć słabe chłodzenie(np. gdy na zewnątrz jest chłodno a temperatura w chłodni jest optymalna), włączyć chłodzenie(np. gdy na zewnątrz jest zimno a temperatura w chłodni jest podwyższona) lub włączyć mocne chłodzenie(np. gdy na zewnątrz jest chłodno a temperatura wewnątrz chłodni jest zbyt wysoka).
temp na zewnątrz chłodni | ||
---|---|---|
mróz | ||
temp wewnątrz chłodni | zbyt niska | wyłącz |
optymalna | wyłącz | |
niska | wyłącz | |
podwyższona | wyłącz | |
wysoka | słabe chłodzenie | |
zbyt wysoka | chłodzenie |
Wnioskowanie rozmyte
Przeprowadzane za pomocą narzędzia View->Rules Rule Viewer
Jest to narzędzie, które nam wizualizuje poszczególne reguły. Pierwsza i druga kolumna to reguły dotyczące danych wejściowych. Trzecia kolumna(niebieskie wykresy), ilustruje dane wyjściowe. W naszym przypadku, reguły opierają się na zasadzie logicznej AND, więc wykres niebieski pojawia się tylko wtedy, gdy zarówno pierwsza jak i druga dana wejściowa spełnia jakąś zależność. Na powyższym wykresie jest to zależność: temperatura_wewnątz=-10 AND temperatura_na_zewnątrz=5 chlodnia =1.5
-10 mieści się w przedziale PODWYŻSZONA, 5 zawiera się w przedziale CHŁODNO;
Chlodnia = 1,5 to tryb chłodzenia
Tak więc te warunki spełnia reguła 22:
IF( temperatura_wewnatrz is PODWYŻSZONA) and (temperatura_na zewnatrz is CHLODNO) then (chlodnia is CHLODZENIE)
W tym przypadku temperatura_wewnątrz=-24.8(zakres temperatur: zbyt zimno), temperatura_na_zewnatrz=5(zakres temperatur: chłodno), chlodnia=0.75(zakres działania chłodni: wyłącz)
Niebieski wykres widnieje tylko w wierszu 19, ilustrującym regułę 19:
If (temperatura_wewnatrz is ZBYT ZIMNO) and (temperatura_na_zewnatrz is CHLODNO)then(chlodnia is WYLACZ)
Dane wejściowe:
temperatura_wewnątrz= 4.16(zbyt wysoka)
temperatura_na_zewnatrz=9.56 (chłodno)
Dane wyjściowe:
Chlodnia=2.25(mocne chłodzenie)
Niebieski wykres przy regule 24:
If(temperatura_wewnatrz is ZBYT_WYSOKA)and(temperatura_na_zewnatr is CHLODNO)then (chlodnia is MOCNE_CHLODZENIE)
W ostatnim przykładzie, dane wejściowe to :
Temperatura_wewnątrz=-13.8(niska)
Temperatura_na_zewnatrz=-7.71(bardzo_zimno)
Dane wyjściowe:
Chłodnia=0.75(slabe_chlodzenie)
Wykres niebieski przy regule nr 9:
If(temperatura_wewnatrz is NISKA) and(temperatura_na_zewnatrz is BARDZO_ZIMNO)then(chlodnia is SLABE_CHLODZENIE)
Wizualizacje zależności wybranych parametrów
View->Surface: Surface Viewer
Za pomocą tego narzędzia otrzymujemy wizualizację zależności poszczególnych parametrów danych wejściowych i wyjściowych.
Zależność wartości systemu chłodnia od temperatury wewnątrz
Widzimy, iż im wyższa temperatura wewnątrz chłodni, tym większa wartość wskazywana przez czujnik. Wynika to z tego, że wyższe wskazania czujnika, to większa wartość chłodzenia
Zależność temperatury chłodzenia od temperatury na zewnątrz
Jak w poprzednim przypadku, możemy zaobserwować wzrost wartości czujnika chłodzenia wraz ze wzrostem temperatury.
Zależność wartości czujnika chłodzenia od temperatury wewnątrz chłodni i na zewnątrz chłodni
Im wyższa wartość temperatury na zewnątrz i wewnątrz, tym wyższe wskazanie czujnika temperatury chłodni.
Im niższa temperatura na zewnątrz i wewnątrz, tym niższe wskazanie czujnika.