Jest tu kilka zagadnień dotyczących SI.
Autor przygotowania: Magister inżynier Ireneusz Łukasz Dzitkowski Wałcz, dnia: 08. 02. 2012r.
Kilka zagadnień kluczowych dotyczących Sztucznej Inteligencji i systemów ekspertowych.
Systemy ekspertowe – programy komputerowe, które rozwiązują specjalistyczne
problemy z pewnej dziedziny, zastępując eksperta - człowieka.
Na podstawie zgromadzonej wiedzy potrafią również wnioskować i podejmować decyzje.
Ogólnie zalicza się je do dziedziny zwanej „sztuczną inteligencją”.
Podział systemów ekspertowych (ze względu na możliwość ingerencji człowieka w produkowane
przez system rozwiązanie):
-systemy doradcze – podpowiadają rozwiązanie pomagając podjąć decyzję człowiekowi –
prezentują rozwiązanie jakiegoś problemu, ale do użytkownika należy jego ocena, oraz to czy je
zaakceptuje, czy odrzuci;
-podejmujące decyzję bez ingerencji i kontroli człowieka – stosowane do sterowania
skomplikowanymi urządzeniami w warunkach wykluczających
lub mocno ograniczających
możliwości człowieka;
-systemy krytykujące – dokonują analizy pewnego problemu i jego rozwiązania, a następnie
komentują to rozwiązanie;
System ekspertowy składa się z następujących, niezależnych fizycznie, lecz
współpracujących ze sobą, elementów:
-baza wiedzy – znajdują się w niej wszelkie informacje z zakresu wybranej dziedziny: wiedza
faktograficzna (fakty), wiedza o wnioskowaniu (zbiór reguł),
wiedza o sposobach rozwiązywania problemu (meta - wiedza) – musi być ona zapisana
w postaci sformalizowanej, zrozumiałej dla mechanizmu wnioskującego i pozwalającej
na prześledzenie sposobu dojścia systemu do rozwiązania
-maszyna wnioskująca – na podstawie zgromadzonej wiedzy wyszukuje rozwiązanie postawionego
problemu
– jest ona oddzielona od bazy wiedzy,
dzięki czemu działa tak samo w systemach ekspertowych dla
dowolnej dziedziny jak i w szkieletowych systemach ekspertowych; algorytm wyszukiwania
zawiera szereg strategii przeszukiwań, heurystyk i metod wnioskowania – strategie wyznaczają
kolejne kroki przeszukiwań, heurystyki pomagają zoptymalizować przestrzeń poszukiwań,
a metody decydują w jaki sposób zachodzi proces myślenia (wnioskowane wstecz, w przód, czy
inne);
-procedury objaśniania – objaśniają strategię wnioskowania, sposób dojścia do rozwiązania i
pokazują dokładniejsze dane o rozwiązaniu;
-interfejs do porozumiewania się z użytkownikiem – umożliwia komunikację człowieka z systemem
(pracę interaktywną) – służy do zasięgania informacji u użytkowania, przedstawiania
wygenerowanego wyniku oraz udzielania wyjaśnień na temat procesu wnioskowania – konstrukcja
i wygląd interfejsu zależy od języka programowania, za pomocą którego stworzono system
ekspertowy oraz systemu operacyjnego, w którym on działa;
-moduły zdobywania i modyfikacji wiedzy – pozyskiwanie wiedzy pozwala na automatyczne
ulepszanie systemu;
Systemy ekspertowe najlepiej nadają się do zastosowania w tych dziedzinach,
które są słabo sformalizowane, w których trudno jest sformułować teorie oparte na matematyce lub ścisłe
algorytmy działania.
Przykładami mogą być: rolnictwo,medycyna, geologia, prawo, zarządzanie,
robotyka, chemia. Do rozwiązywania problemów, dla których istnieją algorytmy numeryczne,
stosowanie systemów ekspertowych jest nieopłacalne, gdyż programy algorytmiczne są na ogół
szybsze i prowadzą do optymalnego rozwiązania, podczas gdy systemy ekspertowe nie muszą
prowadzić do rozwiązań optymalnych a jedynie akceptowalnych przez użytkownika systemu.
Niektóre istniejące systemy ekspertowe:
-MACSYMA – służy do rozwiązywania problemów matematycznych i całkowania;
wykorzystywany w MIT przez fizyków plazmy, pozyskiwanie wiedzy przez przeprogramowanie;
uznawany za bardzo efektywny;
-DENDRAL – służy do identyfikacji związków chemicznych, stosowany w USA, pozyskiwanie
wiedzy przez przeprogramowanie, uznawany za bardzo efektywny;
-PROSPECTOR – służy do interpretacji danych dotyczących zasobów geologicznych
(poszukiwanie złóż minerałów), mocno rozbudowany system pozyskiwania wiedzy, rezultaty
dobre;
-REACTOR – służy do diagnostyki siłowni jądrowych; uznany za dobry;
System ekspertowy może być tworzony przy użyciu dowolnego języka programowania (Basic,
Algol, Fortran, Pascal, C, C+ i in.), jednakże tworzenie tworzenie systemu w tych językach od
podstaw może być bardzo czasochłonne, stąd opracowano specjalne języki programowania
przeznaczone do tworzenia systemów ekspertowych, np.:
-LISP – LISt Processing
-PROLOG – PROgrammation LOGique
-OPS5 – Official Production System
-CLIPS – C Language Integrated Production System
Zawierają one w sobie maszynę wnioskującą (z wyjątkiem LISP-u), a także wyspecjalizowane
narzędzia ułatwiające tworzenie systemu, zawierające interfejs użytkownika, blok pozyskiwania
wiedzy, blok wyjaśnień i inne. Takie narzędzia są nazywane „systemami szkieletowymi” – można
je traktować jako systemy ekspertowe z pustą bazą wiedzy, której zapełnienie zmienia je w
konkretny system ekspertowy. Takie podejście znakomicie ułatwia i przyśpiesza tworzenie
systemów ekspertowych.
Test Turinga (angielskie Turing test) to eksperyment definiujący “maszynę myślącą”,
zaproponowany przez A. Turinga. W myśl testu Turinga maszynę można uznać za naśladującą
dostatecznie dobrze procesy myślowe, jeśli człowiek prowadzący z nią dialog (nie poinformowany
o tym, że rozmawia z maszyną), nie będzie w stanie odróżnić rozmowy z maszyną od rozmowy z
drugim człowiekiem.
PC-Shell jest pierwszym polskim - w pełni komercyjnym - szkieletowym systemem
ekspertowym. PC-Shell powstał jako rezultat wcześniejszych doświadczeń uzyskanych podczas
budowy systemu PC-Expert (1985-87) oraz Diagnosta MC 14007 (1988). PC-Shell otrzymał
dwa wyróżnienia na Międzynarodowych Targach Oprogramowania SOFTARG w roku 1994 oraz
1996. W roku 1997 system otrzymał nagrodę II-go stopnia w konkursie na najlepszy program
targów SOFTARG. System był wielokrotnie prezentowany na konferencjach i seminariach,
zarówno w kraju jak i za granicą.PC-Shell jest dziedzinowo-niezależnym narzędziem- służącym do
budowy systemów ekspertowych. Może być zastosowany w dowolnej dziedzinie:
począwszy od bankowości i finansów a na zastosowaniach technicznych kończąc. Typowe obszary
zastosowań systemu PC-Shell to:
systemy doradcze i wspomagania decyzji,
-dydaktyka (wyższe uczelnie i szkoły średnie).
System może być między innymi wykorzystywany w takich dziedzinach jak:
-analizy finansowe (ekonomiczne),
-analizy wniosków kredytowych w bankach,
-doradztwo podatkowe,
-dzięki otwartej architekturze może być łatwo zintegrowany z Systemami Informowania
Kierownictwa, służąc np. do automatycznej analizy wskaźników ekonomicznych,
- technika, np. do analizy danych pomiarowych.
Dziedzinowa niezależność systemu PC-Shell oznacza, że nie dziedzina a raczej klasa
problemów decyduje o powodzeniu zastosowania tego systemu. System PC-Shell jest szczególnie
predysponowany do rozwiązywania następujących klas problemów:
• analiza (interpretacja) danych
• klasyfikacja,
• diagnostyka,
• finanse i bankowość,
• inwestycje,
• marketing,
• technika,
• dydaktyka,
• komponent dla systemów SIK, analizatorów, arkuszy kalkulacyjnych,
• komponent programów edukacyjnych.
PC-Shell jest dziedzinowo niezależny, stąd zakres jego zastosowań jest bardzo szeroki.
Bowiem nie dziedzina a klasa problemów decyduje o powodzeniu zastosowania systemu
PC-Shell.
System PC-Shell jest systemem o architekturze hybrydowej, tj. łączącej w sobie różne
metody rozwiązywania problemów i reprezentacji wiedzy. Interesującą właściwością systemu
PC- Shell jest między innymi wbudowany, w pełni zintegrowany, symulator sieci neuronowej. Inną
istotną cechą systemu PC-Shell jest jego struktura tablicowa, co umożliwia podzielenie dużej
bazy wiedzy na mniejsze moduły - zorientowane tematycznie, tzw. źródła wiedzy.
Dzięki hybrydowej architekturze, w systemie PC-Shell występują obok siebie różne metody
reprezentowania wiedzy:
• deklaratywna w formie reguł i faktów,
• trójka: obiekt, atrybut, wartość,
• imperatywna w formie programu algorytmicznego,
• wiedza w formie tekstów,
• wiedza rozproszona w sieci neuronowej,
• możliwość podzielenia bazy wiedzy na pewną liczbę źródeł wiedzy.
System PC-Shell jest wyposażony we własny język reprezentacji wiedzy. Język ten dzięki
przyjętym rozwiązaniom, w tym blokowej strukturze, cechują:
• elastyczność,
• czytelność,
• pełne rozdzielenie wiedzy eksperckiej i procedur sterowania,
• łatwość nauczania.
Graf jest zbiorem połączonych ze sobą wierzchołków. Są one podstawowym obiektem
rozważań teorii grafów. Za pierwszego teoretyka i badacza grafów uważa się Leonarda
Eulera.
Grafy dzielimy na:
- prosty, nieskierowany: jest to uporządkowana para (V, E), gdzie V jest niepustym
zbiorem, zaś E rodziną dwuelementowych podzbiorów zbioru wierzchołków V,
zwanych krawędziami.
- skierowany, digraf: jest to uporządkowana para (V, A), gdzie V jest zbiorem
wierzchołków, zaś A jest zbiorem uporządkowanych par różnych wierzchołków ze
zbioru V, zwanych krawędziami skierowanymi.
- mieszany: jest to uporządkowana trójka (V, E, A) zdefiniowana jak wyżej, czyli może
zawierać zarówno krawędzie jak i krawędzie skierowane.
Metody przeszukiwania
Bardzo istotne przy badaniu grafów są algorytmy przeszukiwania, które polegają na
odwiedzaniu wierzchołków w wyznaczonym celu. Może nim być sprawdzenie czy istnieje
połączenie pomiędzy wierzchołkami lub znalezienie najkrótszej drogi pomiędzy nimi.
Podstawowe algorytmy to:
1. BFS (Breadth First Search) - algorytm przeszukiwania wszerz
Algorytm zaczyna od korzenia i odwiedza wszystkie połączone z nim węzły. Następnie
odwiedza węzły połączone z tymi węzłami i tak dalej, aż do odnalezienia celu.
Algorytm BFS:
1. Utwórz kolejkę.
2. Zapisz do kolejki wierzchołek początkowy.
3. Oznacz wierzchołek S jako odwiedzony.
4. Dopóki kolejka jest niepusta wykonuj:
4.1.Pobierz z kolejki wierzchołek i nazwij go S.
4.2.Jeśli S jest poszukiwanym wierzchołkiem końcowym, to
zwróć SUKCES i zakończ algorytm.
4.3.Jeśli S nie jest poszukiwanym wierzchołkiem końcowym, to
zapisz do kolejki wszystkie nieodwiedzone wierzchołki sąsiadujące z S.
5. Zwróć BRAK ROZWIĄZANIA i zakończ algorytm.
Ponieważ trzeba utrzymywać listę węzłów które się już odwiedziło, złożoność pamięciowa
przeszukiwania wszerz wynosi O(V + E), gdzie V to liczba węzłów, a E to liczba krawędzi w
grafie. Z powodu tak dużego zapotrzebowania na pamięć przeszukiwanie wszerz jest
niepraktyczne dla dużych danych.
Przeszukiwanie wszerz (ang. Breadth-first search, w skrócie BFS) – jeden z najprostszych
algorytmów przeszukiwania grafu. Przechodzenie grafu rozpoczyna się od zadanego wierzchołka s i
polega na odwiedzeniu wszystkich osiągalnych z niego wierzchołków. Wykorzystywany jest do
odnajdywania najkrótszej drogi w grafie. Wynikiem działania algorytmu jest także drzewo
przeszukiwania wszerz o korzeniu w s, zawierające wszystkie wierzchołki do których prowadzi
droga z s. Algorytm działa prawidłowo zarówno dla grafów skierowanych jak i nieskierowanych
Przeszukiwanie w głąb (ang. Depth-first search, w skrócie DFS) – jeden z algorytmów
przeszukiwania grafu. Przeszukiwanie w głąb polega na badaniu wszystkich krawędzi
wychodzących z podanego wierzchołka. Po zbadaniu wszystkich krawędzi wychodzących z danego
wierzchołka algorytm powraca do wierzchołka, z którego dany wierzchołek został odwiedzony.
Źródło: Na podstawie dostępnych treści przygotował Mgr.inż.Ireneusz Łukasz Dzitkowski