Pokrętna logika

W ten sposób można by dosłownie przetłumaczyć angielski termin fuzzy logic, który w ostatnim czasie nabiera coraz większego znaczenia w informatyce i technice. Urodzony w stolicy Azerbejdżanu - Baku, Lofti A. Zadeh zapewne nie przypuszczał 30 lat temu, gdy publikował swą teorię, że zrobi ona tak zawrotną karierę. Koncepcja ta różni się od klasycznej logiki zero-jeynkowej, będącej podstawą działania współczesnych komputerów.

W ten sposób można by dosłownie przetłumaczyć angielski termin fuzzy logic, który w ostatnim czasie nabiera coraz większego znaczenia w informatyce i technice. Urodzony w stolicy Azerbejdżanu - Baku, Lofti A. Zadeh zapewne nie przypuszczał 30 lat temu, gdy publikował swą teorię, że zrobi ona tak zawrotną karierę. Koncepcja ta różni się od klasycznej logiki zero-jeynkowej, będącej podstawą działania współczesnych komputerów.

W czym rzecz?

Wyobraźmy sobie, że chcemy kupić książkę. Niech to będzie jakiś słownik. Do dyspozycji mamy konwencjonalnie oprogramowany komputer, w którym zapamiętano informacje o wszelkich dostępnych na rynku słownikach. Chcemy aby książka była dobra i tania. Oczywiście logika działania komputera zmusza nas do sprecyzowania co znaczą słowa "dobry" i "tani" i przełożenia tego na język pojęć zrozumiały dla maszyny cyfrowej.

Przyjmijmy więc, że dobry słownik to taki, który ma więcej niż 50 tys. haseł, a tani jest wtedy gdy kosztuje mniej niż 200 tys. zł. Po chwili na ekranie komputera ukazuje się napis, że takiego słownika nie ma na rynku. Jesteśmy zawiedzeni. A przecież być może są słowniki nieco droższe lub mające mniej haseł, ale za to stosunkowo tanie. Zupełnie inaczej zachowywałby się komputer wyposażony w nieostrą, wielowartościową logikę fuzzy. Zapewne otrzymalibyśmy informację o możliwościach zakupu interesującego słownika.

Powyższy przykład ilustruje typowe zjawisko współczesnej informatyki. Komputery pomagają nam w podejmowaniu decyzji, ale robią to na podstawie logiki dwuwartościowej, ostrej - w przeciwieństwie do logiki "rozmytej", która jest charakterystyczna dla języka naturalnego, a w końcu to za jego pomocą tworzymy często modele sytuacji decyzyjnych.

Jeśli wieszamy na ścianie obraz i druga osoba nam w tym pomaga, słyszymy uwagi typu: "troszeczkę w lewo" czy "bardziej do góry". Ale co to znaczy "troszeczkę" lub "bardziej" w języku komputera sterującego dźwigiem? Jeśli parametry wprowadza człowiek, nie ma wielkiego problemu, ale w zautomatyzowanych procesach technicznych decyzje musi podjąć program mikroprocesorowego sterownika.

Nieostra logika fuzzy bazuje na nieostrej teorii zbiorów. W teorii klasycznej sprawa jest jednoznaczna. Jeśli ktoś mieszka w Krakowie, to należy do zbioru mieszkańców Krakowa. Jeśli mieszka w Łodzi, to należy do innego zbioru - mieszkańców Łodzi.

Element nie może tutaj należeć do 2 zbiorów jednocześnie. A jak jest w praktyce? Do jakiego zbioru należy osoba mieszkająca w Krakowie, ale pracująca czy studiująca w Łodzi? Korzystniej jest tu operować prawdopodobieństwem przynależności elementu do danego zbioru. Tak właśnie konstruuje się funkcje fuzzy, co obrazuje poniższa tabelka.

wzrost w cm 140 150 160 170 180 190 200 210

funkcja fuzzy

1) 0,0 0,0 0,1 0,4 0,8 1,0 1,0 1,0

2) 0,0 0,0 0,0 0,2 0,5 0,9 1,0 1,0

Zbiory fuzzy: 1) "wysoki mężczyzna" i 2) "bardzo wysoki mężczyzna".

Wartości mają charakter przykładowy, funkcje zdefiniowano zgrubnie. Zauważmy, że gdyby za granicę wysokiego wzrostu przyjąć 181 cm, to w logice klasycznej mężczyzna mający 180,9 cm nie byłby już wysoki(!?).

