Inżynieria wiedzy projekt

Inżynieria wiedzy

Logika rozmyta jako forma reprezentacji wiedzy

W systemach sterowania lub podejmowania decyzji

Zespół:

Katarzyna Bosak

Identyfikator przedmiotu:

IW-IS—2015/2016

Opis problemu, który ma być rozwiązany z wykorzystaniem systemowej reprezentacji wiedzy z wykorzystaniem logiki rozmytej

W lasach, zwłaszcza w okresie letnim, bardzo często dochodzi do pożarów. W tym sprawozdaniu postanowiłam rozpatrzeć problem sterowania urządzeniem informującym o ryzyku wystąpienia pożaru. System posiada dwa czujniki: jeden mierzy temperaturę zewnętrzną, drugi sprawdza procent wilgotności ściółki leśnej. Dane z czujnika są przekazywane do sterownika systemu, który zwraca odpowiedni komunikat. W przypadku ryzyka wystąpienia pożaru, informacje zostają przesłane do najbliższego nadleśnictwa, oraz oddziału straży pożarnej, dziki czemu można zapobiec wystąpieniu pożaru

Reprezentacja wybranych zmiennych lingwistycznych w postaci zbiorów rozmytych

Dane wejściowe:

Wykres Zbiory rozmyte dla zmiennej lingwistycznej: temperatura

Temperatura powietrza, oC, -20-30

Nazwa zbioru Typ funkcji Parametry funkcji(punkty przegięcia)
A
Mroz trampf -20
Zimno trampf -5
chlodno trampf 4
Cieplo trampf 12
Upal trampf 21

Tabela Opisy funkcji przynależności dla zmiennej lingwistycznej: temperatura

Wykres Zbiory rozmyte dla zmiennej lingwistycznej: wilgotność ściółki

Wilgotność ściółki, %, 0-100

Nazwa zbioru Typ funkcji Parametry funkcji(punkty przegięcia)
A
Bardzo sucho trampf 0
sucho trampf 18
wilgotno trampf 33
mokro trampf 48
Bardzo mokro trampf 65

Tabela Opisy funkcji przynależności dla zmiennej lingwistycznej: temperatura

Dane wyjściowe:

W ramach tego, że realizowałam model Sugeno, dane wyjściowe to funckje stałe:

Brak zagrożenia: 0.25

Zagrożenie małe: 0.5

Zagrożenie średnie: 0.75

Zagrożenie duże: 1.0

Rozmyta baza wiedzy

bardzo sucho Sucho wilgotno mokro bardzo mokro
mróz zagrożenie średnie zagrożenie małe brak zagrożenia brak zagrożenia brak zagrożenia
zimno zagrożenie średnie zagrożenie średnie brak zagrożenia brak zagrożenia brak zagrożenia
chłodno zagrożenie duże zagrożenie średnie zagrożenie małe brak zagrożenia brak zagrożenia
Ciepło zagrożenie duże zagrożenie duże zagrożenie małe zagrożenie małe brak zagrożenia
Upał zagrożenie duże zagrożenie duże zagrożenie średnie zagrożenie małe zagrożenie małe

Tabela Zachowanie sterownika dla różnych sygnałów wejściowych

