W ramach zajęć proszę wykonać sprawozdanie z logiki rozmytej.
Sprawozdanie powinno realizować zadanie wnioskowania rozmytego.
Cel projektu:
Student projektuje bazę wiedzy wnioskowania rozmytego (kilka, kilkanaście reguł pozwalających zamodelować rzeczywistość opisywaną przez reguły składające się z dwóch zmiennych lingwistycznych w części warunkowej reguł i jednej zmiennej lingwistycznej w części decyzyjnej.
W Excelu bądź podobnym narzędziu student zapisuje reguły (formuły logiczne) projektując odpowiednie funkcje rozróżnialności dla zdefiniowanych zbiorów rozmytych. Implementuje co najmniej dowolne dwie różne metody defuzyfikacji. Następnie dla dowolnych nowych danych (wystarczy jeden zestaw danych) w formie sprawozdania krok po kroku omawia proces wnioskowania rozmytego dla stworzonej bazy wiedzy.
Wymogi dotyczące sprawozdania:
Bardzo proszę by ująć w sprawozdaniu:
- definicję (formalną oraz wykresową) zmiennych wejściowych i wyjściowej - zapisane w języku naturalnym (if…then…) reguły wszystkie
- omówienie procesu wnioskowania dla dowolnych nowych danych z pokazaniem krok po kroku wnioskowania przy dotrzymaniu warunku o użyciu przynajmniej dwóch różnych metod defuzyfikacji spośród poznanych na wykładzie.
Przykłady:
Przykład nr 1
Poziom ryzyka – nowy projekt z inżynierii oprogramowania
Należy oszacować poziom ryzyka (w skali 0-10) związanego z nowym projektem w
dziedzinie inżynierii oprogramowania. Dla uproszczenia założyć, że rozpatrywane są wyłącznie dwa wejścia: finansowanie projektu (oceniane w skali 0-100) oraz wymagana liczba osób do wykonania projektu (oceniane w skali 0-20).
#zdefiniowanie zmiennej finansowanie i jej wartości, jako zbiorów rozmytych zm.finansowanie
niewyst = fuzzy trapezoid
gset(corners = c(0,0.1,20,40), universe=U1), srednie = fuzzy triangular
gset(corners = c(20,50,80), universe=U1), odpowiednie = fuzzy trapezoid
gset(corners = c(60,80,99.9,100), universe=U1)) zm.l.osob
mala = fuzzy trapezoid
gset(corners = c(0,0.1,6,13), universe=U2), duza = fuzzy trapezoid
gset(corners = c(7,12,19.9,20), universe=U2)) zm.ryzyko
niskie = fuzzy trapezoid
gset(corners = c(0,0.1,2,4), universe=U3), normalne = fuzzy triangular
gset(corners = c(2,5,8), universe=U3), wysokie = fuzzy trapezoid
gset(corners = c(6,8,9.9,10), universe=U3))
# reguły
# R1: JEŻELI finansowanie jest odpowiednie LUB wymagana liczbna osób jest mała TO ryzyko jest niskie.
# R2: JEŻELI finansowanie jest srednie I wymagana liczba osób jest duża TO ryzyko jest normalne.
# R3: JEŻELI finansowanie jest niewystarczające TO ryzyko jest wysokie.
# wnioskowanie dla określonych wartości zmiennych ocena.finansowania - 60
ocena.l.osob - 9
Przykład nr 2
Symulacja FLC
Prześledźmy działanie regulatora FLC na przykładzie zadania podjęcia decyzji o wartości przyspieszenia samochodu w sytuacji dojeżdżania do skrzyżowania, na którym światło zmieniło się z zielonego na żółte.
Wielkościami wpływającymi na decyzję będą: aktualna prędkość samochodu i odległość od skrzyżowania.
Pomierzone wartości tych wielkości są następnie poddawane rozmywaniu: są zamieniane na ich jakościowe odpowiedniki - „mały”, „średni” i „duży” (Formalnie rzecz ujmując, dla każdej wielkości wejściowej definiujemy trzy funkcje zdaniowe, odpowiadające wymienionym terminom lingwistycznym). Wartości funkcji zdaniowych dla wartości lingwistycznych obu wielkości wejściowych są przedstawione na poniższych rysunkach.
Rozważmy trzy przypadki wielkości wejściowych:
1.
odległość prędkość
30 50
2.
odległość prędkość
100 50
3.
odległość prędkość
30 65
Wartości lingwistyczne są dla tych przypadków następujące (odczytujemy je z wykresów funkcji przynależności):
1.
odległość prędkość
mała 0,6 0,3
średnia 0,4 0,7
duża 0 0
2.
odległość prędkość
mała 0 0,3
średnia 1 0,7
duża 0 0
3.
odległość prędkość
mała 0,6 0
średnia 0,4 1
duża 0 0
Następuje faza wnioskowania. W naszym przykładzie, wnioskowanie odbywa się zgodnie z zestawem reguł zamieszczonym poniżej.
odległość prędkość przyspieszenie
mała Mała duże-
średnia Mała małe-
duża Mała małe-
mała Średnia duże+
średnia Średnia małe-
duża Średnia małe-
mała Duża małe+
średnia Duża duże-
duża Duża małe-
Poniżej wymieniono reguły wraz ze stopniem prawdziwości konkluzji (określonym na podstawie koniunkcji przesłanek) dla rozważanych przypadków; dla wygody, pominęliśmy reguły z nieprawdziwą koniunkcją przesłanek:
1.
odległość prędkość przyspieszenie min(odległość, prędkość)
mała Mała duże- 0,3
średnia Mała małe- 0,3
mała Średnia duże+ 0,6
średnia Średnia małe- 0,4
2.
odległość prędkość przyspieszenie min(odległość, prędkość)
mała Średnia duże+ 0,3
średnia Średnia małe- 0,7
3.
odległość prędkość przyspieszenie min(odległość, prędkość)
mała Średnia duże+ 0,6
średnia Średnia małe- 0,4
Tak więc wynikiem wnioskowania będą następujące wartości lingwistyczne (podane wraz ze stopniem prawdziwości):
1.
przyspieszenie
duże- 0,3
małe- 0,3
małe+ 0
duże+ 0,6
2.
przyspieszenie
duże- 0
małe- 0,7
małe+ 0
duże+ 0,3
3.
przyspieszenie
duże- 0
małe- 0,4
małe+ 0
duże+ 0,6
Przechodzimy do wyostrzania. Załóżmy funkcje przynależności dla zmiennej wyjściowej jak na poniższym rysunku.
W wyniku wnioskowania, dla każdego z rozważanych trzech przypadków, otrzymamy inne kształty funkcji przynależności, zobrazowane na rysunkach poniżej. W celu wyznaczenia wartości liczbowej przyspieszenia
zastosujemy metodę środka ciężkości (CoA). Wynik wyostrzania jest podany poniżej (obok każdego
rysunku). 0.150
0.140
0.305
Przykład nr 3
Ryzyko towarzystwa ubezpieczeniowego
Należy oszacować poziom ryzyka towarzystwa ubezpieczeniowego związanego z ubezpieczeniem pojazdu o określonej mocy samochodu oraz wieku kierowcy.
Zakładając, że dysponujemy dwiema zmiennymi wejściowymi: wiek kierowcy {młody, średni, stary} oraz moc samochodu {mała, średnia, duża} system ma wnioskować jakie będzie ryzyko finansowej towarzystwa ubezpieczeniowego zakładając że ryzyko to mierzone będzie w wartościach {niskie, średnio niskie, średnie,
średnio wysokie i wysokie}. Następnie dla dowolnych danych np. wiek kierowcy = 27 lat, moc samochodu – 140 km proszę ustalić jakie będzie ryzyko finansowe.