Soft Computing
Metody Obliczeniowe
Piotr Chebdowski
Piotr Grosicki
Grupa: 312B
Co to jest Soft Computing?
Soft Computing to sposób rozwiązania problemu, w którym dopuszcza się niedokładność, częściową prawdę i aproksymację. Działa na zasadzie ludzkiego umysłu, bardziej przypomina procesy biologiczne niż tradycyjne techniki, które w dużej mierze opierają się na formalnych systemach logicznych. Obserwacja odgrywa większą rolę niż zrozumienie. Głównym założeniem jest tolerancja dla nieprecyzyjności, niepewności, częściowej prawdy i aproksymacji, aby osiągnąć rozwiązanie problemu NP-zupełnego w czasie wielomianowym. Oficjalną częścią nauki stał się w 1990 roku. Podstawowa idea leżąca za soft computingiem w obecnej postaci, ma związek z wcześniejszymi publikacjami, między innymi:
- Zadeh's 1965 paper on fuzzy sets (logika rozmyta)
- the 1973 paper on the analysis of complex systems and decision processes (analiza złożonych systemów i procesów decyzyjnych)
- the 1979 report (1981 paper) on possibility theory and soft data analysis (prawdopodobieństwo i analiza danych )
Włączenie sieci neuronowych i obliczeń genetycznych nastąpiło później.
Ważnym czynnikiem jest zrozumienie poszczególnych elementów. Aktualnie głównymi składnikami soft computingu są:
- fuzzy logic – celem jest zaprojektowanie inteligentnego systemu bazującego na ludzkiej wiedzy, który może być określony przez nasz naturalny język używając instrukcji warunkowych. Na przykład: IF jabłko jest czerwone THEN kup je ELSE nie kupuj go. Ludzka wiedza i fakty w realnym świecie są raczej przybliżone niż dokładne, coś jak: IF jabłko jest czerwone, prawdopodobnie jest słodkie, możliwe że jest słodko kwaśne i raczej nie jest kwaśne. Lub na przykład jaka będzie odpowiedź w przypadku: jabłko jest mniej więcej czerwone, jaki ma zatem smak? W klasycznej logice element należy do zbioru lub nie. Zatem jabłko jest czerwone lub nie jest. Logika rozmyta dopuszcza pewien stopień przynależności co wyrażone jest funkcją przynależności której wartości wahają się między 0-nie należy, a 1-należy.
- sieci neuronowe – częściowo celem jest nauczenie systemu mechanizmu naszego mózgu. System taki składa się z neuronów i połączeń między nimi. Można wykorzystać to np. do klasyfikowania monet wrzuconych do automatu, podając pewne informacje jak średnica i waga, rozpoznawania pisma ręcznego podając pewne wartości pixeli na wejście lub identyfikacja wrogiego samolotu na podstawie danych z radaru. Zadaniem systemu jest więc klasyfikacja obiektów. Wszystko co musimy zrobić to określić wagi połączeń między neuronami. Dostosowujemy system porównując wartości początkowe z losowymi, co nazywa się uczeniem systemu.
- obliczenia ewolucyjne – aby rozwiązać problem musimy znaleźć odpowiedni zestaw parametrów, np. chcemy określić funkcje x ≈ 0 z serią potęg x, naszym zadaniem jest znalezienie dziesięciu odpowiednich wartości ai równania: $f\left( x \right) = \sum_{i = 1}^{10}{a_{i}x^{i}}$. Lub gdy chcemy aby system odpowiednio sklasyfikował obiekt, musimy znaleźć odpowiednie ustawienia wag połączeń. Aby rozwiązać problem, wymagana jest najpierw możliwość stworzenia losowego zestawu rozwiązań. Zestaw ten nazywa się populacją pierwszej generacji. Zazwyczaj rozwiązanie przedstawione jest jako jeden ciąg parametrów. Nazywamy to chromosomem, a każdy z jego elementów to gen. To pierwszy warunek przed rozwiązaniem problemu za pomocą obliczeń ewolucyjnych. Drugim warunkiem jest możliwość określenia jak dobry jest każdy z chromosomów, co nazywamy oceną przydatności. Wybieramy dwa najlepsze chromosomy (rodzice) i tworzymy z nich jeden (potomek) używając biologicznej analogii krzyżowania genów i okazjonalnie podmieniając niektóre geny, co nazywamy mutacją. Proces jest powtarzany dopóki liczba potomków nie stworzy populacji. Z pokolenia na pokolenie będą pojawiać się lepsze chromosomy, aż w końcu będziemy mogli wybrać optymalny.
Ważne do odnotowania jest, że soft computing nie opiera się na samolubnych relacjach, a raczej na związku, w którym każdy rozwiązuje problem odrębną metodą w swojej domenie nie konkurując ze sobą tylko uzupełniając się nawzajem.
Znaczenie Soft Computingu.
Komplementarność różnych metod ma ważną konsekwencję: w wielu przypadkach problem może być rozwiązany efektywniej łącząc poszczególne metody, niż gdyby miały działać osobno. Dobrym przykładem takiej kombinacji są tak zwane „neurofuzzy systems”. Systemy tego typu są coraz częściej widoczne w produktach konsumenckich od klimatyzatorów i pralek do kserokopiarek i kamer. Mniej widoczne, ale być może ważniejsze jest stosowanie ich w przemyśle. W obu przypadkach stosowanie soft computingu prowadzi do systemów z wysokim ilorazem inteligencji. W dużej mierze odpowiada to za szybki wzrost liczby i różnorodności zastosowań soft computingu. Wcześniej można było modelować i analizować tylko stosunkowo proste systemy. Bardziej złożone systemy wykorzystywane w biologii, medycynie, naukach humanistycznych i w podobnych dziedzinach często pozostawały trudne do określenia dla konwencjonalnych metod matematycznych i analitycznych. Dobrym przykładem wykorzystania soft computingu jest rozpoznawanie twarzy, stosowane w kryminalistyce, zabezpieczeniach, do poszukiwania zaginionych osób itp. Kolejnym przykładem jest zapis genetycznych algorytmów do „inteligencji” robota, dzięki czemu może rozpoznawać znaki i kształty, a także szybko planować trasę, co stosowane jest np. w robotach uczestniczących w misjach na marsie.
Istnieje kilka inicjatyw zajmujących się rozwojem soft computingu, jak np. The European Centre for Soft Computing (TECSC) i Berkeley Initiative on Soft Computing (BISC). TECSC to centrum promowane przez Foundation for the Advancement of Soft Computing, zajmuje się badaniem i rozwojem soft computingu. BISC Group składa się blisko z 600 studentów, profesorów, pracowników organizacji prywatnych i publicznych, oraz innych osób, które są zainteresowane soft computingiem lub pokrewnymi dziedzinami. BISC ma już ponad pięćdziesięciu partnerów instytucjonalnych, a ich liczba stale rośnie. W Berkley, BISC stwarza korzystne warunki dla zwiedzających, doktorów i studentów, którzy interesują się soft computingiem i jego zastosowaniami. W głównej mierze, wsparcie dla organizacji pochodzi z firm członkowskich.
Wgląd w przyszłość.
Sukces aplikacji wykorzystujących soft computing oraz szybki wzrost BISC sugerują, iż wpływ soft computingu będzie odczuwalny coraz bardziej w najbliższych latach. Może odegrać szczególnie ważną rolę w nauce i technice, ale może objąć również inne obszary.
Pod wieloma względami soft somputing stanowi znaczącą zmianę paradygmatu w obliczeniach. Zmiany te odzwierciedla fakt, że ludzki umysł w porównaniu do dzisiejszych komputerów posiada niezwykłą zdolność do przechowywania i przetwarzania informacji w sposób nieprecyzyjny i niepewny.
[1] http://www.soft-computing.de/, 07.01.2012
[2] http://en.wikipedia.org/wiki/Soft_computing, 08.01.2012
[3] http://neuro.bstu.by/ai/soft-computing.pdf, 08.01.2012