Reguły zostały opracowane na podstawie powyższej tabeli. Powstało 25 reguł :

  1. If (temperatura_powietrza is mroz) and (wilgotnosc is bardzo_sucho) then (zagrozenie is zagrozenie_srednie) (1)

  2. If (temperatura_powietrza is zimno) and (wilgotnosc is bardzo_sucho) then (zagrozenie is zagrozenie_srednie) (1)

  3. If (temperatura_powietrza is chlodno) and (wilgotnosc is bardzo_sucho) then (zagrozenie is zagrozenie_duze) (1)

  4. If (temperatura_powietrza is cieplo) and (wilgotnosc is bardzo_sucho) then (zagrozenie is zagrozenie_duze) (1)

  5. If (temperatura_powietrza is upal) and (wilgotnosc is bardzo_sucho) then (zagrozenie is zagrozenie_duze) (1)

  6. If (temperatura_powietrza is mroz) and (wilgotnosc is sucho) then (zagrozenie is zagrozenie_male) (1)

  7. If (temperatura_powietrza is zimno) and (wilgotnosc is sucho) then (zagrozenie is zagrozenie_srednie) (1)

  8. If (temperatura_powietrza is chlodno) and (wilgotnosc is sucho) then (zagrozenie is zagrozenie_srednie) (1)

  9. If (temperatura_powietrza is cieplo) and (wilgotnosc is sucho) then (zagrozenie is zagrozenie_duze) (1)

  10. .If (temperatura_powietrza is upal) and (wilgotnosc is sucho) then (zagrozenie is zagrozenie_duze) (1)

  11. If (temperatura_powietrza is mroz) and (wilgotnosc is wilgotno) then (zagrozenie is brak_zagrozenia) (1)

  12. If (temperatura_powietrza is zimno) and (wilgotnosc is wilgotno) then (zagrozenie is brak_zagrozenia) (1)

  13. If (temperatura_powietrza is chlodno) and (wilgotnosc is wilgotno) then (zagrozenie is zagrozenie_male) (1)

  14. f (temperatura_powietrza is cieplo) and (wilgotnosc is wilgotno) then (zagrozenie is zagrozenie_male) (1)

  15. If (temperatura_powietrza is upal) and (wilgotnosc is wilgotno) then (zagrozenie is zagrozenie_srednie) (1)

  16. If (temperatura_powietrza is mroz) and (wilgotnosc is mokro) then (zagrozenie is brak_zagrozenia) (1)

  17. If (temperatura_powietrza is zimno) and (wilgotnosc is mokro) then (zagrozenie is brak_zagrozenia) (1)

  18. If (temperatura_powietrza is chlodno) and (wilgotnosc is mokro) then (zagrozenie is brak_zagrozenia) (1)

  19. If (temperatura_powietrza is cieplo) and (wilgotnosc is mokro) then (zagrozenie is zagrozenie_male) (1)

  20. If (temperatura_powietrza is upal) and (wilgotnosc is mokro) then (zagrozenie is zagrozenie_male) (1)

  21. If (temperatura_powietrza is mroz) and (wilgotnosc is bardzo mokro) then (zagrozenie is brak_zagrozenia) (1)

  22. If (temperatura_powietrza is zimno) and (wilgotnosc is bardzo mokro) then (zagrozenie is brak_zagrozenia) (1)

  23. If (temperatura_powietrza is chlodno) and (wilgotnosc is bardzo mokro) then (zagrozenie is brak_zagrozenia) (1)

  24. If (temperatura_powietrza is cieplo) and (wilgotnosc is bardzo mokro) then (zagrozenie is brak_zagrozenia) (1)

  25. If (temperatura_powietrza is upal) and (wilgotnosc is bardzo mokro) then (zagrozenie is zagrozenie_male) (1)

Uzasadnienie przyjętych operatorów logicznych

Funkcja logiczna Nazwa operatora Przyjęty wzór Uzasadnienie
And metod MIN
μA ∩ B(x) = MIN(μA(x), μB(x))
Or metod MAX
μA ∪ B(x) = MIN(μA(x), μB(x))
-----------------
Implication MIN ----------------- -----------------
Aggregation MAX ----------------- -----------------
Defuzzification Wtaver
$$y_{*} = \frac{\sum_{i = 1}^{n}{w_{i}z_{i}}}{\sum_{i = 1}^{n}w_{i}}$$
Wszystkie zaktywizowane funkcje przynależności biorą udział w procesie defuzyfikacji

Tabela Uzasadnienie przyjętych operatorów

Implementacja

Do implementacji użyłam programu Matlab. Do sprawozdania dołączam plik *.fis a poniżej prezentuję kilka zrzutów ekranu:

Rysunek Fis Editor

Rysunek Membership Function Editor

Rysunek Rule Viewer

Rysunek Rule Editor

Rysunek Surface Viewer

Wnioskowanie rozmyte

Scenariusz 1:

Dane wejściowe:

25oC to temperatura, która jest w jednym zbiorze rozmytym- upał[21,23,30,30]

Wilgotność 22% to wartość ze zbioru rozmytego o nazwie sucho [18,20,34,35]

Reguła, która nam mówi o relacji między tymi zbiorami, to reguła nr 10:

If (temperatura_powietrza is upal) and (wilgotnosc is sucho) then (zagrozenie is zagrozenie_duze) (1)

Żeby się dowiedzieć, w jakim stopniu reguła została spełniona w tym przypadku, należało policzyć wartość funkcji przynależności:


μupal = 1,    bo b < x ≤ c


