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:
odległość prędkość
30 50
odległość prędkość
100 50
odległość prędkość
30 65
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-
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. W celu wyznaczenia wartości liczbowej przyspieszenia zastosujemy metodę środka ciężkości (CoA).