PODSTAWY LOGIKI ROZMYTEJ
|
Poniżej znajdują się materiały przybliżające podstawy logiki rozmytej i zbiorów rozmytych. Zostaną tu przedstawione proste prawa matematyczne oraz przykłady ich zastosowania do rozwiązywania różnych zadań.
Zagadnienia
te podzielone są na następujące tematy: 1.
Czym jest Logika Rozmyta (Fuzzy-Logic)? 2. Zastosowanie logiki rozmytej (Fuzzy-Logic) 3.2.
Operacje na zbiorach rozmytych
Klasyczna
logika bazuje na dwóch wartościach reprezentowanych najczęściej przez:
0 i 1 lub prawda i fałsz. Granica między nimi jest jednoznacznie określona
i niezmienna. Logika rozmyta stanowi rozszerzenie klasycznego rozumowania
na rozumowanie bliższe ludzkiemu. Wprowadza ona wartości pomiędzy
standardowe 0 i 1; ‘rozmywa’ granice pomiędzy nimi dając możliwość
zaistnienia wartościom z pomiędzy tego przedziału (np.: prawie fałsz,
w połowie prawda). Aby
przybliżyć to zagadnienie posłużę się przykładem. Polem
naszego przykładu niech będzie wiek ludzi. Załóżmy, że chcemy określić
granice między ludźmi młodymi, w średnim wieku i starymi. W klasycznej
logice będziemy zmuszeni przyjąć stałe niezmienne granice, jak na
przykład dla ludzi młodych moglibyśmy przyjąć 0 a 30 lat, dla ludzi w
średnim wieku 30 a 40 lat i dla ludzi starych 40 i więcej lat. Jednakże
dobrze wiemy, że jeżeli przeprowadzilibyśmy ankietę, w której
pytalibyśmy do jakiej z trzech grup zaliczyć 28 latka znalazłoby się
kilka osób, którzy przypisaliby go do ludzi w średnim wieku. Jak widać
z powyższego przykładu granice przynależności
ulegają rozmyciu.
2.
Zastosowanie logiki rozmytej (Fuzzy-Logic) Aby przybliżyć ideę zbiorów rozmytych posłużę się porównaniem ich do klasycznych zbiorów. Dla
zilustrowania tego przykładu weźmy zbiór mieszkańców pewnego miasta.
Podzbiorem będą osoby posiadające samochód. Osoby należące do tego
zbioru możemy również przedstawić za pomocą argumentów składających
się dwóch wartości [2]. Pierwszą z nich jest wartość odpowiadająca
osobie, natomiast drugą jest liczba 1 lub 0, w zależności czy dana
osoba posiada samochód czy też nie. Mając w ten sposób oznaczone
elementy zbioru, aby stwierdzić, czy są częścią naszego podzbioru
wystarczy odszukać te, które na drugiej pozycji mają jedynkę. Zbiór
taki może mieć następujące elementy: Miasto1
= { Marek,1; Ania,0; Piotr,0; Maja,1 } Dzięki
takiemu zapisowi wiemy, że osobami posiadającymi samochód i należącymi
do naszego podzbioru są Marek i Maja. Podzbiór
rozmyty Z zbioru Y tak samo może być reprezentowany przez dwuargumentowy
zestaw wartości, w których pierwszy element odpowiada wartości zbioru
Y, a drugi przyjmuje wartości ze zbioru [0;1]. Podobnie jak w zwykłym
zbiorze drugi element określa przynależność do podzbioru Z, z tą różnicą,
że oprócz ‘całkowitej’ przynależności do niego (dla 1) i ‘całkowitym’
brakiem tej przynależności (dla 0), posiadamy informacje o tzw.
„stopniu przynależności” do podzbioru Z (określoną wartościami z
przedziału 0-1). Stopień Przynależności stanowi dla nas informację,
jak daleko element y jest oddalony od naszego podzbioru Z. Określamy go
dzięki Funkcji Przynależności. W celu zrozumienia tego zagadnienia posłużę się przykładem. Niech naszym zbiorem Y będą osoby, a zbiorem rozmytym Z – osoby wysokie. Zbiór Z będzie nam mówił, w jakim stopniu dana osoba ze zbioru Y przynależy do zbioru osób wysokich. W tym celu musimy ułożyć funkcję przynależności dla naszego zbioru rozmytego bazującą na wzroście.
Np.: Z(y) = ( 0 à wzrost < 170 cm [Z(y) – 170]/20 à 170 cm > wzrost < 190 cm 1 à wzrost > 190 cm )
Dzięki
zastosowanej funkcji przynależności uzyskujemy następujące dane:
Należy pamiętać, że funkcja przynależności może mieć bardziej złożony kształt, niż ten, z przykładu [1]. W zdecydowanej większości przypadków jako funkcje przynależności stosuje się trójkąty, ale mogą to być też trapezy lub parabole.
3.2.
Operacje na zbiorach rozmytych Podstawowymi
operacjami na zbiorach rozmytych są [1]: –
negacja (NOT) –
suma (OR) –
iloczyn (AND) W przypadku sumy i iloczynu logicznego mamy parę możliwości uzyskania wyników. Do obliczania ich zaproponowanych zostało kilka wzorów matematycznych, różnych dla każdej z tych operacji. Dla sumy logicznej zbiorów rozmytych są to tak zwane operatory s-normy, a dla iloczynu logicznego zbiorów rozmytych są to tak zwane operatory t-normy. Podstawowe wzory tych norm są przedstawione w tabelach tab1 i tab2. Negacja zbiorów rozmytych natomiast jest bardzo zbliżona do negacji zwykłych zbiorów. W odróżnieniu od powyższych operacji istnieje tylko jeden sposób otrzymywania wyniku.. Aby go obliczyć wystarczy odjąć stopień przynależności danego elementu od jedności.
Tab. 1. Podstawowe operatory t-normy [2].
Tab.
2.3.2/2. Podstawowe operatory s-normy [2].
Poniżej
znajdują się graficzne ilustracje obliczeń sumy i iloczynu logicznego.
Za przykład posłużą nam dwa zbiory przedstawione na poniższym
rysunku.
Wyniki obliczeń sumy logicznej prezentują się następująco:
Wyniki obliczeń iloczynu logicznego prezentują się następująco:
Najprostszymi a co za tym idzie najczęściej stosowanymi operatorami są, dla t-normy MIN, a s-normy MAX.. W dalszej części tej pracy będą stosowane właśnie te operatory, chyba że będzie napisane inaczej.
Poniżej przedstawione są liczbowe przykłady powyższych operacji logicznych.
NEGACJA: Jeżeli
mamy dany podzbiór rozmyty A zbioru Y, to jego negacją jest podzbiór
Ā=Y-A. Czyli dla każdego y należącego do A mamy Ā(y)=1-A(y) Przykład:
SUMA: Jeżeli mamy dane podzbiory rozmyte A i B zbioru Y, to ich sumą jest podzbiór C=AorB. Czyli dla każdego y należącego do Y mamy C(y)=Max[A(y), B(y)] Przykład:
ILOCZYN: Jeżeli mamy dane podzbiory rozmyte A i B zbioru Y, to ich iloczynem jest podzbiór C=AandB. Czyli dla każdego y należącego do Y mamy C(y)=Min[A(y), B(y)] Przykład:
Oprócz przykładów liczbowych operacje powyższe przedstawię także na podstawie wykresów. Załóżmy, że mamy zbiór osób. Na tym zbiorze mamy trzy podzbiory rozmyte odpowiadające za wzrost.
Na początek załóżmy, że chcemy otrzymać zbiór osób nie średnich. W tym celu posłużymy się operacją logiczną NIE. Wynik reprezentuje poniższy wykres.
Następnie chcemy otrzymać zbiór osób niskich lub średnich. W tym celu posłużę się operacją logiczną LUB, która w tym przypadku będzie reprezentowana przez operator s-normy MAX. Wynikiem tego działania jest poniższy wykres.
Na koniec chcemy otrzymać zbiór osób zarówno średnich jaki i wysokich. W tym celu użyję operacji logicznej I. Będzie ona reprezentowana przez operator t-normy MIN. Wynik przedstawiony jest na poniższym wykresie.
W przypadku gdy mamy do czynienia z dwoma różnymi zmiennymi operacje logiczne wykonywane są tak samo jak powyżej. Pokażę to na poniższym przykładzie. Wyniki zostaną zamieszczone w tabeli, jak również zaprezentowane w postaci wykresów. Załóżmy, że mamy dwa różne zbiory osób. Pierwszy dzieli nam je ze względu na wzrost a drugi na wiek.. Dla zapewnienia większej przejrzystości przykładu, przedstawiono tylko po jednym zbiorze rozmytym dla każdej zmiennej. Dla zmiennej wzrost będzie to zbiór Z osób wysokich. Dla zmiennej wiek będzie to zbiór V osób starych. Oba te zbiory są opisane poniższymi funkcjami przynależności.
Z(y) = ( 0 à wzrost < 170 cm [Z(y) – 170]/20 à 170 cm > wzrost < 190 cm 1 à wzrost > 190 cm ) V(y) = ( 0 à wiek < 40 lat [V(y) – 20]/40 à 40 lat >= wiek < 60 lat
1
à
wiek >= 60 lat
)
Utwórzmy następujące zbiory rozmyte: - zbiór ludzi wysokich lub starych A = Z LUB V - zbiór ludzi wysokich i starych B = Z I V
Graficzne prezentacja operacji (osoby_stare)LUB(osoby_wysokie):
Graficzne prezentacja operacji (osoby_stare)I(osoby_wysokie):
|