μsucho = 1,    bo b < x ≤ c

Zagrożenie duże odpowiada funkcji stałej f(x)= 1. Funkcje przynależności dla zbioru upał i sucho mają takie same wartości, więc nie da się wyliczyć minimum.

Wartość wynikowa:


$$y_{*} = \frac{1*1}{1} = 1$$

Powyższy screen pokazuje wyniki działanie programu Matlab dla powyższych danych wejściowych. Jak widać, wynik z Matlaba i wynik wyliczony są takie same

Scenariusz 2:

Dane wejściowe:

5oC to temperatura, która jest w jednym zbiorze rozmytym- chłodno[4,6,9,13]

Wilgotność 58% to wartość ze zbioru rozmytego o nazwie mokro[48,50,60,70]

Reguła, która nam mówi o relacji między tymi zbiorami, to reguła nr 18:

If (temperatura_powietrza is chlodno) and (wilgotnosc is mokro) then (zagrozenie is brak_zagrozenia) (1)

Żeby się dowiedzieć, w jakim stopniu reguła została spełniona w tym przypadku, należało policzyć wartość funkcji przynależności:


$$\mathbf{\mu}_{\mathbf{chlodno}} = \frac{5 - 4}{6 - 4} = \frac{1}{2} = 0,5,\ \ $$


$$\ bo\ \ dla\ a < x \leq b\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mu = \frac{x - a}{b - a}$$


μmokro = 1,    bo b < x ≤ c

Brak zagrożenia odpowiada funkcji stałej f(x)= 0,25


