Transcript Document
Zagadnienia AI
wykład 4
Rozmyte systemy wnioskujące
Aby móc sterować pewnym procesem technologicznym lub tez
pracą urządzeń konieczne jest zbudowanie modelu, na podstawie
którego można będzie podejmować decyzje związane ze
sterowaniem.
W wielu przypadkach znalezienie odpowiedniego modelu jest
problemem trudnym, niekiedy wymagającym przyjęcia różnego
typu założeń upraszczających.
Zastosowanie systemów rozmytych do sterowania procesami
technologicznymi nie wymaga od nas znajomości tych procesów.
Konstruujemy po prostu rozmyte reguły postępowania w postaci
zdań warunkowych:
IF ... THEN ...
Schemat rozmytego systemu wnioskującego
Baza reguł
x
Blok
rozmywania
A X
Blok
wnioskowania
B k , k 1,...,N
Blok
wyostrzania
y
Napełnianie wiadra
Napełniamy wiadro wodą.
Chcemy zbudować sterownik rozmyty, który dla otrzymanej na
wejściu wysokości wody (h) w wiadrze wyznaczy nam kąt (a) na
zaworze. Im większy kąt, tym szybsze napełnianie wiadra.
Baza reguł:
JEŻELI wiadro jest pełne TO wstrzymaj napełnianie
JEŻELI wiadro jest wypełnione w połowie TO napełniaj wolno
JEŻELI wiadro jest puste TO napełniaj szybko
Napełnianie wiadra (cd)
Nieprecyzyjne określenia występujące w bazie reguł określamy
następującymi zbiorami rozmytymi:
k=1
k=2
k=3
Ak
Bk
Napełnianie wiadra (cd)
W rozważanym przypadku (zmienne):
x – wysokość (h), y – kąt (a)
Ponadto:
n=1, N=3 (bo 3 reguły)
Napełnianie wiadra (cd) - blok rozmywania
Na wejściu sterownik rozmyty otrzymuje aktualną wysokość
wody w wiadrze (sygnał wejściowy): x
Sygnał ten poddajemy operacji rozmywania czyli określamy dla
niego zbiór rozmyty:
1, x x
A' ( x ) ( x x )
0, x x
Zbiór ten będzie „wejściem” bloku wnioskowania.
Napełnianie wiadra (cd) - blok wnioskowania
Baza reguł:
JEŻELI wiadro jest pełne TO wstrzymaj napełnianie
JEŻELI wiadro jest wypełnione w połowie TO napełniaj wolno
JEŻELI wiadro jest puste TO napełniaj szybko
Napełnianie wiadra (cd) - blok wnioskowania
Musimy znaleźć następujące funkcje przynależności:
T
B ( y ) sup { A' ( x ) A B ( x, y )}
1
xX
1
1
2
B 2
3
B 3
T
B ( y ) sup { A' ( x ) A
2
xX
( x, y )}
T
B ( y ) sup { A' ( x ) A
3
xX
( x, y )}
Napełnianie wiadra (cd) - blok wnioskowania
Przyjmijmy, że implikacja jest określona tak jak w modelu
Mamdaniego tzn:
A
k
Bk
( x, y ) min{ Ak ( x ),Bk (y )}
Ponadto załóżmy, że:
T
a b min{ a, b}
Napełnianie wiadra (cd) - blok wnioskowania
Otrzymujemy wówczas:
T
B ( y ) sup{ ( x x ) A
k
x X
k
B k
( x, y )}
sup{min{ ( x x ), Ak B k ( x, y )}}
x X
Ak B k ( x , y ) min{ Ak ( x ), B k ( y )}
Napełnianie wiadra (cd) - blok wnioskowania
Bk
k=1
k=2
k=3
Ak
Bk
Napełnianie wiadra (cd) - blok wyostrzania
Znaleźliśmy już zbiory rozmyte będące „wyjściem” bloku
wnioskowania.
Musimy teraz znaleźć wartość numeryczną kąta
wysokości wody w wiadrze x (wejście sterownika).
Możemy to zrobić na przykład tak:
0,75 a1 1 a2
y
0,75 1
y dla
Baza reguł
Baza reguł (model lingwistyczny) stanowi reprezentacje wiedzy
eksperta o możliwych wartościach zmiennych stanu, o pożądanym
stanie urządzenia, itp.
Przyjmuje się dla potrzeb sterowania, ze przesłanka jak i wniosek
są koniunkcjami prostych faktów rozmytych.
Na bazę reguł składa się wiec zbiór pewnych rozmytych reguł
postaci
JEŻELI (x1 jest A1) I ... I (xn jest An)
TO
(y1 jest B1) I ... I (ym jest Bm),
gdzie Ai,Bj są zbiorami rozmytymi, xi są zmiennymi wejściowymi,
a yj są zmiennymi wyjściowymi modelu lingwistycznego.
Precyzyjniej (dla N reguł):
Rk: JEŻELI (x1 jest A1k) I (x2 jest A2k) I…I (xn jest AnK)
TO
(y1 jest B1k) I (y2 jest B2k) I…I (ym jest BmK)
gdzie: k=1,…,N.
Aik Xi R, i=1,…,n, - zbiory rozmyte
Bjk Yj R, j=1,…,n, - zbiory rozmyte
[x1,…,xn]T=xX1… Xn
[y1,…,ym]T=yY1… Ym
x1,…,xn - zmienne wejściowe i y1,…,ym – zmienne wyjściowe
Założenia:
(1) poszczególne reguły Rk (k=1,…,N) są powiązane ze sobą za
pomocą operatora „lub”.
(2) wyjścia y1,…,ym są od siebie niezależne. Oznacza to, że
reguły mają skalarne wyjście:
Rk: JEŻELI (x1 jest A1k) I (x2 jest A2k) I…I (xn jest Ank)
TO
y jest Bk
gdzie B k Y R.
Zmienne x1,…,xn oraz y mogą przyjmować zarówno wartości
nieprecyzyjne określone słownie (np. „małe”, „średnie”, „duże”) jaki i
wartości liczbowe.
Oznaczmy:
X =X1 X2 … Xn
Ak=A1k A2k … Ank
Powyższą regułę możemy przedstawić jako rozmytą implikację:
R(k): Ak Bk, k=1,…,N
Regułę R(k) możemy interpretować jako relację rozmytą określoną
na zbiorze X Y, tzn:
R(k) X1 X2 jest zbiorem rozmytym o funkcji przynależności
R ( x, y ) A
(k )
k
Bk
( x, y )
Blok rozmywania
Systemy sterowania z logiką rozmytą operują na zbiorach
rozmytych.
Zatem konkretna wartość
x [ x1, x2,..., xn ] X
sygnału wejściowego sterownika rozmytego podlega operacji
rozmywania (ang. fuzzyfiacation), w wyniku której zostaje
odwzorowana w zbiór rozmyty A’ X = X1 X2 … Xn.
Zwykle stosuje się rozmywanie typu singleton
1, x x
A' ( x ) ( x x )
0, x x
Zbiór A’ jest wejściem bloku wnioskowania.
Blok wnioskowania
Przyjmijmy, że na wejściu bloku wnioskowania mamy zbiór
rozmyty A’ X = X1 X2 … Xn.
Znajdziemy odpowiedni zbiór rozmyty na wyjściu z bloku
wnioskowania
Przypadek 1
Na wyjściu otrzymujemy N zbiorów rozmytych B k Y zgodnie z
uogólnioną regułą modus ponens.
Wówczas:
B k A'( Ak Bk ), k 1,...,N
Funkcja przynależności zbioru B k ma postać
T
B ( y ) sup { A' ( x ) A
k
xX
k
B k
( x, y )}
Przykład 1
Przyjmijmy n=2, t-norma jest typu min, rozmyte wnioskowanie
definiuje reguła min oraz iloczyn kartezjański zbiorów określony
jest przez min.
Wówczas:
T
B ( y ) sup { A' ( x ) A
k
xX
k
B k
( x, y )}
sup{min{ A' ( x ), Ak B k ( x, y )}}
xX
sup{min{ A' ( x ),min{ Ak ( x ), B k ( y )}}}
Ponieważ:
xX
A' ( x ) A 'A ' ( x1, x2 ) min{ A ' ( x1),A ' ( x2 )}
A ( x ) A A ( x1, x2 ) min{ A ( x1 ), A ( x2 )}
1
k
k
1
2
k
2
1
2
k
1
k
2
Przykład 1 (cd)
Ostatecznie
B
k
sup {min{ A1' ( x1 ), A2 ' ( x2 ), Ak ( x1 ), Ak ( x2 ), Bk ( y )}}
x1X1,x2 X 2
1
2
Przykład 2
Przyjmijmy n=2, t-norma jest typu iloczyn, rozmyte wnioskowanie
definiuje reguła iloczyn oraz iloczyn kartezjański zbiorów określony jest
przez iloczyn.
Wówczas:
B ( y ) sup{ A' ( x ) A
k
xX
k
B k
( x, y )}
sup{ A' ( x ) Ak ( x ) B k ( y ))}
xX
sup { A1' ( x1 ) A2 ' ( x2 ) Ak ( x1 ) Ak ( x2 ) Bk ( y )}
x1X 1,x2 X 2
1
2
Przypadek 2
Na wyjściu bloku wnioskowania otrzymujemy jeden zbiór rozmyty
B’Y określony wzorem:
N
N
B' B A'( Ak B k )
k
k 1
k 1
Funkcja przynależności zbioru B ' ma postać
S
S
S
B' ( y ) B ( y ) B ( y ) ... B ( y )
1
2
N
gdzie S jest dowolną s –normą i
T
B ( y ) sup { A' ( x ) A
k
xX
k
B k
( x, y )}
Przykład 3
Rozważmy rozmyty system wnioskujący z bazą reguł:
R1: JEŻELI x1 jest A11 I x2 jest A21 TO y jest B1
R2: JEŻELI x1 jest A12 I x2 jest A22 TO y jest B2
Na wejście sterownika podano sygnał
x [ x1, x2 ] X
W wyniku rozmywania typu singleton otrzymujemy zbiory
rozmyte o funkcjach przynależności
A ' ( x1 ) ( x1 x1 )
1
A ' ( x2 ) ( x2 x2 )
2
Przykład 3 (cd)
Wyznaczmy sygnał wyjściowy y sterownika rozmytego.
Jako t -normę przyjmijmy minimum.
Otrzymujemy wówczas:
B ( y )
k
sup {min{ A1' A2 ' ( x1, x2 ), Ak Bk ( x1, x2 , y )}}
x1X1,x2X 2
Ponadto załóżmy, że
A ' A ' ( x1, x2 ) min{ A ' ( x1 ), A ' ( x2 )}
1
2
k
2
min{ ( x1 x1 ), ( x2 x2 )}
Zatem:
B ( y )
1
sup {min{ ( x1 x1 ), ( x2 x2 ), Ak Bk ( x1, x2 , y )}}
x1X1,x2 X 2
Ak Bk ( x1, x2 , y )
Przykład 3 (cd)
Wykorzystując regułę typu minimum
A
k
B k
( x1, x2 , y ) Ak Ak B k ( x1, x2 , y )
1
2
min{ Ak Ak ( x1, x2 ), B k ( y )}
1
przy czym
2
A A ( x1, x2 ) min{ A ( x1 ), A ( x2 )}
k
1
k
2
k
1
k
2
Ostatecznie otrzymujemy
B ( y ) min{min{ A ( x1 ), A ( x2 )},B ( y )}
k
k
1
k
2
k
min{ Ak ( x1 ), Ak ( x2 ), B k ( y )}
oraz
1
2
B ' ( y ) max {min{ A ( x1 ), A ( x2 ), B ( y )}}
k 1,2
k
1
k
2
k
A ( x1 )
1
1
A ( x2 )
1
2
1
1
A
B ( y )
B ( y )
1
1
A21
B
1
B1
A ( x1 )
2
1
2
1
A
A ( x2 )
2
2
y
y
x2
x1
B ( y )
A22
2
B
2
B (y )
2
B2
x1
x1
x2
min
B ' ( y )
B ' ( y ) max {min{ A ( x1 ), A ( x2 ), B ( y )}}
k 1,2
k
1
y
y
x2
k
2
B'
k
y
Przykład 4
Powtórzmy rozumowanie z przykładu 3 ale dla reguły typu iloczyn.
Wówczas:
A
k
B k
( x1, x2 , y ) Ak Ak B k ( x1, x2 , y )
1
2
Ak Ak ( x1, x2 ) B k ( y )
1
2
Ostatecznie otrzymujemy
B ' ( y ) max {min{ A ( x1 ), A ( x2 )} B ( y )}
k 1,2
k
1
k
2
k
A ( x1 )
1
1
A ( x2 )
1
2
1
1
A
B ( y )
B ( y )
1
1
A21
B
1
B1
A ( x1 )
2
1
2
1
A
A ( x2 )
2
2
B ( y )
A22
y
y
x2
x1
2
B
2
B (y )
2
B2
x1
x1
x2
min
B ' ( y )
B ' ( y ) max {min{ A ( x1 ), A ( x2 )} B ( y )}
k 1,2
k
1
k
2
y
y
x2
B'
k
y
Blok wyostrzania
Jak już wiemy na wyjściu bloku wnioskowania otrzymujemy:
k
N zbiorów rozmytych B z funkcjami przynależności B (y )
k
lub
Jeden zbiór rozmyty B ' z funkcją przynależności B ' ( y )
k
Pojawia się problem jak ze zbiorów B uzyskać jedną wartość
y Y
będącą tzw. wartością sterowania.
Procedurę uzyskania y nazywamy wyostrzaniem (ang. defuzzification).
1. Metoda center average defuzzification
Wartość y uzyskujemy za pomocą wzoru
k
k
(
y
)
y
k 1 B
N
y
k
k
(
y
k 1 B )
N
k
gdzie y k jest punktem w którym funkcja B k (y ) ma wartość maksymalną.
B2
B1
B2
B1
y1
y2
y
2. Metoda center of sums defuzzification
Wartość y uzyskujemy za pomocą wzoru
y
N
k 1
yY
N
k 1
B ( y )dy
k
B ( y )dy
k
Y
Jeżeli na wyjściu bloku wnioskowania mamy jeden zbiór B ' wówczas
y wyznaczamy następująco
3. Metoda center of gravity
y
y
B'
( y )dy
Y
Y
B'
( y )dy
Sterowanie suwnicą przenosząca kontenery
Za pomocą suwnicy musimy przenieść kontener z ładunkiem z
jednego miejsca na drugie. Jednak w momencie odkładania go na
miejsce mogą wystąpić zbyt duże kołysania. Celem naszym jest
takie pokierowanie suwnica by nie został zniszczony nasz
ładunek.
Sterowanie suwnicą przenosząca kontenery
Naszymi danymi są: odległość wózka z kontenerem od pozycji
docelowej oraz kąt wychylenia.
Jeżeli wózek z kontenerem jest w dużej odległości od położenia
docelowego suwnica może poruszać się z dużą szybkością.
Jednak gdy zbliża się ona do końca drogi musimy zadbać o
tłumienie kołysania kontenera na linie.
W momencie gdy jesteśmy juz bardzo blisko konieczne jest
łagodne (pozbawione kołysań) doprowadzenie kontenera do
miejsca docelowego.
Sterowanie suwnicą przenosząca kontenery
Baza reguł:
JEŻELI (d = duża) TO (P = duża)
JEŻELI (d = mała) I (kąt = ujemny duży) TO (P = dodatnia średnia)
JEŻELI (d = mała) I (kąt = ujemny mały LUB zero LUB dodatni mały)
TO (P = dodatnia średnia)
JEŻELI (d = mała) I (kąt = dodatni duży) TO (P = ujemna średnia)
JEŻELI (d = zero) I (kąt = dodatni duży LUB mały) TO (P = ujemna
średnia)
JEŻELI (d = zero) I (kąt = zero) TO (P = zero)
JEŻELI (d = zero) I (kąt = ujemny mały) TO (P = dodatnia średnia)
JEŻELI (d = zero) I (kąt = ujemny duży) TO (P = dodatnia duża)
Sterowanie suwnicą przenosząca kontenery
Zmienne lingwistyczne:
ODLEGŁOŚĆ
możliwe wartości: zero, mała, duża
KĄT (WYCHYLENIE)
możliwe wartości: ujemny duży, ujemny mały, zero,
dodatni mały, dodatni duży
MOC
możliwe wartości: ujemna duża, ujemna mała, zero,
dodatnia mała, dodatnia duża
Sterowanie suwnicą przenosząca kontenery
Sterowanie suwnicą przenosząca kontenery
Sterowanie suwnicą przenosząca kontenery
Wynikowa funkcja przynależności
Przykład 8
Załóżmy, że w przy pomocy satelity na pewnym obszarze
dokonane zostały pomiary 3 parametrów , H, .
H
Zakres zmienności parametrów jest następujący
[0,255]
H[0,1]
[0,90]
Na podstawie uzyskanych wyników chcemy dokonać klasyfikacji
terenu:
teren miejski, las, pole uprawne, droga
Blok rozmywania
Przyjmujemy, że z każdą z wielkości , H, związana jest pewna
zmienna lingwistyczna (oznaczmy je przez , H, ).
Możliwe wartości tych zmiennych to:
={bardzo niskie, niskie, średnie, wysokie, bardzo wysokie}
H={bardzo niskie, niskie, średnie, wysokie}
={niskie, średnie, wysokie}
Ponieważ wartości powyższych zmiennych są nieprecyzyjne
zatem z każdą z tych wartości możemy związać pewien zbiór
rozmyty
Blok rozmywania (cd)
Przyjmijmy, że zbiory te są zdefiniowane następująco
Blok wnioskowania
Baza reguł
H
Bardzo wysokie
Średnie
Wysokie lub
bardzo wysokie
Bardzo niskie
Wysokie
Wysokie
Średnie
Wysokie
Średnie/wysokie
Las
Średnie
Średnie
Średnie/niskie
Pola uprawne
Średnie
Niskie lub bardzo
niskie
Niskie
Pola uprawne
Bardzo niskie
Teren
Miejski
Średnie/wysokie
Miejski
Las
Droga
Podprzykład
Na wejściu sterownika otrzymujemy
charakteryzujące każdy piksel na obrazku
3
wartości
liczbowe
x [, H, ]
Przyjmijmy, że
x=[100,0.5,30]
Policzmy stopień przynależności piksela o takich wartościach
parametrów do klasy las.
Z bazy reguł odczytujemy, że interesują nas reguły 3 i 4.
Obliczamy w jakim stopniu rozważany piksel spełnia te reguły.
Np.
reguła(3)=min{wysokie(100), wysokie(0,5)}=min{0.74, 1}=0.74
Stopień przynależności piksela o takich wartościach parametrów
do klasy las obliczmy następująco:
las([100,0.5,30])= max{reguła(3), reguła(4)}
W efekcie piksel o danych wartościach parametrów może należeć
do kilku klas z różnymi stopniami przynależności np.
teren miejski([100,0.5,30])=0,4
las([100,0.5,30])=0,7
pole uprawne([100,0.5,30])=0,5
droga([100,0.5,30])=0,9
Aby otrzymać jednoznaczną przynależność musimy wyostrzyć
wynik otrzymany z bloku wnioskowania.
Możemy przyjąć, że pozostajemy przy największej wartości.
Rezultat
H
Koniec wykładu 4