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. Podstawy matematyczne.

3.1. Zbiory rozmyte.

3.2. Operacje na zbiorach rozmytych

 

    1. Czym jest Logika Rozmyta (Fuzzy-Logic)? 

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.

 

     

  do góry

2. Zastosowanie logiki rozmytej (Fuzzy-Logic)

  Logika rozmyta jest stosowana wszędzie tam, gdzie użycie klasycznej logiki stwarza problem ze względu na trudność w zapisie matematycznym procesu lub gdy wyliczenie lub pobranie zmiennych potrzebnych do rozwiązania problemu jest niemożliwe. Ma szerokie zastosowanie w różnego rodzaju sterownikach. Sterowniki te mogą pracować w urządzeniach tak pospolitych jak lodówki czy pralki, jak również mogą być wykorzystywane do bardziej złożonych zagadnień jak przetwarzanie obrazu, rozwiązywanie problemu korków ulicznych czy unikanie kolizji. Sterowniki wykorzystujące logikę rozmytą są również używane na przykład w połączeniu z sieciami neuronowymi.

   do góry

3. Podstawy matematyczne.

 

3.1. Zbiory rozmyte.

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:

 

Osoba Y

Wzrost

Stopień Przynależności Do Z

Darek

193

1

Kamil

139

0

Zbyszek

128

0

Sławek

182

0,6

Karol

175

0,25

Mariusz

179

0,45

Jacek

187

0,85

 

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.

 

 

 

 

 

    do góry

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:

 Jeżeli A={

a/1;

b/0,4;

c/0,8;

d/0,2;

e/0  }

 to      Ā={

a/0;

b/0,6;

c/0,2;

d/0,8;

e/1  }

   

      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:

  A={

a/1;

b/0,3;

c/0,8;

d/0;

e/0,1 }

  B={

a/0,6;

b/0,4;

c/0,9;

d/0,5;

e/0,7 }

  C={

a/1;

b/0,4;

c/0,9;

d/0,5;

e/0,7 }

 

        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:

  A={

a/1;

b/0,3;

c/0,8;

d/0;

e/0,1 }

  B={

a/0,6;

b/0,4;

c/0,9;

d/0,5;

e/0,7 }

  C={

a/0,6;

b/0,3;

c/0,8;

d/0;

e/0,1 }

   

 

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

 

 

Osoba

Y

Wzrost

 

Wiek

 

Stopień Przynależności do Z

Stopień Przynależności do V

A

B

Darek

193

18

1

0

1

0

Kamil

139

53

0

0,82

0,82

0

Zbyszek

128

25

0

0,1

0,1

0

Sławek

182

74

0,6

1

1

0,6

Karol

175

35

0,25

0,36

0,36

0,25

Mariusz

179

48

0,45

0,69

0,69

0,45

Jacek

187

27

0,85

0,2

0,85

0,2

 

 

Graficzne prezentacja operacji (osoby_stare)LUB(osoby_wysokie):

 

 

 

Graficzne prezentacja operacji (osoby_stare)I(osoby_wysokie):

 

 

  do góry