Sterownik rozmyty
Transkrypt
Sterownik rozmyty
Wstęp do Sztucznej Inteligencji: Laboratorium Sterownik rozmyty Zbiory rozmyte pozwalają w sposób usystematyzowany modelować pojęcia nieprecyzyjne, jakimi ludzie posługują się na co dzień. Przykładem może być wyrażenie „wysoka temperatura” , „duża prędkość” czy „młody człowiek”. Również podczas rozumowania i podejmowania decyzji, ludzie wykorzystują takie rozmyte pojęcia. Rozumujemy na przykład: „jeśli droga jest bardzo kręta i widoczność jest bardzo słaba, należy jechać bardzo powoli”. W klasycznej matematyce mamy do czynienia z odmienną sytuacją. W klasycznej logice operujemy na zdaniach logicznych, które mogą być prawdziwe lub fałszywe i nie przyjmują stanów pośrednich. Jedną z reguł wnioskowania klasycznej logiki jest reguła modus ponens: Przesłanka: A Implikacja: A B Wniosek: B Z prawdziwości implikacji wiadomo, że zawsze ilekroć zachodzi A (A przyjmuje wartość „prawda”) to zachodzi również B. Skoro wiec w pewnej konkretnej sytuacji zachodzi A, to możemy być pewni ze zachodzi również B. W logice rozmytej zamiast zdaniami, przyjmującymi wartość prawda lub fałsz, posługujemy się zmiennymi lingwistycznymi, które przyjmują jako wartości nieprecyzyjne pojęcia języka mówionego, takie jak „mały” , „średni” , „duży”. Przykładowo, „temperatura” może być zmienną lingwistyczna i przyjmować wartości nieprecyzyjne „mała” , średnia” , „wysoka”. Te nieprecyzyjne pojęcia, jak wiadomo, można modelować za pomocą odpowiednich zbiorów rozmytych. Zbiór reguł wnioskowania rozmytego przyjmuje postać: Jeśli x1 jest A11 i x2 jest A12 i ... i xn jest A1n to y jest B1 ... Jeśli x1 jest AM1 i x2 jest AM2 i ... i xn jest AMn to y jest BM xi oraz y to zmienne lingwistyczne, Aij oraz Bi to wartości tych zmiennych lingwistycznych określone przez odpowiednie zbiory rozmyte. Górny indeks oznacza numer reguły, dolny numer zmiennej lingwistycznej. Rodzaj funkcji określającej funkcje przynależności danego zbioru rozmytego jak również jej współczynniki, mają duży wpływ na działanie modelu. Odpowiednikiem rozumowania modus ponens w logice rozmytej będzie następująca reguła: Przesłanka: x jest A’ Implikacja: Jeśli x jest A to y jest B Wniosek: y jest B’ W tym przypadku x i y to zmienne lingwistyczne a A, A’, B, B’ to zbory rozmyte. Najważniejszą rzeczą, którą warto zauważyć w powyższej regule to fakt, że zbiór A’ występujący w przesłance wcale nie jest identyczny ze zbiorem rozmytym A występującym w rozmytej implikacji. Podobnie zbiór B’ nie jest równy zbiorowi B. Pozwala to na pewną 1 elastyczność. Jeśli bowiem zbiór A’ określa podobną sytuację jak zbiór A, to możemy się spodziewać, że zbiór B’ powinien być zbliżony znaczeniowo (lingwistycznie) do zbioru B. Ilustruje to następujący przykład: Mamy regułę rozmytą: Jeśli prędkość samochodu jest bardzo duża, to poziom hałasu jest wysoki. Przesłanka mówi natomiast: Prędkość samochodu jest duża. Widać zatem, że wartość lingwistyczna „bardzo duża” nie jest tożsama z wartością „duża”. Jednak z ich podobieństwa wynika, że powinniśmy oczekiwać podobnego wniosku jak w regule, przykładowo: Poziom hałasu jest średnio wysoki. Skoro więc ludzie posługując się nieprecyzyjnymi pojęciami i regułami rozmytymi , potrafią radzić sobie z szeregiem skomplikowanych zadań, istnieje praktyczna potrzeba symulowania takiego rodzaju rozumowania. Umożliwia to zastosowanie teorii zbiorów i logiki rozmytej. W ten sposób powstały sterowniki rozmyte. Realizacja rozmytej implikacji Reguła rozmyta typu (AB) gdzie A oraz B są zbiorami rozmytymi, to rozmyta implikacja i może być zrealizowana na wiele sposobów. Dwa z popularnych sposobów jej realizacji to reguła minimum oraz iloczynu. Jeśli zbiory A i B mają funkcje przynależności odpowiednio µ A (x) oraz µ B ( y ) to rozmyta implikacja (AB) jest zbiorem rozmytym o funkcji przynależności określonej przez jedną z reguł , przykładowo: µ ( A− − > B ) ( x, y ) = µ A ( x) ∧ µ B ( y ) = min[ µ A ( x), µ B ( y )] 1. reguła typu minimum: 2. reguła typu iloczyn: µ ( A− − > B ) ( x, y ) = µ A ( x ) * µ B ( y ) Realizacja rozmytego wnioskowania W logice rozmytej wnioskowanie realizuje się przez złożenie rozmytego zbioru A’ oraz rozmytej implikacji (AB) . W wyniku złożenia otrzymamy zbiór rozmyty B’, który stanowi wniosek. B ' = A'( A → B ) Złożenie to realizowane jest następująco; T µ B ' ( y ) = sup{µ A' ( x) * µ x∈ X A→ B ( x, y )} T gdzie * oznacza pewna T-normę. Jeśli przykładowo T-norma jest typu min, otrzymuje się: 2 µ B ' ( y ) = sup{min[ µ A' ( x), µ x∈ X A→ B ( x, y )]} Klasyczny sterownik rozmyty: Klasyczny sterownik rozmyty składa się z trzech części: 1. Bloku rozmywania (fuzyfikacji) 2. Bloku wnioskowania (inferencji) wraz z baza reguł 3. Bloku wyostrzania Schemat sterownika rozmytego przedstawiono na rysunku: Blok rozmywania Blok rozmywania ma za zadanie zamienić ostre wartości x, przeważnie otrzymane z pomiarów, na zbiory rozmyte A’. Jednym z popularnych sposobów rozmywania to operacja _ rozmywania typu singleton. Dla konkretnej wartości x tworzy ona zbiór rozmyty A’ o funkcji przynależności określonej wzorem _ 1 x = x µ A ' ( x) = δ ( x − x) = _ 0 x ≠ x _ Blok wnioskowania Blok ten przeprowadza wnioskowanie rozmyte korzystając z bazy reguł typu: Jeśli x1 jest A11 i x2 jest A12 i ... i xn jest A1n to y jest B1 ... Jeśli x1 jest AM1 i x2 jest AM2 i ... i xn jest AMn to y jest BM Zadaniem tego bloku jest sprawdzenie stopnia spełnienia przesłanki każdej z reguł i określić odpowiedzi każdej z reguł, czyli zbiory rozmyte B’i. Jeśli przesłanka jest typu prostego tzn. Jeśli xi jest Ai to ... 3 i zastosowano operacje rozmywania typu singleton, to stopień spełnienia przesłanki łatwo określić wyznaczając wartość µ _ Ai ( x) . W przypadku przesłanki złożonej typu: Jeśli x1 jest A11 i x2 jest A12 i ... i xn jest A1n to y jest B1 czyli Jeśli x=(x1, x2,..., xn) jest A to y jest B1 gdzie A = A1xA2x...An , jest iloczynem kartezjańskim zbiorów rozmytych Ai, należy określić funkcję przynależności iloczynu kartezjańskiego zbiorów rozmytych Ai. Jak wiadomo funkcję przynależności iloczynu kartezjańskiego można określić jako: µ ( x1 , x2 ,..., xn ) = min[µ A1 ( x1 ), µ A2 ( x2 ),..., µ ( x1, x2 ,..., xn ) = µ A1 ( x1 ) µ A2 ( x2 )...µ An ( xn ) A1 xA 2 x ... xAn lub jako iloczyn µ A1xA2 x... xAn An ( xn )] W czasie wnioskowania rozmytego wykorzystuje się złożenie zbioru rozmytego otrzymanego z operacji rozmywania z relacją rozmytą iloczynu kartezjańskiego A = A1xA2x...An i zbioru B, jak pokazano to wcześniej. Dla każdej k-tej reguły otrzymujemy zatem B'k = A'( A1k xA2k x...xAnk → B k ) Zatem otrzymane zbiory B’ zalezą od: - przyjętej T-normy w definicji rozmytej implikacji - sposobu zdefiniowania iloczynu kartezjańskiego zbiorów rozmytych - przyjętego sposobu rozmywania (najczęściej singleton) Na wyjściu bloku wnioskowania otrzymamy zatem: - zbiory rozmyte B’k, w liczbie równej liczbie reguł rozmytych - jeden zbiór rozmyty, jeśli przyjmiemy uogólniona postać rozmytego wnioskowania modus ponens, gdzie złożenie zbioru A’ odbywa się nie z każda z relacji (reguł) z osobna, lecz ze wszystkimi razem: M B ' = A' R ( k ) k= 1 Korzystając z definicji sumy zbiorów rozmytych otrzymamy: T µ B' ( y ) = sup{µ A' ( x) * max µ x∈ X 1≤ k ≤ M Ak → Bk ( x, y )} 4 Wybierana jest zatem reguła, która najlepiej odpowiada danej sytuacji, zgodnie z przyjętymi definicjami iloczynu kartezjańskiego, rozmytej implikacji oraz sumy zbiorów rozmytych (w tym przypadku operacji max). Blok wyostrzania Na wyjściu bloku wnioskowania otrzymamy jeden lub wiele zbiorów rozmytych. Do sterowania konkretnym obiektem potrzebne są jednak konkretne ostre wartości. To tak, jak gdyby człowiek wiedząc ze musi jechać wolno, zwolnił w końcu do konkretnej wartości 25 km/h. W klasycznym sterowniku rozmytym za ten ostatni etap odpowiada blok wyostrzania. Może on być zrealizowany również na wiele sposobów. Jednym z możliwych rozwiązań jest metoda center avarage defuzzification0, stosowana, gdy na wyjściu bloku wnioskowania otrzymuje się zbiór zbiorów rozmytych. Konkretna ostra wartość wyznaczana jest ze wzoru M k k k ( y )y B' _ k= 1 y= M (yk ) B 'k k= 1 ∑ ∑ µ µ gdzie y k jest punktem w którym funkcja µ ( y) (z k-tej reguły) przyjmuje wartość Bk maksymalną, a M to liczba reguł rozmytych. (Uwaga: W sumie występują zbiory rozmyte B’ a nie B) Rodzaje modeli rozmytych Najbardziej popularnymi rodzajami modeli rozmytych są: 1. Model Mamdaniego, gdzie reguły rozmyte maja postać Jeśli x jest A to y jest B, gdzie A i B to zbiory rozmyte 2. Model Takagi – Sugeno, gdzie reguły rozmyte maja postać: Jeśli x jest A to y=f(x), gdzie tylko A jest zbiorem rozmytym, natomiast y jest określany za pomocą pewnej funkcji. Przykład. Model Takagi-Sugeno z dwoma regułami rozmytymi Model posiada dwie reguły rozmyte postaci Jeśli (x1 jest DUŻE I x2 jest ŚREDNIE) TO Jeśli (x1 jest MAŁE I x2 jest MAŁE) TO y1 = 2 + 7x1 - 3x2 y2= -2x1 +5x2 Wyznaczymy sygnał wyjściowy sterownika dla sygnałów wejściowych równych x1=2 oraz x2=3. Korzystając z rysunku odczytujemy wartości każdego ze zbiorów rozmytych reguł dla danych wejściowych sterownika (w domyśle stosujemy rozmywanie typu singleton): 5 µ µ A11 A12 (2) = 0.3 µ (2) = 0.75 µ A12 A22 (3) = 0.7 (3) = 0.2 Stopień spełnienia przesłanki złożonej każdej z reguł obliczamy korzystając z operacji min: w1 = min(0.3,0.7) = 0.3 w2 = min(0.75,0.2) = 0.2 Dodatkowo w modelu Takagi – Sugeno odpowiedzi każdej reguły wynoszą odpowiednio: y1 = f1 (2,3) = 7 y 2 = f 2 (2,3) = 11 Końcowa odpowiedź całego sterownika wynosi: y= w1 y1 + w2 y2 = 8.6 w1 + w2 Zalecana lektura Rutkowska D., Piliński M., Rutkowski L., „Sieci neuronowe, algorytmy genetyczne i systemy rozmyte” Piegat A., „Modelowanie i sterowanie rozmyte” 6