Wróćmy do przykładu ze słownikiem i powiedzmy, że znaleźliśmy książkę za 180 tys. zł (przyjmijmy prawdopodobieństwo dla funkcji "tania" równe 0,9) ale mającą tylko 30 tys. haseł ("dobra" - 0,4). Brać? Stosując operator minimum MIN(0,4 0,9), należałoby powiedzieć nie, ale w logice fuzzy typowym jest używanie operatorów kompensujących - prostym przykładem jest tu średnia geometryczna, co dla podanych wartości daje wynik 0,6, czyli

kupować!

Oczywiście powyższe przykłady nie zastąpią czasu spędzonego nad podręcznikiem algebry gdzie można znaleźć odpowiednią teorię, ale pozwalają dostrzec wagę konsekwencji jakie niesie dla techniki i informatyki uogólnienie ligiki klasycznej, nieostrymi regułami fuzzy. Oto bowiem w sposób niezauwżalny dla przeciętnego użytkownika zaczynają się pojawiać produkty wykorzystujące zasady nowej logiki.

Prym wiodą tutaj Japończycy. Japońskie pralki i , a nawet hamulce w pociągach sterowane są coraz częściej zaprogramowanymi w logice fuzzy. Efekty są jednoznaczne: kamery lepiej "widzą", pralki lepiej piorą, a pociągi hamują tak, że podróżny niemal tego nie zauważa. W laboratoriach testowane są już pierwsze modele samochodów wykorzystujących logikę fuzzy.

Spójrzmy na krótkie kalendarium rozwoju tej nowej metody programowania:

1965 - L. A. Zadeh publikuje pracę Fuzzy Stets (USA)

1973 - sterowniki fuzzy w produkcji cementu (Anglia)

1976 - komercyjny "fuzzy controller" firmy Smith (Dania)

1980 - rozwój zastosowań fuzzy w Japonii

1985 - pierwsze pakiety software'owe fuzzy (Japonia)

1989 - rozwój oprogramowania fuzzy w USA, powstaje Instytut LIFE - Laboratory for International Fuzzy Engineering (Japonia)

1990 - rozwój fuzzy w Europie, powstaje fundacja ELITE (European Laboratory for Intelligent Techniques Engineering)

1993 - pierwsza linia "fuzzy-metra" w Europie (Włochy)

Aktualnie w zastosowaniach nieostrej logiki widać trzy główne obszary:

- fuzzy control

- analiza danych

- systemy ekspresowe.

Fuzzy control to urządzenia automatyki i sterownik mikroprocesorowe w robotyce, pojazdach szynowych, windach, elektronice użytkowej czy systemach regulacji. Klasycznym rozwiązaniem jest tu model kamery wideo NV-1SE firmy Panasonic, telewizory XBR Sony czy też kinie metra w japońskim mieście Sendai i Mediolanie.

W analizie danych metody takie jak fuzzy-cluster czy FPC (fuzzy pattern clasification) wykorzystywane są do rozpoznawania i analizy wzorów oraz tzw. danych heterogenicznych, jak np. pismo ręczne czy spektogramy. Możliwym obszarem zastosowań jest tu także rozpoznawanie mowy czy analiza jakości produkowanych wyrobów.

Systemy ekspertowe wykorzystujące logikę fuzzy znajdują się w początkowej fazie rozwoju. Przewiduje się połączenie fuzzy z możliwościami sieci neuronalnych. Banki zainteresowane są tutaj oprogramowaniem ekspertowym dla szacowania wiarygodności kredytobiorców.

Aktualnie znane są już rozwiązania konstrukcyjne specjalnych procesorów fuzzy a także komercyjne karty PC jak np. fuzzy-microcontroller NLX230 amerykańskiej firmy Neuralogix Inc. (cena karty wraz z dokumentacją i oprogramowaniem ok. 200 USD).

Również na rynku software'owym dostępne są pakiety umożliwiające projektowanie i symulacje rozwiązaź fuzzy. Wiele z nich działa na zasadzie prekompilatora, jak TIL-Shell firmy Infralogic, generując funkcje fuzzy w postaci kodu języka C. Zaawansowany programista może się również pokusić o samodzielne tworzenie pakietów fuzzy w Turbo-Pascalu. Pascalowski UNIT fuzzy to np. 500 linii zwartego kodu, do tego należy doliczyć jeszcze sam program

główny.

Kilkadziesiąt lat temu z pobłażaniem traktowano pierwsze kroki Japończyków w przemyśle motoryzacyjnym. Dzisiaj producentom Fordów i Opli nie jest już do śmiechu - Toyoty i Mazdy są po prostu lepsze. Podobnie dzieje się w innych branżach. Przyszłość pokaże czy Europa i Ameryka na szerszą skalę przejmą nowe metody programowania, wykorzystując logikę fuzzy.¬`%