$$\min\left\{ \begin{matrix} 0,5 \\ 1 \\ \end{matrix} = w = 1 \right.\ $$

Wartość wynikowa:


$$y_{*} = \frac{0,5*0,25}{0,5} = 0,25$$

Zrzut ekranu z programu Matlab dla danych wejściowych temperatura powietrza=5oC oraz wilgotność=58oC. Wartość wyjściowa z programu pokrywa się z wartością wyliczoną.

Scenariusz 3:

Dane wejściowe:

21,5oC to temperatura, która zawiera się w dwóch zbiorach rozmytych- ciepło[12,14,20,22] oraz upał[21,23,30,30]

Wilgotność 47% to wartość ze zbioru rozmytego o nazwie wilgotno[33,37,46,50]

Reguły, które nam mówią o relacjach między tymi zbiorami, to reguły nr 14 oraz 15:

  1. If (temperatura_powietrza is cieplo) and (wilgotnosc is wilgotno) then (zagrozenie is zagrozenie_male) (1)

  2. If (temperatura_powietrza is upal) and (wilgotnosc is wilgotno) then (zagrozenie is zagrozenie_srednie) (1)

Żeby się dowiedzieć, w jakim stopniu reguły zostały spełnione w tym przypadku, należało policzyć wartość funkcji przynależności:


$$\mathbf{\mu}_{\mathbf{cieplo}} = \frac{22 - 21,5}{22 - 20} = 0,25,\ \ $$


$$\ bo\ \ dla\ c < x \leq d\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mu = \frac{d - x}{d - c}$$


$$\mathbf{\mu}_{\mathbf{upal}} = \frac{21,5 - 21}{23 - 21} = 0,25,$$


$$\ \ \ bo\ dla\ \ a < x \leq b\ \ \ \ \ \ \ \ \ \ \ \mu = \frac{x - a}{b - a}$$

Zagrożenie małe odpowiada funkcji stałej f(x)= 0,5

Zagrożenie średnie powiada funkcji stałej f(x)=0,75


$$\min\left\{ \begin{matrix} 0,25 \\ 0,75 \\ \end{matrix} = w = 0,25 \right.\ $$

Wartość wynikowa:


$$y_{*} = \frac{0,25*0,5 + 0,25*0,75}{0,25 + 0,25} = 0,625$$

Zrzut ekranu z programu Matlab dla danych wejściowych temperatura powietrza=21,5oC oraz wilgotność=47oC. Wartość wyjściowa z programu pokrywa się z wartością wyliczoną.

Scenariusz 4:

Dane wejściowe:

-4oC to temperatura, która zawiera się w dwóch zbiorach rozmytych- mróz[-20,-20,-10,0] oraz zimno[-5, -3, 3, 5]]

Wilgotność 68% to wartość ze zbioru rozmytego o nazwie bardzo mokro[65, 70, 100, 100]

Reguły, które nam mówią o relacjach między tymi zbiorami, to reguły nr 21 oraz 22:

21.If (temperatura_powietrza is mroz) and (wilgotnosc is bardzo mokro) then (zagrozenie is brak_zagrozenia) (1)

22. If (temperatura_powietrza is zimno) and (wilgotnosc is bardzo mokro) then (zagrozenie is brak_zagrozenia) (1)

Żeby się dowiedzieć, w jakim stopniu reguły zostały spełnione w tym przypadku, należało policzyć wartość funkcji przynależności:


$$\mathbf{\mu}_{\mathbf{\text{zimno}}} = \frac{- 4 - ( - 5)}{- 3 - ( - 5)} = 0.5,\ \ $$


$$\ \ \ \ bo\ dla\ \ a < x \leq b\ \ \ \ \ \ \ \ \ \ \ \mu = \frac{x - a}{b - a}$$


$$\mathbf{\mu}_{\mathbf{\text{mroz}}} = \frac{0 - ( - 4)}{0 - ( - 10)} = 0.4\ ,$$


$$\ \ \ bo\ dla\ \ c < x \leq d\ \ \ \ \ \ \ \ \ \ \ \mu = \frac{d - x}{d - c}$$


$$\mathbf{\mu}_{\mathbf{\text{bardzo\ mokro}}} = \frac{68 - 65}{70 - 65} = 0.5,\ \ $$


$$\ \ \ \ bo\ dla\ \ a < x \leq b\ \ \ \ \ \ \ \ \ \ \ \mu = \frac{x - a}{b - a}$$

Brak zagrożenia odpowiada funkcji stałej f(x)=0,25


$$\min\left\{ \begin{matrix} 0,5 \\ 0,5 \\ \end{matrix} = w = 0,5 \right.\ $$


$$\min\left\{ \begin{matrix} 0,4 \\ 0,5 \\ \end{matrix} = w = 0,4 \right.\ $$

Wartość wynikowa:


$$y_{*} = \frac{0,4*0,25 + 0,5*0,25}{0,4 + 0,5} = 0,25$$

Zrzut ekranu z programu Matlab dla danych wejściowych temperatura powietrza=-4oC oraz wilgotność=68oC. Wartość wyjściowa z programu pokrywa się z wartością wyliczoną.

Scenariusz 5:

Dane wejściowe:

10oC to temperatura, która zawiera się w jednym zbiorze rozmytym- chłodno[4,6,9,13].

Wilgotność 33% to wartość ze zbioru rozmytego o nazwie sucho[18, 20,34,35]

Reguła, która określa relacje między tymi zbiorami, to reguła nr 8:

8.If (temperatura_powietrza is chlodno) and (wilgotnosc is sucho) then (zagrozenie is zagrozenie_srednie) (1)

Żeby się dowiedzieć, w jakim stopniu reguła została spełniona w tym przypadku, należało policzyć wartość funkcji przynależności:


$$\mathbf{\mu}_{\mathbf{chlodno}} = \frac{13 - 10}{13 - 9} = 0.75,$$


$$bo\ dla\ \ c < x \leq d\ \ \ \ \ \ \ \ \ \ \ \mu = \frac{d - x}{d - c}$$




μsucho = 1,   bo      b < x ≤ c

Zagrożenie średnie odpowiada funkcji stałej f(x)=0,75


$$\min\left\{ \begin{matrix} 0,75 \\ 1 \\ \end{matrix} = w = 0,75 \right.\ $$

Wartość wynikowa:


$$y_{*} = \frac{0,75*0,75}{0,75} = 0,75$$

Zrzut ekranu z programu Matlab dla danych wejściowych temperatura powietrza=10oC oraz wilgotność=33oC. Wartość wyjściowa z programu pokrywa się z wartością wyliczoną.

Podsumowanie i wnioski:

Logika rozmyta pozwala nam na pewną nieprecyzyjność w osądach. Nie wszystko da się wyrazić za pomocą logiki dwuwartościowej –tak/nie, należy do zbioru/ nie należy do zbioru. Czasem mówimy, że coś należy do jakiegoś zbioru w jakiejś części. I wtedy korzystamy z logiki rozmytej, dzięki której rozszerzamy pojęcie przynależności elementu do zbioru poprzez wprowadzenie funkcji przynależności.

Model Sugeno jest bardziej zwięzły i skuteczny obliczeniowo w porównaniu z modelem Mamdani. Gdy potrzebujemy na wyjściu mieć konkretną wartość (np. funkcję stałą brak zagrożenia=0.25) to model Sugeno będzie lepszym wyborem.

Fuzzy Logic Toolbox jest biblioteką programu Matlab-Simulink i zawiera zestaw funkcji oraz interfejsy, które ułatwiają projektowanie regulatorów rozmytych. Dzięki tej bibliotece (uruchamianej poprzez wpisanie polecenia >>fuzzy) użytkownik w prosty sposób może zaimplementować swój sterownik rozmyty. Matlab nie wymaga od użytkownika specjalistycznej wiedzy z zakresu programowania- jego interfejs jest przyjazny nawet dla laika. Gdy uruchomimy bibliotekę fuzzy, pojawia nam się Fis Editor (Rysunek 1). Tutaj mamy możliwość wyboru modelu wnioskowania: Mamdani lub Sugeno. Ustalamy ilość danych wejściowych oraz wyjściowych i nazywamy te dane oraz ustalamy sposób realizowania odpowiednich metod logicznych (and i or) oraz implikacji, agregacji i defuzzyfikacji.

Po dwukrotnym kliknięciu w prostokąt znajdujący się nad nazwą zmiennej (wejściowej lub wyjściowej) wyświetli się nam Membership Function Editor (Rysunek 2), który umożliwia nam określenie typu funkcji przynależności, ich wartości oraz punkty przegięcia.

Rule Editor (Rysunek 4) jest narzędziem, dzięki któremu w bardzo intuicyjny sposób możemy stworzyć bazę reguł. Wyniki wnioskowania możemy poznać dzięki Rule Viewer (Rysunek 3) oraz Surface Viewer (Rysunek 5).

Gdy przeprowadzałam obliczenia dla pięciu scenariuszy, za każdym razem wyniki otrzymane przeze mnie pokrywały się z wynikami otrzymanymi z Matlaba. Dlatego można przypuszczać, że za każdym razem wnioskowanie zostało przeprowadzone w sposób poprawny.

Dzięki programowi Matlab z biblioteką Fuzzy Logic Toolbox możemy w szybki i latwy sposób przeprowadzić proces wnioskowania rozmytego. Uważam, że jest to program odpowiedni zarówno dla zaawansowanych informatyków, jak również, dzięki swojej prostocie, dla osób mających mały kontakt z komputerami.


Wyszukiwarka

Podobne podstrony:
Katedra Inżynierii Wiedzy
projektowanie inżynierskie, Modele w projekt - WYKŁAD 5, 7
inżynieria ruchu projekt
opis techniczny, Inżynieria środowiska, Projekt instalacji w domu jednorodzinnym
inzbio, Studia PŁ, Ochrona Środowiska, Inżynieria bioprocesowa, projekt nr 4
projekt poprawiony, Studia PŁ, Ochrona Środowiska, Inżynieria bioprocesowa, projekt nr 4
Egzamin, C. Podstawy podejmowania decyzji i inżynierii wiedzy, C
Geometria odpylacza cyklonowego, Studia - IŚ - materiały, Semestr 05, Technologie inżynierii środowi
inzbio11.11, Studia PŁ, Ochrona Środowiska, Inżynieria bioprocesowa, projekt nr 4
Okręgi wyborcze, Dokumenty Inżynierskie, Duki projekt, Duki Projekt
Projekty, NAUKA, geologia, Geologia inżynierska 2, Geologia, projekty z geologii
Budownictwo projekt Pająk, IŚ Tokarzewski 27.06.2016, IV semestr COWiG, Budownictwo i konstrukcje in
Bioprocesy, Politechnika, Rok 2, sem 4, inżynieria bioprocesowa, projekt rozne, Re bioprocesy
Studium, studia, Politechnika Warszawska, I rok mgr Inżynieria Środowiska, Projektowanie systemów za
Budownictwo - projekt - OWCZAR, IŚ Tokarzewski 27.06.2016, IV semestr COWiG, Budownictwo i konstrukc
Inżynieria Wiedzy
Franik-projekt, studia AGH, ZiIP, Inżynier, Franik, Projekt
Pytania na obronę BiKI, IŚ Tokarzewski 27.06.2016, IV semestr COWiG, Budownictwo i konstrukcje inżyn

więcej podobnych podstron