Wersja do oddania, Rozdzial 2 - Systemy ekspertowe, Systemy ekspertowe


  1. Systemy ekspertowe

Wśród licznych znanych obecnie narzędzi sztucznej inteligencji na szczególną uwagę zasługują systemy ekspertowe. Ta szczególna uwaga winna im być poświęcona głównie z tego powodu, że są to aktualnie najbardziej popularne w praktyce narzędzia sztucznej inteligencji. W istocie są to jedyne narzędzia, które zyskały na tyle powszechną aprobatę użytkowników, że obsługujące je programy stanowią dosyć chętnie kupowany produkt komercyjny (także do użytku domowego).

    1. Systemy ekspertowe i ich zastosowania

      1. Podstawowe informacje na temat systemów ekspertowych.

        1. Geneza i brzmienie nazwy systemów ekspertowych

Na wstępie rozdziału poświęconego systemom ekspertowym należy sprecyzować co rozumie się przez to określenie. Nazwa “systemy ekspertowe” używana na rynku polskim pochodzi z języka angielskiego. W oryginale odpowiednie programy nazywają się “Expert Systems”, ponieważ to właśnie w USA powstały pierwsze takie systemy. W Polsce funkcjonują jeszcze ciągle jeszcze trzy „konkurujące” określenia na te systemy, a mianowicie “systemy eksperckie” (najbliższe tłumaczenie z języka angielskiego, ale brzydko brzmiące), “systemy ekspertowe” oraz “systemy doradcze”. W pracy tej będzie używana nazwa “systemy ekspertowe” jako, że wydaje się najbardziej swojsko brzmiąca - chociaż jest to bez wątpienia kalka językowa pochodząca od angielskiego źródłosłowu. Używany w dalszym tekście skrót do tej nazwy to SE. Natomiast pomysł zastępowania nazwy „ekspertowe” poprzez „doradcze” budzi w literaturze przedmiotu kontrowersje. System ekspertowy jest systemem doradczym, ale niekoniecznie system doradczy musi być systemem ekspertowym. Wiemy już zatem, skąd się bierze nazwa rozważanej tu klasy programów, ale jaka treść się wiąże z tą nazwą? Potrafimy dosyć dobrze zrozumieć, kim jest człowiek, o którym mówimy „ekspert”, ale co kryje się pod hasłem “system ekspertowy”, jeśli system ten jest komputerowym programem?

Najlepiej posłużyć się analogią. System ekspertowy, jest to taki program komputerowy, który może robić to samo, co człowiek-ekspert.

No dobrze - a co takiego może zrobić ekspert? Ustalmy najpierw, że jako eksperta można określić człowieka, który nabył dogłębną wiedzę teoretyczną o danej dziedzinie poprzez staranne studia, albo wiedzę praktyczną poprzez długoletnią pracę praktyczną (zastosowaniową). Od eksperta wymaga się wiedzy bardzo zaawansowanej, co powoduje, że ekspertem można być wyłącznie w pewnym wąskim wycinku wiedzy. Przy rozwiązywaniu danego problemu ekspert inteligentnie korzysta ze swojej wiedzy. Zwykle dobry ekspert jest obdarzony intuicją i ma dar stosowania tzw. skrótów myślowych i innych "tricków", pozwalających mu na "przeskoki" w czasie prowadzonego rozumowania. Ten fakt umożliwia ekspertowi wybór najkrótszych dróg dojścia do zadanego celu. Aby zdefiniować i jakoś nazwać podane właściwości umysłu eksperta, mówi się zwykle, że posiada on dodatkowo wiedzę heurystyczną. Dobry ekspert podaje dobre rozwiązania w stosunkowo krótkim czasie. Co więcej jest on zdolny do udzielania wyjaśnień odnośnie swojego rozumowania.

Jeśli chodzi o ekspertyzy, które pochodzą od eksperta, to są one stale doskonalone poprzez ćwiczenia, szkolenie i doświadczenie. Wiedzę na temat samego sposobu formułowania ekspertyz nazywa się wiedzą płytką, dlatego że składa się ona wyłącznie z dosyć prostych, indywidualnie doskonalonych metod, których specjaliści nauczyli się dla lepszego wykonywania swych czynności. Poza tą wiedzą płytką eksperci uznawani w poszczególnych dziedzinach mają zazwyczaj tak zwaną wiedzę głęboką, na którą składa się głównie profesjonalne wykształcenie oraz własna (często wieloletnia) praktyka eksperta. Ta część wiedzy, nawet jeśli jest czerpana z praktyki, to jednak zawsze oparta jest na teorii, czyli podstawowych zasadach, prawach, wytycznych, itd. W konsekwencji wiedza taka nazwana jest głęboką i jest ona bardziej ogólna od wiedzy płytkiej.

W sztucznym systemie ekspertowym, który jest po prostu odpowiednim programem, wiedza zawsze pochodzi z zewnątrz. Najczęściej wiedzę, potrzebną do „napełnienia” systemu ekspertowego pozyskuje od eksperta-człowieka lub zespołu ekspertów. Jest to tzw. wiedza prywatna ekspertów, którą pozyskują i odpowiednio preparują (w celu wprowadzenia do sztucznego systemu ekspertowego) specjalnie kształceni specjaliści nazywani inżynierami wiedzy. Ich rola jest bardzo ważna i trudna zarazem, gdyż w swojej pracy muszą oni bardzo mocno opierać się na znajomości procesów kognitywnych człowieka (żeby we właściwy sposób wydostać wiedzę od ekspertów), a także muszą znać dokładnie techniki odwzorowywania wiedzy (nie danych ani informacji, ale właśnie wiedzy!) w systemach komputerowych - co jest trudną i złożoną sztuką!

Głównym źródłem wiedzy dla dobrego systemu ekspertowego są zawsze wskazówki, reguły i informacje pochodzące od odpowiednio wybranych ludzi, ale ponadto potrzebna systemowi wiedza może być pozyskiwana z książek, katalogów, informacji fabrycznych, itp. (jako tzw. wiedza publiczna).

Systemy ekspertowe starają się naśladować decyzje eksperta-człowieka w konkretnej dziedzinie i potrafią to robić wielokrotnie, w powtarzalny i przyjazny dla użytkownika sposób. Ich rola jest dokładnie taka sama jak rola człowieka eksperta - to znaczy użytkownik szuka z ich pomocą wysublimowanej i dostosowanej do okoliczności wiedzy (w postaci rady na zadany temat) a nie samych tylko „gołych” informacji. Dlatego też systemy takie nazwano ekspertowymi.

Działanie systemu ekspertowego zależy przede wszystkim od jakości pozyskanej dla niego wiedzy, która powinna odzwierciedlać rzeczywistą wiedzę eksperta; w mniejszym stopniu zależy od reprezentacji tej wiedzy czy od użytego sposobu wnioskowania.

Aby system ekspertowy był wygodny w użyciu musi także reprezentować wiedzę płytką. Zaletą posiadania przez komputer tego rodzaju wiedzy jest fakt, że program komputerowy wyposażony w taką wiedzę zachowuje się w podobny sposób, jak człowiek-ekspert. Natomiast wadą takiego podejścia jest to, że wiedza płytka dotyczy metod bardzo szczegółowych, o specjalnych zastosowaniach, trudnych do uogólnienia. Dlatego też systemy ekspertowe robione są zawsze dla specyficznych, wąsko zdefiniowanych problemów. Dla przykładu typowe ekonomiczne dziedziny dla tych systemów to: analiza kredytów, analiza finansowa, inwestycje giełdowe, itp. Nie ma więc pojedynczego systemu ekspertowego, który mógłby pełnić rolę eksperta finansowego w dowolnym obszarze ekonomii, ale do każdego obszaru da się zbudować oddzielny system, skuteczny w danej wąskiej dziedzinie. Dzięki zawężeniu obszaru zastosowań systemu osiągnięto dobre rezultaty, ale jednak za cenę specjalizacji systemu w kilku wąskich zadaniach i jego zupełnej nieadekwatności do jakichkolwiek innych zadań, nawet pokrewnych. Dlatego obecnie istnieje tendencja do rozwijania także systemów ekspertowych zawierających bardziej ogólną, teoretyczną wiedzę, do której system może wracać, gdy napotka problemy, które nie mogą być rozwiązane dzięki wiedzy płytkiej.

0x08 graphic

Rys. 10. Struktura i działanie systemu ekspertowego (Źródło: opracowanie własne).

Termin systemy ekspertowe drugiej generacji stosowany jest do określania systemów, które zawierają eksperymentalną wiedzę płytką i teoretyczną wiedzę głęboką. Koncepcja najbardziej użytecznych w praktyce Systemów Wspomagania Decyzji z Bazą Wiedzy dotyczy właśnie systemów drugiej generacji, ponieważ stosuje się w nich kombinacje reprezentacji wiedzy w postaci algorytmicznej i w formie bazy wiedzy.

        1. Początki systemów ekspertowych.

Lata pięćdziesiąte i sześćdziesiąte XX wieku były świadkiem oszałamiających wręcz sukcesów w badaniach nad sztuczną inteligencją (SI), nurtem zapoczątkowanym słynnym pytaniem Alana Turinga „Czy maszyny mogą myśleć?”. Komputerowe rozpoznawanie obrazów, rozgrywanie gier, tłumaczenie tekstów z jednego języka na inny czy rozwiązywanie problemów logicznych i matematycznych święciło wówczas triumfy. Wynikiem i kontynuacją tamtych badań - z czego niejednokrotnie nie zdajemy sobie sprawy - są dzisiejsze programy sterujące pociskami rakietowymi bądź rozpoznające pismo, gry komputerowe, słowniki (np. Collinsa) czy programy wspomagające procesy decyzyjne bądź dokonujące obliczeń matematycznych i statystycznych.

Postępy w pracach skłaniały wielu uczonych w latach siedemdziesiątych ubiegłego stulecia do wydawania bardzo optymistycznych sądów - za pięć, siedem, a góra za piętnaście lat komputery będą inteligentniejsze od człowieka, a większość dziedzin zostanie zredukowanych do badań nad sztuczną inteligencją. Upływ czasu okazał się nieubłaganym testem dla zbytnich optymistów - żyjemy w 2003 roku i wiemy, że nie sprawdziły się nadzieje z lat siedemdziesiątych na maszynowe zduplikowanie bądź prześcignięcie możliwości ludzkiego umysłu.

Pierwsze systemy ekspertowe powstały w latach sześćdziesiątych. Ich twórcy, zwolennicy tzw. GOFAI (ang. Good Old Fashioned Artificial Intelligence - Dobra Staromodna Sztuczna Inteligencja) uważali, że mózg ludzki operuje na symbolach i działa zgodnie z pewnymi regułami. Stąd wywnioskowano, że stworzywszy odpowiednią dużą liczbę reguł oraz wystarczająco sprawną maszynę wnioskującą, można skutecznie naśladować proces rozumowania ludzkiego umysłu. Projekt GOFAI zakładał, że można odgórnie podzielić inteligencję na moduły, reprezentujące różne dziedziny wiedzy i różne rodzaje informacji, a następnie można spowodować, aby te moduły komunikowały się między sobą i przeprowadzały (w sposób czysto automatyczny!) proces wnioskowania. Zwolennicy GOFAI poczynali sobie bardzo zuchwale, przedstawiając na przykład takie opinie: “Coraz więcej dowodów świadczy o tym, że sprawne działanie intelektu zależy wyłącznie od przeszukiwania dużych składnic wiedzy, przedstawionej w postaci symbolicznej”. Jednakże, jak się wkrótce okazało, natura sztucznego intelektu absolutnie nie miała ochoty być aż tak bardzo prosta. Systemy GOFAI zupełnie nie radziły sobie z informacją dwuznaczną, ani nie mogły się posługiwać - tak bardzo przydatną w codziennych działaniach ludzkich - wiedzą zdroworozsądkową. W 1972 roku filozof Hubert Dreyfus opublikował książkę pod znamiennym tytułem „What Computers Can't Do?” (Czego nie potrafią komputery?). Jego filozoficzne analizy wykazywały coraz większą ograniczoność sztucznej inteligencji wobec rosnącego stopnia złożoności zagadnienia; w wypadku tzw. zadań otwartych, związanych z tworzeniem koncepcji, SI była w ogóle bezradna. Uznano więc, że niemożliwe jest skonstruowanie za ich pomocą sztucznego mózgu i pozostawiono im dziedzinę tak zwanych problemów dobrze ustrukturalizowanych (a więc w istocie łatwiejszych), ale za to praktycznie użytecznych. Właśnie z tej kapitulacji idei GOFAI wobec złożoności ludzkiego intelektu bierze swój początek cała seria programów, które dotyczą automatycznego rozumowania (opartego na wiedzy) w obszarach dziedzin wiedzy bardzo konkretnych, ale jednocześnie niezwykle obszernych. Przydatność tych programów potwierdziła się wszędzie tam, gdzie zachodzi potrzeba podejmowania wielu decyzji, dotyczących podobnych, ale nie identycznych problemów, takich jak rozpoznawanie chorób, finanse, planowanie produkcji, eksploatacja maszyn i urządzeń itp. Właśnie te programy tworzą obecnie rozważaną tu klasę systemów ekspertowych.

Jednym z pierwszych udanych systemów ekspertowych był - uważany dzisiaj za klasyczny - system MYCIN, który został opracowany w USA w latach siedemdziesiątych dwudziestego wieku. Nazwa tego programu pochodzi od końcówki zwyczajowo dodawanej w języku angielskim do nazw antybiotyków (np. streptomycin - streptomycyna). System MYCIN, wzbogacany i rozbudowywany w ciągu całych lat 80. i 90., dobrze służył jako “doradca” dla lekarzy w zakresie diagnostyki i antybiotykoterapii bakteryjnych chorób krwi. Określenie, że system był “doradcą” wskazuje na to, że dla każdego rozważanego pacjenta system sugerował lekarzowi, jaki jest najbardziej prawdopodobny rodzaj jego choroby i przedstawiał propozycję jej leczenia; natomiast lekarz mógł to uznać za słuszne, lub nie - podejmując własną decyzję. Było to bardzo ważne, ponieważ z decyzjami medycznymi wiąże się określony zakres odpowiedzialności, a nie można przecież pozwać do sądu komputera. W programie MYCIN zakodowana była cała wiedza obszernego konsylium lekarskiego z zakresu antybiotykoterapii zakażeń krwi. Przy pierwszym testowaniu tego systemu (w końcu lat 70-tych) wykonywano wiele sprawdzianów. Między innymi dane o chorobie krwi przekazywano do systemu MYCIN i przesyłano równolegle do konsylium lekarskiego w innym ośrodku medycznym. Oceny obu wyników dokonywała specjalna komisja uznanych ekspertów medycznych. Wynik był częściowo zdumiewający; w około 70% przypadków wyniki systemu MYCIN były trafniejsze; nie mówiąc o tym, że były osiągalne znacznie szybciej (zaleta szybkości działania komputerów). Wykaz wszystkich właściwości tego ciekawego systemu można znaleźć w pracy J. Mulawki.

      1. Ogólne omówienie systemów ekspertowych.

        1. Definicja systemu ekspertowego.

Na początek podamy kilka definicji systemu ekspertowego (proponowanych przez różnych autorów) dla uzyskania ogólnej orientacji o tych systemach.

Jak widać jedne definicje są ogólniejsze, inne bardziej szczegółowe. Ze wszystkich jednak wynika ważność udziału prawdziwego (ludzkiego) eksperta przy tworzeniu systemu ekspertowego oraz gromadzenie jego wiedzy w strukturze systemu (w tak zwanej bazie wiedzy). Nie chodzi więc o to, aby komputer okazał się mądrzejszy od człowieka, ale żeby go zastąpił w sytuacji, gdy ekspert nie może być obecny lub koszty porady eksperta są zbyt wysokie. Dzięki użyciu sytemu ekspertowego laik mógł uzyskać fachową poradę taniej. Szybciej i wygodniej, niż poszukując żywego eksperta. System ekspertowy jest bowiem programem, który na podstawie wprowadzonej wiedzy potrafi wyciągać wnioski równoznaczne z wnioskami ludzkiego eksperta.

Ogólnie mówiąc celem tworzenia systemu ekspertowego jest skomputeryzowanie procesu rozwiązywania problemów na poziomie wysokiej klasy eksperta. Dzięki temu wiedza eksperta stanie się łatwo dostępna. Poprzez konsultacje z systemem ekspertowym osoba, która ma małe umiejętności w rozwiązywaniu pewnych zadań, może w praktyce rozwiązywać różne problemy i tym samym odciążać eksperta, który musiałby ten problem sam rozwiązać. Jest to w sumie korzystne, bo (jak wiadomo) ekspertów jest mało, a zapotrzebowanie na ich wiedzę jest bardzo duże i stale rośnie. Poza tym sam ekspert może wykorzystywać system ekspertowy do poszerzania swojej wiedzy i rozumowania dzięki tzw. sprzężeniu zwrotnemu, o czym będzie jeszcze dalej mowa.

Systemy ekspertowe mogą zmniejszyć różnicę w jakości podejmowanych decyzji między ekspertami a osobami rzeczywiście rozwiązującymi problemy czy decydentami w organizacji. Jeżeli, dla przykładu, bank zatrudnia kilku wysokiej klasy ekspertów od kredytów, którzy pracują w centrali banku lub w kilku dużych oddziałach, oraz wielu pracowników, którzy obsługują klientów we wszystkich placówkach banku, to wiedza odnośnie polityki udzielania kredytu, pobrana od tych kilku posiadanych ekspertów, może być poprzez SE skierowana do każdego pracownika banku, który jej aktualnie potrzebuje. Fakt ten powoduje decentralizację podejmowania decyzji bez wzrostu ryzyka, a przy znacznych korzyściach. Sam ekspert może też zresztą wiele skorzystać po zapoznaniu się z analizą przypadków dokonanych przez system ekspertowy, ponieważ z reguły baza wiedzy programu komputerowego powstaje jako wypadkowa opinii wielu specjalistów. Ekspert może więc tą metodą skonfrontować swoją wiedzę z wiedzą swoich „konkurentów”, samemu nie wystawiając się bezpośrednio na ich oceny i ewentualną krytykę. Jest to psychologicznie sytuacja bardzo wygodna i w sumie korzystna.

        1. Podstawowe cechy, funkcje, właściwości oraz zalety systemów ekspertowych.

Podobnie jak wszystkie inne systemy informatyczne, tak i systemy ekspertowe mają swoje szczególne cechy charakterystyczne. Do ich podstawowych cech należą:

Z kolei co się tyczy podstawowych funkcji realizowanych przez systemy ekspertowe to wyróżnia się:

Biorąc pod uwagę właściwości systemów ekspertowych rozpatrywanych z punktu widzenia użytkownika, należy głównie zwrócić uwagę na:

Jest jeszcze inna uniwersalność, która dotyczy możliwości rozwiązywania zadań z wielu różnych dziedzin wiedzy na podstawie “strukturalnego podobieństwa reguł wnioskowania”. Na razie jest ona jeszcze nie osiągalna. Jednak dalsze badania nad sztuczną inteligencją mogą doprowadzić do tworzenia takich systemów, które już teraz są określane jako metasystemy.

Przykładem oceny złożoności systemu jest jego ocena poprzez liczbę reguł wnioskowania, wielkość bazy danych itp. I tak biorąc pod uwagę liczbę reguł wyróżnia się systemy ekspertowe:

Obecnie nie stosuje się więcej niż 10 000 reguł, ponieważ występują wówczas trudności w przeszukiwaniu tak dużych baz wiedzy.

W SE pojawia się problem niesprzeczności wyników uzyskiwanych w danym etapie wnioskowania z faktami zawartymi w bazie wiedzy. Wynikiem wykrycie sprzeczności jest zmiana drogi poszukiwania w drzewie rozwiązania. Występuje zatem w strukturze systemu tzw. moduł niesprzeczności, który ma także zastosowanie w analizowaniu przez system jego własnego zachowania. Potrzebna jest przy tym możliwość rekonstrukcji pewnego ciągu wnioskowania.

Taki ścisły pomiar ilościowy zdolności systemu do autoanalizy nie jest łatwy. Należy też pamiętać, że nie zawsze autoanaliza jest możliwa czy potrzebna. Przykładem takiej sytuacji są systemy ekspertowe czasu rzeczywistego, które muszą szybko reagować na zmienne warunki otoczenia i prowadzenie przez nie dialogu z użytkownikiem jest niemożliwe. Czasami także wynik dostarczany przez system jest dla człowieka zrozumiały i nie potrzebuje on dodatkowych wyjaśnień. Waga wyjaśnień rośnie przede wszystkim wtedy, gdy koszt przyjęcia błędnego rozwiązania jest wysoki.

Główne zalety używania systemów ekspertowych można ująć następująco:

        1. Inżynieria wiedzy jako podbudowa systemów ekspertowych.

Problematyka inżynierii wiedzy i związanych z nią systemów ekspertowych jest coraz powszechniej uważana za jeden z najważniejszych obszarów i kierunków rozwoju nowoczesnej informatyki. Chcąc przedstawić umiejscowienie systemów ekspertowych
w szerokim obszarze informatyki, należy najpierw wyjaśnić co jest rozumiane pod pojęciem inżynierii wiedzy.

Inżynieria wiedzy obejmuje zagadnienia metodologiczne i techniczne dotyczące zastosowań środków technicznych (komputerów i środków pomocniczych) do akwizycji, gromadzenia, przetwarzania i generowania wiedzy. Ostateczne generowanie wiedzy oraz poprzedzające je czynności (akwizycja, przetwarzanie), jak łatwo się domyślić, mają służyć dla docelowego rozwiązania określonego problemu. I jeżeli odbywa się to na podstawie opisu (reprezentacji) wiedzy dotyczącej rozwiązywanego problemu oraz z zastosowaniem reguł i mechanizmów automatycznego rozumowania - to mamy właśnie do czynienia z systemami ekspertowymi.

Inżynieria wiedzy jest najbardziej zaawansowaną metodą wykorzystywania komputera jako środka automatyzacji pracy umysłowej. Uformowanie się (w latach 90. dwudziestego stulecia) formalnej inżynierii wiedzy było wynikiem ewoluowania informatyki od inżynierii obliczeń, poprzez inżynierię rozwiązywania problemów i inżynierię informacji.

W pierwszej bowiem, tj. inżynierii obliczeń, komputer jest traktowany jako środek do obliczeń (ang. computer as a computer), a technika obliczeniowa wykorzystuje do rozwiązywania problemów wyłącznie metody numeryczne i metody algorytmizacji obliczeń. Jeśli chodzi o inżynierię rozwiązywania problemów to komputer występuje tutaj jako środek do rozwiązywania problemów (ang. computer as a problem solver), a ściślej mówiąc, komputer wykonuje wtedy programy, które są opracowane w oparciu o tak zwane metody rozwiązywania problemów. Są to różne metody i algorytmy optymalizacji, identyfikacji, rozpoznawania, sterowania, podejmowania decyzji, itp. Natomiast w trzeciej fazie rozwoju informatyki mamy inżynierię informacji, w ramach której komputer traktowany jako środek do gromadzenia i przetwarzania informacji (ang. computer as an information collector and processor). Na tym etapie wykorzystywane są metody i algorytmy przetwarzania informacji oraz metody jej gromadzenia. Ważną rolę odgrywają przy tym algorytmy zarządzania zbiorami informacji. Ostatnim etapem rozwoju na tym obszarze jest, jak już wspomniano, inżynieria wiedzy, która traktuje komputer jako eksperta (ang. computer as an expert), czyli jako środek do rozwiązywania problemów na podstawie zgromadzonej w nim reprezentacji wiedzy ludzkiej z zastosowaniem metod automatycznego rozumowania.

Należy stwierdzić, że systemy ekspertowe zaczęły pojawiać znacznie wcześniej, niż powstały przesłanki do budowy inżynierii wiedzy, ale doskonaliły się na gruncie tej (wyżej scharakteryzowanej) ewolucji, przy czym mogły w pełni się rozwinąć właśnie dzięki inżynierii wiedzy. SE są praktycznie jedynym wytworem inżynierii wiedzy, który przynosi coraz większe korzyści, przez co następuje rosnąca koncentracja badaczy i praktyków na tym temacie oraz obserwuje się znaczny wzrost nakładów na prace prowadzone w tej dziedzinie.

        1. Systemy ekspertowe jako dyscyplina sztucznej inteligencji.

Systemy ekspertowe niewątpliwie należą do sztucznej inteligencji. Zacznijmy więc od wyjaśnienia krótko tego, jak pojmowana jest inteligencja u człowieka. Termin ten oznacza swoisty zespół zdolności, umożliwiających człowiekowi korzystanie z nabytej wiedzy (doświadczenia) oraz skuteczne zachowanie się wobec nowych zadań i nowych warunków. Inteligencja przejawia się właśnie poprzez określone reagowanie na problemy pojawiające się w nowej sytuacji.

Najistotniejszym aspektem zdolności umysłowych człowieka, będącym fundamentem dla jego inteligencji, jest zdolność do analizy i uogólniania. Inne ważne aspekty zdolności umysłowych człowieka są następujące: umiejętność uczenia się, zdolność rozpoznawania danego obiektu w dowolnym kontekście, złożone emocjonalne i pozornie irracjonalne stany człowieka, przyczyniające się jednak do tworzenia nowych rozwiązań, myślenie koncepcyjne i abstrakcyjne, subiektywne przeżycia.

Niemal od początku istnienia informatyki zaczęto dążyć do tego, aby stworzyć na bazie komputerów takie sztuczne systemy, które charakteryzowałyby się choć po części cechami intelektu naturalnego. Ponieważ w zamierzeniach twórców systemy takie miałyby przez to cechy inteligencji, zaczęto (jeszcze w latach 60.) lansować hasło sztucznej inteligencji (ang. Artificial Intelligence - AI). Zadanie oczywiście było bardzo trudne. Bowiem komputerowi z definicji niejako nie jest dostępne twórcze myślenie, nie potrafi on też sam z siebie niczego nowego odkryć czy wynaleźć. Poza tym nie ma świadomości, przeżyć intuicyjnych, nie przeżywa stanów emocjonalnych. Jest tylko narzędziem, które nie myśli treściowo. Ale gdy z komputerem komunikuje się człowiek (w określonym języku), to obie strony czynią swoje myślenie wzajemnie dostępnym. Przez to komputer wydaje się rozumieć to co robi, gdy mądrze wykonuje podawane mu polecenia.

Uważa się, że pierwszą “udokumentowaną” osobą, wskazującą na możliwości wyposażania komputerów w “inteligentne” programy (co wcześniej określano mianem “inteligencja maszynowa”), był naukowiec angielski Alan Turing, który w roku 1950 opublikował pracę pt. “Computing Machinery and Intelligence”. W pracy tej wskazał bezpośrednio na możliwości takiego oprogramowania komputera, że będzie on wykazywał cechy zachowania się zbliżone do zachowania się człowieka inteligentnego. Z tej pracy pochodzi też słynny “Test Turinga”, opisany dokładniej w rozdziale 1, spełnienie którego wskazywałoby na inteligentne zachowanie się komputera wyposażonego w odpowiedni program.

Ogólnie rzecz ujmując maszyna jest nazywana inteligentną, jeśli zewnętrzny obserwator nie jest w stanie odróżnić jej odpowiedzi od odpowiedzi człowieka mogącego zastępować maszynę.

Nie ma jednolitej definicji sztucznej inteligencji. Można przytoczyć wiele, ale ograniczę się do czterech. Definicja według Minsky'ego stwierdza, że „sztuczna inteligencja jest nauką o maszynach realizujących zadania, które wymagają inteligencji wówczas, gdy są wykonywane przez człowieka”. Z kolei Feigenbaum określa sztuczną inteligencję jako „dziedzinę informatyki dotyczącą metod i technik wnioskowania symbolicznego przez komputer oraz symbolicznej reprezentacji wiedzy stosowanej podczas takiego wnioskowania”. Natomiast Bubnicki określa ją prosto jako dziedzinę „zajmującą się zagadnieniami algorytmizacji i komputeryzacji procesów rozumowania”. Według Owoca sztuczna inteligencja jest to „automatyzacja niektórych intelektualnych działań człowieka, w zakresie wnioskowania, kojarzenia faktów i wyboru informacji, przy użyciu komputera”.

W sztucznej inteligencji metody algorytmiczne, charakterystyczne dla przetwarzania proceduralnego, zostają zastąpione przeszukiwaniem inteligentnym (ang. intelligent search). Przetwarzanie numeryczne, typowe dla większości zastosowań komputerów, staje się więc przetwarzaniem symbolicznym. Również następuje przejście od przetwarzania danych do przetwarzania wiedzy. Systemy takie (w tym i systemy ekspertowe) określa się jako systemy oparte na wiedzy (ang. knowledge-based systems).

Należy stwierdzić, że na dziedzinę sztucznej inteligencji składa się wiele wątków, wśród których można wyróżnić m.in.: teorię gier, przetwarzanie języka naturalnego, robotykę, procesy percepcji, uczenie się maszyn itp. Jednym z podobszarów tej dziedziny są właśnie omawiane tu systemy ekspertowe, których twórcy starają się odtworzyć proces myślenia, jaki zachodzi u organizmów żywych, w świecie maszyn. Bardziej formalnie można powiedzieć, że systemy ekspertowe należą do metod symbolicznych sztucznej inteligencji. Podstawowym przesłanką przy tworzeniu systemów ekspertowych jest przekonanie, że wiedzę wysoko wykwalifikowanego eksperta można zapisać na komputerze w takiej postaci, że odpowiedni program komputerowy będzie mógł przeprowadzać na niej wnioskowanie i generować wyniki zgodne z tymi wynikami, jakie podałby ekspert. Wiele pojęć odnoszących się do teoretycznych podstaw sztucznej inteligencji, m.in. wspomniane wyżej przeszukiwanie inteligentne przestrzeni rozwiązań symbolicznych, pojawia się też przy systemach ekspertowych. Jednak nie każdy system manipulujący informacją symboliczną będzie nas tu interesował, gdyż na przykład systemy dokonujące symbolicznych manipulacji matematycznych (przekształcające wzory, dokonujące całkowania symbolicznego, automatycznie dowodzące twierdzenia matematyczne, ewaluujące złożone formuły logiczne itp.) nie wchodzą w zakres naszych zainteresowań. Dlatego dalej będziemy raczej korzystali z definicji systemów opartych na wiedzy, która mówi, że knowledge-based system to komputerowy system, który próbuje naśladować specyfikę toku rozumowania człowieka (tu eksperta) wykorzystując dostępne bazy, zawierające szczegółowe dane, informacje oraz ich powiązania, przykładowe ekspertyzy itp. - czyli szeroko pojętą wiedzę z danej dziedziny. Jak łatwo zauważyć, definicja taka w gruncie rzeczy pokrywa się z definicją systemów ekspertowych. Nawet uważa się niekiedy, że nazwa system ekspertowy jest skrótem od angielskiej nazwy Ekspert Knowledge-based System (EKBS) czyli ekspercki system oparty na wiedzy.

      1. Podział systemów ekspertowych.

Trzy najczęściej wyodrębniane ogólne kategorie systemów ekspertowych to:

Z kolei trzy podstawowe cele pracy systemów ekspertowych (oraz związana z nimi tryby ich pracy) to:

System ekspertowy pracuje najczęściej w jednym z wyżej wymienionych trybów, ale czasami pracuje w dwóch lub nawet w trzech trybach naraz. Dla przykładu dzięki połączeniu diagnozy i planowania uzyskuje się systemy sterujące, np. system sterowania statkiem kosmicznym, czy systemy uczące się podejmowania optymalnych decyzji handlowych.

Rodzaje systemów ekspertowych ze względu na realizowane zadania przedstawione są w tabeli 4.1. Jak widać systemy te mogą realizować różnorakie zadania, poczynając od interpretacji stanu jakiegoś obiektu lub procesu, poprzez jego diagnozę, a kończąc na sterowaniu.

Tabela. 4.1. Rodzaje systemów ekspertowych.

Kategoria

Zadania realizowane przez systemy ekspertowe

Interpretacyjne

Dedykują opisy sytuacji z obserwacji lub stanu czujników, np. rozpoznawanie mowy, obrazów, struktur danych

Predykcyjne

Wnioskują o przyszłości na podstawie danej sytuacji, np. prognoza pogody, rozwój choroby

Diagnostyczne

Określają wady systemu na podstawie obserwacji, np. medycyna, elektronika, mechanika

Kompletowania

konfigurują obiekty w warunkach ograniczeń, np. konfigurowanie systemu komputerowego

Planowania

planują działania, które trzeba wykonać, aby osiągnąć zamierzony cel, np. ruchy robota

Monitorowania

porównują obserwacje z ograniczeniami, np. w elektrowniach atomowych, medycynie, w ruchu ulicznym

Sterowania

kierują zachowaniem systemu; obejmują interpretowanie, predykcję, naprawę i monitorowanie zachowania się obiektu

Poprawiania

Podają sposób postępowania w przypadku złego funkcjonowania obiektu, którego te systemy dotyczą

Naprawy

Harmonogramują czynności przy dokonywaniu napraw uszkodzonych obiektów

Instruowania

Systemy doskonalenia zawodowego dla studentów lub kursantów

Inny podział systemów ekspertowych, dokonany ze względu na realizowane przez nie funkcje, wyróżnia następujące systemy:

Jeżeli weźmie się pod uwagę zależności pomiędzy typem zadania, a jego rozmiarem i złożonością to systemy ekspertowe można podzielić na pięć rodzajów, co jest pokazane w na rysunku 3 (podział odnosi się przede wszystkim do SE eksploatowanych w zarządzaniu). Są to systemy proceduralne, które rozwiązują łatwe zadania i o małej złożoności, czyli wspomagają podejmowanie decyzji dobrze zdefiniowanych. Należą one z tego powodu do najprostszych SE, gdzie wiedza zapisana w postaci reguł da się przedstawić jako drzewo decyzyjna, a najczęściej stosowane wnioskowanie jest prowadzone metodą wnioskowania wstecz. Systemy diagnostyczne przedstawiają przyczyny zaistniałego zjawiska (nieprawidłowych wartości parametrów charakteryzujących firmę czy spadku jakości produkcji) stosując również wnioskowanie do tyłu. Tutaj jednak z reguły pojawia się problem wiedzy niepewnej, a reguł nie tworzących bazę wiedzy systemu, nie da się łatwo przedstawić w postaci drzewa decyzji. Idąc dalej, zwiększając typ i rozmiar zadania, są systemy monitorujące. Podobnie jak poprzednie, generują one ostrzeżenia dotyczące stanu firmy, ale również proponują akcje przywracające stan pożądany. Dokonują tego stosując zazwyczaj wnioskowanie do przodu, a wiedza zapisana jest w nich z reguły w sposób mieszany (nie tylko w postaci reguł jak w poprzednich SE). Następnie mają miejsce systemy konfigurująco-projektujące, które tym się zwłaszcza wyróżniają, że rozwiązują problemy i unikają wzajemnych sprzeczności, powstałych przy formułowaniu zadań przez użytkownika. Reprezentacja wiedzy, jak również sposób wnioskowania, są w nich także mieszane. Do rozwiązywania zadań trudnych, o szczególnie dużym rozmiarze i złożoności, używane są systemy planująco-harmonogramujące. W porównaniu z poprzednimi uwzględniają one dodatkowo aspekt czasu.

W nawiązaniu do tego podziału poniżej przedstawione są przykładowe zastosowania wyróżnionych systemów ekspertowych. Mogą to być SE:

0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic

Rys. 11. Systemy ekspertowe scharakteryzowane ze względu na zależność pomiędzy typem zadania a jego rozmiarem i złożonością.

Natomiast biorąc pod uwagę kryterium, jakim jest sposób realizacji systemów ekspertowych, dzielimy je następująco:

Tego typu szkieletowe systemy ekspertowe są obecnie bardzo popularne i są prawie powszechnie dostępne, a zatem dają one możliwość stworzenia dowolnego systemu uwzględniającego wszelkie wymogi specyfiki danej dziedziny w firmie lub organizacji. Można tu przykładowo wymienić następujące programy: Turbo Shell, Instant Expert, Xsys, ExpertR, Crystal, VP-Expert. Należy też zaznaczyć, że pierwsze systemy szkieletowe powstały z systemów dedykowanych przez opróżnienie ich bazy wiedzy. Tak też w Stanford University powstał EMYCIN (od ang. Empty MYCIN czyli pusty MYCIN)
z przedstawionego wcześniej systemu MYCIN, po usunięciu z niego bazy wiedzy medycznej. Natomiast w Polsce znanym szkieletowym systemem ekspertowym jest PC-Shell, którego kolejne wersje powstawały w firmie AITECH w Katowicach.

Rozważając rodzaj przetwarzanej informacji można systemy ekspertowe podzielić na następujące klasy:

Można też - biorące pod uwagę kryterium kompletności - systemy podzielić na:

Z kolei ze względu na metodę prowadzenia procesu wnioskowania systemy ekspertowe dzieli się na:

Wśród technik opartych na symbolicznym przetwarzaniu informacji dokonuje się podziału SE ze względu na rodzaj reprezentacji wiedzy. Wśród metod reprezentacji wiedzy można wyróżnić: reguły, ramy, sieci semantyczne, predykaty itp. (zagadnienie to rozwinięte będzie w podrozdziale drugim). Zaś jeśli chodzi o liczbę stosowanych reguł to wśród systemów ekspertowych wyróżnia się następujące grupy:

Ostatnio pojawia się też pojęcie systemów ekspertowych czasu rzeczywistego, które mogą zapewnić bardziej efektywne strategie monitorowania i sterowania. Dzięki ich pomocy znacznie zmniejszy się zapewne liczba operatorów obsługujących różne urządzenia, a także liczba operatorów wysoko wykwalifikowanych nadzorujących procesy. Dzięki temu firmy stosujące odpowiednie oprogramowanie zmniejszą wydatki związane z zatrudnianiem odpowiednich operatorów oraz koszty związane z ich trenowaniem. Następnie polepszyć się powinna jakość sterowanego procesu (mniejsza awaryjność). Zastosowania tych systemów mogą obejmować takie dziedziny jak: operacje przestrzeni kosmicznej, monitorowanie i sterowanie elektrowni jądrowych, kontrola ruchu lotniczego, interpretacja sygnałów radarowych, monitorowanie procesów produkcyjnych, finanse, giełda, itp.

Systemy czasu rzeczywistego dzieli się na dwie kategorie, z których pierwsza to tzw. „hard real-time”, gdzie poprawne rozwiązanie zależy od wyników obliczeń oraz od czasu obliczeń (odpowiedź poza przedziałem czasu jest bezużyteczna). Druga kategoria to tzw. „soft real-time”, gdzie również są wymagania czasowe, ale część zadania można ukończyć poza określonym przedziałem czasu. Systemy czasu rzeczywistego mają swoją specyfikę i dlatego większość narzędzi używanych do tworzenia tradycyjnych i szkieletowych systemów ekspertowych nie spełniają wymagań stawianych tym systemom.

Dla dopełnienia podziałów wzmiankowanych tutaj SE trzeba zaznaczyć, że mówiąc o systemach ekspertowych ma się na myśli zazwyczaj te klasyczne, a więc przedstawiające informacje w postaci symbolicznej. Istnieją jednak systemy ekspertowe, które oparte są na niesymbolicznych metodach przetwarzania informacji. Zasługującą na wspomnienie grupą takich systemów ekspertowych są systemy pracujące w oparciu o omawiane w tym skrypcie w innym rozdziale sieci neuronowe. O realizacji systemów ekspertowych z sieciami neuronowymi (systemów hybrydowych) będzie mowa w podrozdziale trzecim.

      1. Rozwój systemów ekspertowych.

        1. Wiedza na sprzedaż

Jak już powiedziano, pierwszy udany system ekspertowy powstał na użytek medycyny. Również dziedzina chemii znalazła szybko miejsce w systemach ekspertowych. W obu przypadkach chodziło o klasyfikowanie pewnych obiektów - w przypadku medycyny było to diagnozowanie chorób, a w przypadku chemii badanie substancji chemicznych. Przypadkami dobrze poddającymi się analizie ze strony systemów ekspertowych były choroby zakaźne obejmujące szeroką populację i liczne przypadki zachorowań. Systemami, które tego dokonały na początku badań, są MYCIN (diagnozowanie i terapia chorób zakaźnych), PIP (diagnozowanie chorób nerek) czy HEADMED (diagnozowanie psychofarmakologiczne). W następnej kolejności powstały systemy w chemii, jak DENDRAL (interpretacja masowych spektrogramów) czy CRYSTALIS (interpretacja krystalogramów). Można powiedzieć, że i ta pierwsza generacja systemów ekspertowych była jeszcze mało inteligentna, ponieważ analizowała wprawdzie bardzo rozległe bazy danych i wiedzy, wyprowadzając z nich wartościowe wnioski, lecz nie tworzyła zbyt nowatorskiej wiedzy.

Wkrótce pojawiły się jednak systemy konsultacyjne jako nowa, wyższa generacja systemów ekspertowych. W nawiązaniu do znalezionego już rozwiązania pewnego kompleksowego problemu (np. rozpoznanej ukrytej przyczyny powtarzających się chorób zakaźnych) system konsultacyjny stawia jeszcze dodatkowe pytania: w jaki sposób doszło do kluczowej konkluzji, dlaczego tak postawiono pytanie, jaki jest plan rozwiązania problemu, co trzeba jeszcze w nim uwzględnić itp. Pytania te są przykładem szczególnego rodzaju wiedzy - metawiedzy - pozwalającej na daleko idące, nowe, lepsze wnioski. Tu realizuje się dialog między inżynierem wiedzy a ekspertem dziedziny. Systemy konsultacyjne są w istocie szczególnymi “nakładkami” na poprzednie systemy.

Ważnym kolejnym krokiem w historii rozwoju systemów ekspertowych są komputerowe systemy wspomagania decyzji, dostosowane do wymogów całościowej oceny sytuacji problemowej w danej dziedzinie. Dysponują one z reguły bogatą bazą wiedzy i podejmują kompleksowe decyzje. Są to w istocie tradycyjne systemy ekspertowe rozbudowane o wzbogacony interfejs z użytkownikiem. Prowadzą one dialog z użytkownikiem w języku naturalnym, tworzą dla niego modele sytuacji decyzyjnych, prezentują mu w przystępnej formie zaproponowane rozwiązania, objaśniają mu je i w końcu współdecydują. Początkowo (w latach 70.) systemy te wspomagały decyzje w takich dziedzinach wiedzy jak rachunkowość, marketing, sprzedaż, planowanie kariery, prawo podatkowe. Od końca lat 80. zaczęły powstawać systemy “hybrydowe”, które łączyły algorytmiczno-heurystyczne metody maszynowego wnioskowania opierającego się na bazie wiedzy z autonomicznymi, wstępnymi decyzjami kierowniczej kadry opartymi na intuicji czy wyczuciu. Przykładem są powstałe w Manchester Institute of Science and Technology systemy o nazwie MARK-OPT (dynamiczna optymalizacja strategii marketingowej) czy PHARMAPLAN (marketingowa gra symulacyjna do użytku w przemyśle farmaceutycznym).

Systemy ekspertowe są obecnie produktem rynkowym. Minął już czas, gdy pasjonaci z akademickich ośrodków bezinteresownie tworzyli programy dowodzenia twierdzeń matematycznych czy gry w warcaby. Obecnie komputerowe systemy są tworzone
i wykorzystywane komercyjnie i jest to efekt “przemysłowej ery komputerów”. Ich cena jest odzwierciedleniem wartości, jaką ma właściwie przeprowadzona ekspertyza, dobrze postawiona diagnoza czy podjęta decyzja.

        1. Czynniki rozwoju systemów ekspertowych.

Do najistotniejszych czynników sprzyjających rozwojowi systemów ekspertowych można zaliczyć:

        1. Rozwój systemów ekspertowych w kierunku różnorakich zastosowań.

Po udanym zastosowaniu systemu ekspertowego w medycynie, jakim był system MYCIN, nastąpił szybki rozwój w dziedzinie SE. Stworzono wiele systemów, z których jedne były bardziej, a inne mniej udane. Widząc potrzebę powstawania systemów ekspertowych, zaczęto ich budowę dla różnych zastosowań. Takie podstawowe obszary zastosowań SE przedstawia tabela 1.2.

Tabela. 2. Podstawowe obszary zastosowań systemów ekspertowych.

Sektor

Zastoso-wanie

Bankowość

i ubezpieczenia

Przemysł

Handel i usługi

Sektor publi-czny i inne

Monitorowanie Sterowanie

obserwowanie trendów

nadzorowanie procesów, sterowanie procesami, raportowanie specjalnych sytuacji

obserwowanie trendów

Monitorowanie reaktorów jądrowych oraz dużych sieci (gazowe, wodne)

Projektowanie

projektowanie zakładów

i produktów, komputerów

wybór asortymentów, doradztwo dla rolnictwa

sieci (pocztowe, energetyczne)

Diagnostyka

kredyty, pożyczki na nieruchomości, analiza ryzyka, przetwarzanie skarg

wykrywanie uszkodzeń, utrzymanie zdolności produkcyjnej

kredyty, analiza ryzyka

diagnoza medyczna, diagnoza techniczna

Planowanie

analiza ryzyka, planowanie inwestycji

projektowanie funkcji logicznych, planowanie projektu

analiza ryzyka, analiza rynku

planowanie inwestycji, planowanie na wypadek klęski, planowanie dystrybucji

Jeśli chodzi o konkretne nazwy systemów ekspertowych to wśród udanych zastosowań można wyróżnić:

        1. Rozwój systemów ekspertowych w kierunku systemów o oddziaływaniu strategicznym.

Zastosowania systemów ekspertowych można podzielić na cztery grupy. Podziału tego dokonano na Uniwersytecie Northeastern w Centrum Badawczym Technologii Zarządzania i oparto się na dwóch wymiarach, tj. poziomie kompleksowości wiedzy oraz poziomie złożoności technologii.

Jeśli chodzi o kompleksowość wiedzy to chodziło m.in. o odpowiedź na pytania:

Według powyższych kryteriów wyróżnia się więc:

  1. Systemy potęgujące wydajność indywidualną - są to małe systemy ekspertowe (szkieletowe) o niskiej kompleksowości wiedzy i technologii. Najczęściej spotyka się na tym obszarze systemy budżetowania. Celem takiego systemu jest poprawa podejmowania decyzji personalnych oraz w ten sposób wzrost wydajności globalnej.

  2. Złożone systemy decyzyjne - są to systemy o dużej kompleksowości wiedzy, relatywnie nieskomplikowane w swej technologii. Obejmują one wiedzę najbardziej doświadczonych decydentów, lecz nie ograniczają się do profesjonalistów pracujących nad trudnymi problemami. System operuje bez rozległych baz danych do przetwarzania. Chodzi tutaj o poprawę podejmowania decyzji przez całą grupę użytkowników wewnątrz organizacji, co zazwyczaj ma poważny wpływ na jakość produktu, czy usługi.

  3. Zintegrowane systemy produkcji - mają one ograniczoną kompleksowość w dziedzinie wiedzy, lecz zawierają zaawansowaną technologię. Cechą takich systemów ekspertowych jest ich koncentracja na integracji z istniejącymi danymi oraz z istniejącym otoczeniem obliczeniowym. Celem jest zwiększenie wydajności oraz zmniejszenie kosztów.

  4. Systemy o oddziaływaniu strategicznym - są to systemy o wysokim stopniu kompleksowości zarówno pod względem wiedzy, jak i technologii. Są one zarówno szerokie, jak i głębokie w swojej dziedzinie wiedzy. Typowo otrzymują informację z wielu niepewnych źródeł. Proces decyzyjny jest długi skomplikowany. Często wymagane jest testowanie licznych hipotez. Konieczny jest wysoki poziom integracji. Mając na uwadze typ złożoności, nieuniknione koszty oraz czas związany z budową takiego systemu, organizacja musi być bardzo pewna oczekiwanych korzyści z wprowadzenia takiego systemu. Systemy o oddziaływaniu strategicznym mają za cel bezpośrednie oddziaływanie na zwiększenie efektywności podejmowania decyzji oraz poprawę sterowalności procesów.

W organizacji istotne znaczenie ma dążenie w kierunku systemów o oddziaływaniu strategicznym, a więc systemów o dużej kompleksowości wiedzy i technologii ponieważ cząstkowa optymalizacja zazwyczaj nie przynosi oczekiwanych rezultatów. Z kolei bezpośrednia realizacja systemów o oddziaływaniu strategicznym z uwagi na czas realizacji
i koszty jest przedsięwzięciem ryzykownym oraz możliwym do zrealizowania tylko
w organizacjach o dużych doświadczeniach w zakresie wprowadzania współczesnej technologii informacyjnej. Stąd też są dwa podejścia etapowe.

W pierwszym podejściu organizacja posiadająca na wstępie system potęgujący wydajność personalną stworzony przez eksperta. Gdy system wzbudzi większe zainteresowanie możliwe, że zostanie przekształcony przy współudziale grupy ekspertów
w złożony system decyzyjny. Dalej, gdy ten wzbudzi zainteresowanie kierownictwa naczelnego organizacji i zostaną zaangażowani specjaliści z zakresu technologii informacyjnej, to może powstać system o oddziaływaniu strategicznym.

Z kolei w drugim podejściu punktem wyjścia jest zintegrowany system produkcji z elementami sztucznej inteligencji. System ma wysoki stopień kompleksowości w zakresie technologii oraz duże potencjalne możliwości rozwoju w heterogenicznym środowisku sprzętowo-programowym. Organizacja może więc zwiększać kompleksowość wiedzy i rozwijać swój system w kierunku systemu o oddziaływaniu strategicznym.

    1. Działanie systemu ekspertowego.

      1. Architektura systemu ekspertowego.

Przy omawianiu struktury systemu ekspertowego należy przypomnieć o ważnym paradygmacie ich działania, którym jest oddzielenie wiedzy dotyczącej problemów od algorytmów rozwiązywania tych problemów (czyli bazy wiedzy od mechanizmu wnioskowania). Jak już wzmiankowano wyżej, wiedza jest specyficzna dla poszczególnych dziedzin i rozwiązywanych zadań. Natomiast algorytmy rozwiązywania problemów mogą być zastosowane do różnych dziedzin i zadań.

Po powyższym stwierdzeniu przejdziemy do omówienia typowej struktury systemu ekspertowego. Architektura klasycznego systemu ekspertowego została przedstawiona na rys. 12. Składa się ona z następujących podstawowych elementów:

Co do czwartego elementu, nie we wszystkich publikacjach wchodzących w skład fachowej literaturze jest on uznany jako element podstawowy. W tym skrypcie opieramy się na stwierdzeniu Forsyth, jednego z głównych fachowców tej dziedziny, który pisze, że system z bazą wiedzy może nie mieć wszystkich czterech składników (w tym interfejsu objaśniającego), ale system ekspertowy mieć je musi.

Dobry system ekspertowy powinien również posiadać moduł pozyskiwania wiedzy do bazy wiedzy, dzięki któremu będzie możliwe dalsze rozszerzanie i modyfikacja bazy. Ze względu na ważność tego modułu można go także zaliczyć do elementów podstawowych systemów ekspertowych.

0x01 graphic

Rys.12. Podstawowe elementy systemów ekspertowych. Źródło: opracowanie własne.

        1. Baza wiedzy.

Czym jest baza wiedzy?

Jeśli chodzi o bazę wiedzy (BW) to jest ona elementem występującym w każdym systemie eksperckim, ale też jest elementem specyficznym dla każdej konkretnej dziedziny, gdyż baza wiedzy zawiera zawsze wyłącznie informacje używane przez ekspertów w rozwiązywaniu problemów z tej właśnie specyficznej dziedziny. Zawartość bazy wiedzy stanowi więc wiedzę problemową, pobraną od jednego lub kilku ekspertów. Zawiera ona zatem opis obiektów i zależności specyficznych dal danej dziedziny oraz jej właściwe prawidła proceduralne. Nie jest to jedyna zawartość bazy wiedzy, gdyż dobrze zbudowana baza obejmuje także wszystkie potrzebne heurystyki, jest więc zbiorem faktów i reguł oraz strategii rozwiązywania problemu (metareguł) stosowanych w celu rozwiązania problemu z danej dziedziny - zapisanych oczywiście w odpowiednim języku reprezentacji wiedzy.

Dobrze zbudowana baza wiedzy pozwala decydentowi otrzymać optymalną odpowiedź, którą system ustali na podstawie informacji zawartych w bazie, posługując się dodatkowo zależnościami heurystycznymi, probabilistycznymi i eksperymentalnymi.

Formalną postać zapisu informacji używanych przez system ekspertowy, wraz ze zdefiniowanymi sposobami operowania na zbiorze tych informacji, opisuje przyjęta reprezentacja wiedzy.

Wybór odpowiedniego sposobu reprezentacji wiedzy jest jedną z najbardziej krytycznych decyzji w całym procesie projektowania rozważanych tu systemów ekspertowych. Elementy wiedzy (reprezentowanej w systemie) są zazwyczaj powiązane między sobą, odzwierciedlając związki tematyczne, zakresy pojęć, relacje między wiadomościami, asocjacje merytoryczne i formalne, analogie i kontradykcje itp. Wszystkie te powiązania, występujące w rzeczywistości między „jednostkami wiedzy”, powinny znaleźć potem odbicie w postaci powiązania pomiędzy „jednostkami reprezentacji wiedzy”.

Wiedza w bazie wiedzy systemu ekspertowego musi być zapisana w postaci sformalizowanej, gdyż tylko w takiej formie będzie zrozumiała dla maszyny wnioskującej. Zapisana jest ona za pomocą symboli, dzięki temu łatwo można prześledzić sposób dojścia systemu do każdego konkretnego rozwiązania, ale także łatwo jest przeanalizować poprawność i niesprzeczność całej bazy wiedzy. Jest to duża zaleta w porównaniu do niesymbolicznych metod sztucznej inteligencji, gdzie przeanalizowanie drogi wnioskowania, jaką przebył komputer w celu uzyskania konkretnego rozwiązania, jest zawsze bardzo utrudnione.

Rola inżyniera wiedzy w tworzeniu bazy wiedzy.

Bazę wiedzy tworzy inżynier wiedzy. Gromadzi on wiedzę pochodzącą od ekspertów (oraz z innych źródeł jak: książki, katalogi, itp.) oraz przekształca ją do postaci zgodnej ze sposobem jej przedstawienia w bazie wiedzy. Następnie umieszcza odpowiednio przekształconą wiedzę w bazie, wykrywając i eliminując ewentualne sprzeczności, które prawie zawsze się ujawniają w procesie agregacji wiedzy pochodzącej z wielu źródeł. Proces gromadzenia wiedzy jest jednym z najtrudniejszych etapów podczas tworzenia systemów ekspertowych i wymaga dużych umiejętności komunikowania się inżyniera wiedzy z ekspertami. Wymagane są tu zarówno wysokie kwalifikacje fachowe, jak i odpowiednio miły sposób bycia, warunkujący skuteczność komunikacji z ekspertem.

Po utworzeniu bazy wiedzy inżynier może komunikować się z nią (dla uzupełniania czy poprawiania wiedzy) za pomocą interfejsu oraz tego samego modułu pozyskiwania wiedzy, który służył do początkowego napełnienia bazy wiedzą. Wart podkreślić, że inżynier wiedzy z reguły nie posiada doświadczenia i wiedzy eksperta, co poważnie utrudnia proces konstruowania systemów ekspertowych. Przystępując do zadania utworzenia bazy wiedzy inżynier powinien sobie odpowiedzieć na pewne szczególne pytania, odnośnie tego, jaka baza wiedzy ma powstać w wyniku jego pracy. Konieczna jest do tego celu pewna klasyfikacja baz wiedzy, którą teraz podamy.

Rodzaje baz wiedzy.

Wśród baz wiedzy należy wyróżnić:

Sposoby reprezentacji wiedzy w systemach ekspertowych.

Jeśli chodzi o reprezentację wiedzy to istnieją dwa zasadnicze sposoby jej przedstawiania. Może to być:

Dla rzeczywistych systemów ekspertowych preferuje się przedstawianie wiedzy w sposób mieszany.

Wiedzę, która ma znaleźć się w systemach ekspertowych, można zapisać za pomocą różnych formuł. Są to metody reprezentowania wiedzy takie, jak:

Nie wszystkie wymienione metody będą omawiane w tej pracy. Ze względu ma dydaktyczny i raczej przeglądowy charakter tego skryptu ograniczymy się tylko do najczęściej wykorzystywanych metod, a mianowicie do stwierdzeń, reguł, ram oraz sieci semantycznych.

Stwierdzenia.

Stwierdzenia w bazie wiedzy są reprezentowane poprzez tzw. uporządkowaną trójkę:

{obiekt-atrybut-wartość},

która może być czasem zawężona do dwóch tylko elementów:

{atrybut-wartość}.

a czasem może zostać z kolei rozszerzona o dodatkowy element, jakim jest współczynnik pewności (CF od ang. Certainty Factor). Współczynnikiem pewności może być liczba z przedziału [-1,1]. Wówczas dla CF=-1 wiadomo, że stwierdzenie jest fałszywe, dla CF=1 stwierdzenie jest prawdziwe, a dla CF=0 nie wiadomo, czy jest ono prawdziwe, czy fałszywe.

Stwierdzenia są jednym z głównych elementów bazy wiedzy. Dotyczą one różnych obiektów, czyli zdarzeń, zjawisk, czynności. Charakteryzują one pewne obiekty, ale nie wyrażają relacji między nimi (relacje te najczęściej opisywane są poprzez ramy czy sieci semantyczne). Same stwierdzenia nie wystarczają więc do opisania jakiejkolwiek wiedzy, ale trudno jest też zbudować bazę wiedzy nie zawierającą pewnej liczby stwierdzeń.

Wspominane w schemacie stwierdzeń atrybuty są cechami obiektów i mogą przyjmować różne wartości (wartością atrybutu może być nie tylko wartość liczbowa, ale też np. kolor, kształt, itp.).

Przykładem stwierdzenia może być następująca trójka: {Dom, drzwi, dębowe}, która reprezentuje fakt: Dom ma dębowe drzwi. Połączenie {obiekt, atrybut} jest typu „ma”, a {atrybut, wartość} typu „jest”, co może zostać odzwierciedlone w sieci semantycznej, o której będzie mowa dalej. Oczywiście możliwe są także inne typy połączeń dla innych obiektów.

Reguły.

Reguły w bazie wiedzy mają zwykle postać:

IF <warunek logiczny/przesłanka>

THEN <konkluzja/działanie/produkcja>.

Warunkiem logicznym lub inaczej przesłanką reguły mogą być dowolne stwierdzenia, które dla stworzenia złożonego warunku zostają dodatkowo połączone funktorami zdaniotwórczymi. Konkluzja (działanie, produkcja) jest efektem końcowym reguły; najczęściej jest on stwierdzeniem, prawdziwym, gdy prawdziwa jest też przesłanka / przesłanki. Systemy ekspertowe oparte na regułach są klasą systemów ekspertowych, w których główną częścią składową bazy wiedzy jest zbiór reguł (obok zbioru faktów).

Do tej pory większość powstałych systemów ekspertowych opartych jest na tej właśnie reprezentacji wiedzy. Każda reguła w bazie wiedzy to jakiś fragment wiedzy. Jako że reguły są niezależne od siebie (takie być powinny dla dobrego funkcjonowania systemu), można więc bardzo łatwo rozszerzyć zakres systemu ekspertowego lub zwiększyć jego moc poprzez dodanie dalszych reguł do bazy wiedzy.

Przykładem reguły może być:

IF Dom ma dębowe drzwi THEN Dom jest solidnym budynkiem

gdzie na podstawie stwierdzenia {Dom, drzwi, dębowe} zostaje wydedukowany nowy fakt {Dom, budynek, solidny} .

Jak wiadomo systemy ekspertowe potrafią rozumować symbolicznie tzn. wnioskować na temat zdań (stwierdzeń) a nie tylko oznaczać je jako prawdę lub fałsz. Tak więc przykładowa reguła może mieć postać: IF Dom ma dębowe drzwi OR Dom ma grube ściany THEN Dom jest solidnym budynkiem. Poza tym jest możliwe rozumowanie symboliczne ze zmiennymi w wyniku czego mogą w bazie wiedzy powstawać reguły bardzo ogólne, które pozwalają na stosowanie ich dla różnych obiektów.

Czasami używa się bardziej zmatematyzowanej formy zapisu reguł, gdzie zostaje opuszczone funktory IF i THEN. Wówczas taka reguła wykorzystuje implikację i ma postać:

(przesłanka / przesłanki) (konkluzja).

Systemy ekspertowe oparte na regułach mogą zawierać reguły, które są charakteryzowane, podobnie jak stwierdzenia, pewnym stopniem pewności. Są to zazwyczaj liczby z przedziału [-1,1] lub [0,1]. Liczby te określają, jaki jest stosunek twórcy systemu czy użytkownika do pewności konkluzji w danej regule. Reguły mogą mieć również postać rozwiniętą, która ma postać:

IF przesłanka THEN konkluzja1 ELSE konkluzja2.

Konkluzja2 jest wtedy dodatkowym stwierdzeniem, które jest wyprowadzane, gdy przesłanka nie jest spełniona.

Ze względu na rodzaj wysuwanych wniosków reguły można podzielić na:

Sieci semantyczne.

Sieć semantyczna jest graficzną reprezentacją związków między jednostkami posiadanej wiedzy. Podstawowymi składnikami sieci są węzły (używane do opisu elementów, pojęć, obiektów) oraz łuki (do przedstawiania relacji pomiędzy opisywanymi elementami). Przypadkiem sieci semantycznej jest tzw. sieć stwierdzeń, która ma postać grafu z węzłami przedstawiającymi stwierdzenia i z łukami określającymi relacje pomiędzy nimi. Podobnie jak w stwierdzeniach i w regułach, także tutaj węzły mogą mieć przypisane stopnie pewności, które mówią o słuszności stwierdzeń. Odnośnie relacji to są one najczęściej typu: „jest ”, „ma”, „jest częścią...”, „jest rodzajem...”. Podstawową koncepcją sieci semantycznej jest zasada dziedziczenia, na podstawie której właściwości pewnych elementów są określane (na zasadzie dedukcji) według właściwości innych, nadrzędnych elementów.

Wnioskowanie przy użyciu sieci semantycznej jest proste i polega na „poruszaniu się” po grafie i dedukowaniu różnych konkluzji. Jednak rozważając ten typ reprezentacji wiedzy trzeba sobie wyraźnie uświadomić, że nie ma ścisłych reguł semantycznych, według których można by zawsze poprawnie wnioskować. Poza tym problem pojawia się przy określaniu, czy węzły sieci reprezentują jeden obiekt, czy całą klasę obiektów. W celu przezwyciężenia tych ograniczeń sieci semantyczne wiąże się często z ramami lub regułami. W przypadku zastosowania ram to one właśnie charakteryzują indywidualne obiekty, natomiast sieć semantyczna obrazuje relacje pomiędzy ramami.

Przedstawiony poniżej graf (rys. 13) opisuje budynek o nazwie dom. Przykładowa sieć semantyczna jest skierowana w ten sposób, że pomiędzy węzłami grafu zachodzą relacje w jedną stronę. Relacje są typu: M - ma, J - jest oraz W - jest w.... Na podstawie tej sieci można wyprowadzić stwierdzenie, że „Dom jest budynkiem”. Nie można natomiast wyprowadzić stwierdzenia odwrotnego, że „Budynek jest domem” (to byłoby równoznaczne, że każdy budynek należy do klasy o nazwie dom - co jest w oczywisty sposób nieprawdziwe). Można za to stwierdzić, że dom należący do klasy budynek ma okno, komin oraz drzwi, które z kolie posiadają klamkę. Na podstawie sieci można też wydedukować, że dom jest ogrzewany, ale to nie zawsze musi być prawdą. Jest tak zazwyczaj, gdy budynek jest w klimacie chłodnym.

0x01 graphic

Rys. 13. Przykładowa sieć semantyczna. Źródło: opracowanie własne.

Ramy.

Ramy zapewniają reprezentację specyficznego obiektu i całej informacji o tym obiekcie (lub klasie obiektów). Reprezentacja w postaci ram umożliwia bardziej zrozumiały strukturalny opis dziedziny problemu. Każda rama posiada swoją nazwę i jest złożona ze szczelin (klatek), które z kolei tworzą zbiory elementów tzw. fasety (ang. facet). Identyfikacja ram i szczelin dokonuje się poprzez ich nazwy. Szczeliny służą do przechowywania deskryptorów (cech charakterystycznych) obiektu, który opisuje rama. Deskryptorami są np. powiązania obiektu z innymi obiektami czy wartości cech obiektu (tymi wartościami mogą być liczby, teksty, a także kolejne ramy). Wartość szczeliny jako rzeczywista dana jest zapisana w fasecie typu VALUE; szczelina może jednak zawierać także fasety innych typów.

Koncepcja ram wykorzystuje, podobnie jak i sieci semantyczne, zasadę dziedziczenia, gdzie właściwości obiektów nadrzędnych przechodzą na obiekty podrzędne. Tak więc rama
o nazwie dom może dziedziczyć cechy obiektów z ram o nazwach budynek mieszkalny, budynek, budowla, itd. Pewna klasa obiektów może znajdować się w kilku różnych ramach, które przedstawiają te obiekty na różnym stopniu specyfikacji. Dla przykładu klasa obiektów o nazwie dom może się znaleźć w ramach o nazwach: budynek, budowla.

Wnioskowanie w systemach ramowych dokonuje się dzięki procedurom zawartym
w szczelinach lub poprzez wzajemne powiązanie ram i dziedziczenie. Powiązanie ram może mieć formę członkostwa lub podklasy.

Ponadto ramy mogą zostać użyte do organizacji reguł. Jeżeli reguły są reprezentowane jako rama, mogą być łatwo pogrupowane w klasy. Taka metawiedza może być reprezentowana w ramach mających połączenie z wszystkimi ramami reprezentującymi podklasy reguł lub regułami-członkami klasy.

Zarządzanie bazą wiedzy.

Zarządzanie bazą wiedzy dotyczy definiowania wiedzy i struktury oraz sposobu manipulowania tą wiedzą. Aby system ekspertowy mógł wykonać powyższe zadania, musi posiadać zbiór odpowiednich funkcji, które pozwolą mu dokonać odpowiednich czynności na podstawie ich definicji. W każdej bazie wiedzy musi być zawarty opis obiektów (faktów) i zależności, jak również opis sposobu rozwiązywania problemu. Bez tych dwóch elementów system nie będzie mógł działać. Oczywiście można skupić się na jednym z nich w większym stopniu niż na drugim i jeden z nich uczynić nadrzędnym w stosunku do drugiego. Stąd definiując wiedzę można zdecydować się na jedno z dwóch podejść, tj. na:

W podejściu zorientowanym na rozwiązywanie problemów kładzie się nacisk na to, jak rozwiązywany jest problem. Wówczas do wnioskowania na określonym zbiorze danych wykorzystuje się heurystyki i różne strategie poszukiwania.

Ważną cechą zarządzania wiedzą staje się możliwość strukturalizacji wiedzy w zbiory reguł. Zbiór reguł jest zestawem reguł, które odnoszą się do definiowanego aspektu problemu. Zbiory te agregują i rozdzielają reguły według pewnych zdefiniowanych kryteriów. Zaletą jest to, że w dużych bazach wiedzy segmentacja wiedzy w zbiory reguł może znacznie zwiększyć efektywność przeszukiwania, a mechanizm wnioskowania może otrzymać informacje gdzie szukać wiedzy. Duża część bazy wiedzy może być wówczas ignorowana przy przeszukiwaniu, co znacząco przyspiesza ten proces. Jeżeli problem jest bardzo złożony, to może on być podzielony na podproblemy, z których każdy może dotyczyć pojedynczego, dobrze zdefiniowanego zagadnienia. Najczęściej bowiem, gdy ekspert ma rozwiązać problem, to podchodzi do niego kolejno z różnych punktów widzenia, dekomponując w ten sposób jedną złożoną czynność (którą musi docelowo wykonać) na szereg czynności składowych.

Co się tyczy drugiego podejścia, które jest zorientowane na obiekty, to przy jego przyjęciu rozwiązywany problem modelowany jest na zbiór obiektów i zależności. Obiekt może być rzeczą fizyczną, koncepcją lub procedurą. Tutaj następuje skupienie się na obiektach i wokół obiektów oraz ich klas organizuje się całą wiedzę z danej dziedziny. Jeśli chodzi o zarządzanie wiedzą od strony tego podejścia, to jego ważną cechą staje się możliwość ustrukturalizowanej reprezentacji obiektów i klas obiektów w postaci ram,
o których była wyżej mowa.

        1. Pamięć robocza

Pamięć robocza, nazywana również przestrzenią roboczą lub chwilową bazą danych systemu, służy do tymczasowego przechowywania tych danych, które dotyczą aktualnie przetwarzanych problemów, lub inaczej, powstają na użytek konkretnego zagadnienia. Uaktualnianie i przeglądanie przestrzeni roboczej jest możliwe dzięki zastosowanemu mechanizmowi wnioskowania. W przestrzeni roboczej wykorzystywana jest wiedza aktualnie potrzebna, najczęściej pochodząca z bazy wiedzy albo wydobyta od użytkownika. W przestrzeniu tej przechowywane są dane o rozważanych obiektach, hipotezy i wyniki pomiarów, odpowiedzi użytkownika na pytania systemu.

Chwilowa baza danych różni się więc od głównej bazy wiedzy tym, że w przeciwieństwie do niej nie jest stała. Jest tworzona tylko dla rozwiązania konkretnego problemu. W chwili rozpoczęcia pracy nad innym zadaniem baza danych powstaje od początku.

        1. Mechanizm wnioskowania.

Mechanizm wnioskowania dokonuje w automatyczny sposób rozumowania, które ostatecznie prowadzi do rozwiązania postawionego problemu na podstawie wiedzy zawartej w bazie wiedzy. Jest on elementem kontrolującym cały system ekspertowy. Mechanizm wnioskowania uruchamia wiedzę w bazie wiedzy w celu realizacji rozwiązań. W ten sposób „lokalizuje [on] wiedzę i tworzy nową wiedzę na podstawie istniejącej [w bazie wiedzy]”. Jest on aktywizowany, kiedy użytkownik inicjuje konsultację z systemem. Mechanizm wnioskowania również decyduje, które reguły należy uruchomić (i w jakiej kolejności), przegląda przestrzeń roboczą, gdzie przechowywane są informacje o stanie początkowym faktów i gdzie wywnioskowane fakty są przechowywane podczas procesu wnioskowania. Aby wykonać każdą elementarną dedukcję, mechanizm ten wykorzystuje logikę matematyczną (wzbogaconą czasem o elementy probabilistyki) do ewaluacji prawdziwości (lub prawdopodobieństwa) kolejnych reguł, tworzących łącznie łańcuch wnioskowania. Oparty na regułach system osiąga ostateczną konkluzję poprzez serię elementarnych konkluzji. Kiedy kolejno wydedukowany fakt jest umieszczany w przestrzeni roboczej, w wyniku czego tworzony jest nowy wzorzec danych, który może być dalej porównywany z innymi regułami. W kolejnym kroku mogą być wydedukowane nowe fakty itd., aż zostanie osiągnięta ostateczna konkluzja. Tak mniej więcej wygląda działanie mechanizmu wnioskowania.

Jednym z podstawowych postulatów tworzenia systemów ekspertowych, o którym już wspomniano, jest, by maszyna wnioskująca była oddzielona od bazy wiedzy. Dzięki temu
w szkieletowych systemach ekspertowych maszyna wnioskująca działa tak samo poprawnie dla dowolnych dziedzin wiedzy. Maszyna wnioskująca przeszukuje przestrzeń stanów rozważanego problemu za pomocą odpowiednio wbudowanych w system strategii przeszukiwań i heurystyk, stosując przy tym stale wybrane metody wnioskowania. Strategie przeszukiwania mówią, w jaki sposób maszyna wnioskująca ma sprawdzać prawdziwość kolejnych stanów środowiska. Heurystyki pomagają zoptymalizować poszukiwania rozwiązań: pozwalają pominąć te ścieżki poszukiwań, które nie rokują nadziei na odnalezienie rozwiązania, skracają czas dochodzenia do wyniku itp. Natomiast metody wnioskowania decydują o tym, w jaki sposób zachodzi proces „myślenia”, czy jest to na przykład wnioskowanie w przód (dedukcja), czy wstecz (indukcja). Te dwa typy wnioskowania odnoszą się do sposobu sprawdzania reguł przez mechanizm wnioskowania: czy rozpoczyna od przesłanek (w przód), czy od konkluzji (wstecz). O strategiach przeszukiwania i heurystykach oraz o metodach wnioskowania jest mowa w podrozdziałach 4.2.2 i 4.2.3.

        1. Interfejs użytkownika.

Co to jest interfejs użytkownika?

Zadaniem interfejsu użytkownika jest umożliwienie formułowania zadań przez użytkownika oraz udzielania przez system odpowiedzi przedstawianych użytkownikowi jako wnioski z rozumowania przeprowadzonego przez system. W jednym i w drugim przypadku system zyskuje uznanie użytkownika jeśli forma komunikacji może maksymalnie przypominać swobodną komunikację językową miedzy ludźmi - co jest możliwe do osiągnięcia w sztucznym systemie dzięki procedurom sterowania dialogiem. Interfejs użytkownika działa nie tylko na początku (inicjując rozumowanie) i na końcu (podając rozwiązanie), ale z reguły pozwala także na przyjmowanie od użytkownika dodatkowych wskazówek i zapytań w dowolnym momencie wnioskowania. W tym celu istnieją w tym interfejsie procedury objaśniania, umożliwiające odpowiadanie na te bieżąco stawiane pytania i komentarze, poprzez które system ekspertowy staje się dla użytkownika bardziej wiarygodny. System objaśniający powinien zgłaszać się każdorazowo przy zadawaniu pytań przez użytkownika oraz w chwili, gdy zostanie osiągnięty wynik końcowy (zarówno pozytywny, jak i negatywny). System może się także zgłaszać gotowość do dialogu przy analizowaniu każdego warunku, gdy zostanie wprowadzona do niego odpowiednia opcja pozwalająca na bieżące śledzenie procesu rozumowania. Gdy częstotliwość takich zgłoszeń jest duża, użytkownik może śledzić dokładnie każdy krok systemu, w związku z tym ułatwione jest jego testowanie - na przykład dla nowo utworzonej bazy wiedzy. System ekspertowy powinien mieć maksymalnie „przyjazny” interfejs użytkownika, gdyż tylko wtedy mogą z niego korzystać osoby bez przygotowania informatycznego.

Rola użytkownika w systemach ekspertowych.

W literaturze dotyczącej systemów ekspertowych dużo pisze się o ekspertach i o pozyskiwaniu wiedzy, natomiast mało o użytkownikach i ich charakterystyce. A to przecież dla nich jest tworzony system ekspertowy i oni dokonają jego oceny. Według terminologii komputerowej „pracownik lub decydent wykorzystujący system ekspertowy określani są terminem użytkownik”. Charakterystyka użytkownika narzuca pewne ograniczenia przy projektowaniu systemu ekspertowego. Często rozpatrywany jest problem, na ile różnica w wiedzy pomiędzy ekspertem a użytkownikiem ogranicza funkcjonalność systemu ekspertowego. Dlatego zakłada się, że użytkownik zna przynajmniej podstawową terminologię w danej dziedzinie.

Użytkownik systemu ekspertowego może występować w następujących rolach:

Jak już wiadomo system ekspertowy musi rozwiązywać problem zadany mu przez użytkownika, jak również:

Wyprowadzona konkluzja może być na przykład diagnozą choroby (przy SE z dziedziny medycyny), czy zaleceniem dla konkretnej sytuacji finansowej (przy finansowych systemach ekspertowych). Ważne jest, aby zbiór konkluzji był w systemie pełni wyspecyfikowany. Natomiast działaniem, jakie wykona system ekspertowy, jest tylko wyszukanie odpowiedniego elementu tego zbioru. System ekspertowy pracuje w trybie konsultacji, tzn. użytkownik konsultuje się z systemem. W trakcie konsultacji występuje zwykle współdziałanie użytkownika i systemu, zwłaszcza w przypadku, gdy użytkownik (albo system!) potrzebuje dodatkowych informacji. Sam użytkownik nie ma bezpośredniego wpływu na proces wnioskowania, ale ma go informacja wprowadzana przez niego podczas konsultacji.

Istotnym aspektem rozwiązywania problemu przez człowieka jest możliwość uzyskania dodatkowych wyjaśnień eksperta. Chodzi o to, w jaki sposób pewna specyficzna konkluzja została osiągnięta lub dlaczego zadaje on pewne pytania. Od systemu ekspertowego oczekuje się więc, aby miał podobne możliwości.

Konsultacja.

Użytkownik może się konsultować z SE podczas wykonywania takich zadań, jak wystawianie diagnozy, przygotowanie planu lub uzyskanie zaleceń przy wyborze jednej
z alternatywnych decyzji. Zakres działań, jakie wykonuje system ekspertowy może być różny od zakresu działań, jakie wykonuje użytkownik, np. system ekspertowy z zakresu decyzji kredytowych może być zaprojektowany na przykład do takich zadań, jak:

Jeśli chodzi o pierwszy przykład, to system prawie sam w pełni podejmuje decyzję. Decyzja kredytowa może być wtedy powierzona ludziom nie wyszkolonym w dziedzinie finansów i niezdolnym do samodzielnego podejmowania decyzji kredytowych - ale opierającym się na radach systemu ekspertowego. W przykładzie drugim system tylko wspomaga decydenta, który sam może podjąć ostateczną decyzję na podstawie dodatkowych danych. Natomiast w ostatnim przypadku analiza finansowa wykonana przez system jest tylko jednym z kilku raportów, na podstawie których można podjąć decyzję.

Jeżeli zaczyna się projektować system ekspertowy należy zwrócić szczególną uwagę na to, aby odróżnić zadania użytkownika i zadania samego systemu.

Diagnozowanie.

Wydanie diagnozy oznacza określenie przyczyny pojawiania się problemu na podstawie zbioru symptomów lub innych charakterystyk sytuacji. Medyczna diagnoza choroby może być otrzymana ze zbioru symptomów zaobserwowanych u pacjenta, natomiast w finansach diagnozą może być dla przykładu zyskowność czy płynność finansowa, które są otrzymane na podstawie analizy danych finansowych firmy. Problemy diagnozowania oparte są najczęściej na procesie wnioskowania w warunkach niepewności i rozwiązywane są poprzez proces generowania i weryfikowania hipotez. W małych zbiorach konkluzji diagnoza może być wyciągana w sposób systematyczny, gdzie każda odpowiedź jest sprawdzana indywidualnie i oceniana, czy jest prawdziwa lub fałszywa (z pewnym stopniem niepewności). Na końcu diagnozowania dostarczana jest lista konkluzji uporządkowana w kolejności malejącego prawdopodobieństwa.

Problem pojawia się wtedy, gdy istnieje równolegle wiele rozwiązań. Wówczas nie można wybrać najbardziej prawdopodobnego rozwiązania, jak też nie można uwzględnić wszystkich rozwiązań powyżej pewnego progu prawdopodobieństwa. Są jednak diagnostyczne systemy ekspertowe, które pracują z wieloma diagnozami jednocześnie. W dużych zbiorach konkluzji nie weryfikuje się wszystkich możliwych rozwiązań oddzielnie, ponieważ jest to nieefektywne. Wówczas pojawia się konieczność generowania hipotez. Tak więc symptomy mogą być użyte do generowania wiarygodnych, możliwych do przyjęcia hipotez, które są następnie testowane i weryfikowane.

Z diagnozowaniem powiązane jest klasyfikowanie. Jest to przypisywanie poszczególnych obiektów do określonych klas, które są z góry określone. Każda taka klasa jest zdefiniowana na podstawie zbioru typowych cech charakterystycznych. Klasyfikacja więc polega na porównywaniu poszczególnych cech obiektu z cechami charakterystycznymi jednej z klas. Dla przykładu diagnoza medyczna polega na określeniu choroby na podstawie zbioru objawów podanych przez pacjenta. Objawy pacjenta są porównywane ze zbiorem cech charakterystycznych dla jakiejś choroby. Jeżeli cechy choroby są zgodne z objawami to problem jest określony. Jednak i tutaj są komplikacje procesu wnioskowania. Jakie bowiem mają być warunki konieczne i wystarczające, aby zakwalifikować obiekt do jakiejś klasy?
A co jeśli jest wiele konkluzji, jak je interpretować?

Wyjaśnienia.

Moduł ten w systemach eksperckich powoduje, że poszczególne konkluzje stają się umotywowane, tzn. zostaje określone jak przebiegało wnioskowanie. Skoro eksperci potrafią objaśniać swoje decyzje, tak więc i od systemu ekspertowego oczekuje się tego.

Najpowszechniejszym typem wyjaśnień są wyjaśnienia retrospektywne. JAK (ang. how) poszczególna konkluzja została osiągnięta? W odpowiedzi na to system powinien wyświetlić łańcuch reguł, które były wykonane w celu osiągnięcia tej konkluzji. Opcja ta jest dostępna w dowolnej chwili. Przy wywołaniu po odpowiedzi końcowej system odpowie jak doszedł do celu, natomiast przy pozostałych wywołaniach system odpowie jak doszedł do faktu, którym zainteresował się użytkownik.

Powszechne są również wyjaśnienia typu DLACZEGO (ang. why) jest analizowany dany warunek. System wówczas podaje nazwę i postać reguły, która jest analizowana
z zaznaczeniem bieżącego warunku. Opcja ta jest niedostępna, gdy zostaną ustalone odpowiedzi końcowe.

Pytania typu JAK i DLACZEGO są ułatwieniami dla użytkownika. Przydatne może być posiadanie przebiegu całej drogi procesu wnioskowania, czyli wyświetlania wszystkich próbowanych reguł. Typowym poleceniem wykonującym tę funkcję jest tzw. ślad (ang. trace,), który jest najczęściej wykorzystywany przez inżynierów wiedzy podczas projektowania i testowania systemu.

Ponadto systemy ekspertowe wyposażone są typowo w mechanizmy wnioskowania typu CO-JEŻELI (ang. what will be if). System wyjaśnia co się stanie, jeżeli użytkownik wybierze jedną z możliwych odpowiedzi. Ma to pomóc użytkownikowi w udzielaniu odpowiedzi (opcja dostępna tylko przy zadawaniu pytań).

Istnieją alternatywne narzędzia objaśnień, od prostej listy numerów wykonanych reguł, poprzez wyświetlanie reguł tak jak są zawarte w bazie wiedzy, do tłumaczenia ich na język naturalny.

Jeśli chodzi o narzędzia objaśniania, to są jeszcze inne, m.in. i takie, które pozwalają wyjaśniać wartości numeryczne obliczane przez model, czy udzielać odpowiedzi podając zmienne wpływające pozytywnie i negatywnie na badane wskaźniki.

      1. Strategie przeszukiwań i heurystyki w systemach ekspertowych.

        1. Istota przeszukiwania.

Aby rozwiązać problem należy przejść drogę od jego definicji czyli stanu początkowego poprzez stan pośredni do ostatecznego rozwiązania czyli stanu końcowego. Przy rozwiązywaniu określonego problemu trzeba wybrać technikę postępowania.
W systemach ekspertowych stosuje się tzw. metodę przeszukiwania. Jest ona odpowiednia dla SE ponieważ nie ma konieczności określania z góry ciągu czynności prowadzących do rozwiązania, co byłoby trudne dla wielu problemów rozwiązywanych przez te właśnie systemy. Ma tu natomiast miejsce analiza alternatyw. Ponadto metoda przeszukiwania ogranicza się do określania zbioru stanów przestrzeni rozwiązywanego problemu, stanu początkowego i końcowego oraz zbioru operatorów, które przekształcają te stany.

Graficzną prezentacją procesu rozwiązywania problemu jest graf stanów. Tworzą go stany początkowe i operatory. Węzły odpowiadają stanom problemu, a połączenia między węzłami operatorom. Taki graf stanów ma najczęściej postać tzw. drzewa wyszukiwania, które zawiera wszystkie możliwe ścieżki (gałęzie) prowadzące od stanu początkowego do stanu końcowego.

Wyróżnia się dwie metody przeszukiwań:

Metody przeszukiwań określane jako „ślepe”.

Jeśli chodzi o metody ślepe to nie wykorzystują one informacji o dziedzinie rozwiązywanego problemu i rozważają wszystkie możliwe rozwiązania, mają więc charakter uniwersalny. Metody te przeszukują więc przestrzeń stanów bez świadomości prawdopodobieństwa sukcesu dla jednej lub innej drogi. W strategiach ślepych porządek przeszukiwań zależy tylko od informacji dostarczonej przez już zbadane węzły grafu i proces przeszukiwania.

Zalicza się tutaj strategie przeszukiwań takie jak: w głąb, wszerz, strategię
z powracaniem, strategię zachłanną (będzie mowa o nich dalej).

Metody heurystyczne przeszukiwań.

Natomiast charakteryzując metody heurystyczne należy zaznaczyć, że są one dostosowane do danego problemu i uwzględnia się w nich informacje o przestrzeni stanów oraz operatorach. Metody heurystyczne mają na celu wybrać kierunek postępowania gwarantujący efektywność rozwiązywania problemów. Pozwalają więc wybrać najbardziej obiecującą ścieżkę (operator), co ułatwia i przyspiesza proces rozwiązywania problemu. Wybór najlepszej ścieżki w przeszukiwaniu heurystycznym dokonywany jest m.in. poprzez analogie, uproszczenia, co jest związane z wiedzą prywatną eksperta o sposobie rozwiązania danego problemu (wiedzę tę stanowi intuicja, przypuszczenia, zdroworozsądkowe zasady sformułowane na podstawie wieloletniego doświadczenia czyli tzw. „rules of thumb”). Do strategii heurystycznych należą m.in. strategia „najpierw najlepszy” i strategia A*, które zostaną dalej krótko omówione.

Metody heurystyczne wykorzystuje się najczęściej tam, gdzie nie ma algorytmu lub istnieje algorytm, ale daje on niezadowalające wyniki. Bowiem heurystyki mogą zwiększać niepewność otrzymanego wyniku, np. ze względu na błędną intuicję. Metody te stosuje się też zazwyczaj dla zadań o złożoności obliczeniowej, gdzie dokładne algorytmy zawodzą.

        1. Charakterystyka strategii przeszukiwań.

Kryteria, które są najczęściej wykorzystywane przy ocenie skuteczności strategii to:

Na podstawie tych kryteriów definiuje się szereg strategii przeszukiwania zbiorów rozwiązań:

Strategia w głąb (ang. depth - first).

Kolejność przeszukiwania grafu, jak sama nazwa mówi, jest w głąb czyli węzłami w dół. Przestrzeń jest przeszukiwana dopóki nie osiągnie się węzła celu lub węzła końcowego. W strategii tej ma miejsce tzw. ekspansja węzłów, tj. generowanie wszystkich ich potomków (rozgałęzień węzła). Ponadto wyznawana jest zasada, że po penetracji w dół powraca się do ostatnio sprawdzanego węzła, który ma gałęzie jeszcze nie rozwijane. Przykład przeszukiwania węzłów z wykorzystaniem strategii w głąb przedstawia poniższy rysunek 14, a kolejność przeszukiwanych węzłów podana jest za pomocą liczb arabskich. Węzłem celu jest węzeł zakreskowany i został on osiągnięty w kroku 11.

0x01 graphic

Rys. 14. Kolejność przeszukiwania grafu w strategii w głąb i w strategii wszerz. Źródło: opracowanie własne.

Wadą tej strategii jest to, że w przypadku dużej głębokości grafu strategia jest nieskuteczna i z dużym kosztem obliczeniowym, ponieważ węzły są badane wzdłuż jednej ścieżki aż do jej zakończenia (jak już wiadomo dopiero po zakończeniu ścieżki następuje powrót do ostatniego węzła z nierozwijaną gałęzią). Sytuacja się polepsza gdy zastosuje się mechanizm kontroli ograniczenia głębokości - rozwiązanie coraz bardziej powszechne. Jeśli chodzi o koszty pamięciowe to w pamięci znajdują się węzły z aktualnie badanej ścieżki.

Strategia wszerz (ang. breadth - first).

Kolejność przeszukiwania jest wszerz czyli przeszukuje się kolejno węzły na tym samym poziomie grafu (węzły o tej samej głębokości). Poszukiwanie rozpoczyna się od węzłów o mniejszej głębokości. Podobnie jak przy strategii w głąb ma miejsce ekspansja węzłów. Na poprzednim rysunku widać sposób przeszukiwania z wykorzystaniem również tej strategii. Są to liczby rzymskie, a węzeł celu został osiągnięty w kroku IX.

Zaleta strategii wszerz to przede wszystkim gwarancja osiągnięcia węzła celu dla lokalnie skończonych grafów, gdzie każdy węzeł ma skończoną liczbę gałęzi. Wyznaczone jest też rozwiązanie optymalne pod względem długości ścieżki rozwiązania. Z kolei wadą jest przeszukiwanie wszystkich węzłów, które mają mniejszą głębokość od głębokości węzła celu. Natomiast w pamięci przechowywane są wszystkie węzły o danej głębokości, aż zostanie wygenerowany węzeł o głębokości większej o 1.

Strategia z powracaniem (ang. backtracking).

Strategia ta jest podobna do strategii w głąb, z tą różnicą, że następuje zamiana ekspansji badanego węzła, czyli generowania wszystkich jego potomków, na generowanie tylko jednego potomka (gałęzi). W ten sposób jest rozszerzany węzeł, aż do momentu, gdy nie można wygenerować potomka. Wtedy następuje powrót do najbliższego przodka, przy którym jest możliwość wygenerowania innego potomka.

Zaletą strategii z powracaniem jest oszczędność pamięci w stosunku do strategii w głąb. Testowane są wszystkie wygenerowane węzły (tak nie musi być w strategii w głąb, gdzie od razu są generowani wszyscy potomkowi węzła, a nie wszystkie są później sprawdzane). Kosztem oszczędności pamięci jest jednak znacznie zwiększona liczba obliczeń.

Strategia zachłanna (ang. hill - climbing).

W tej strategii proces poszukiwania zaczyna się od tego, że wykonywana jest ekspansja węzłów, po której jest wybierany węzeł najbardziej obiecujący do dalszej ekspansji. Za wadę tej strategii uznaje się zwykle brak możliwości powrotu do przodka aktualnie badanego węzła (pojawia się w związku z tym problem, jeśli wybrana droga okaże się nieskończona), ale za zaletę tej metody uważa się prosty algorytm obliczeniowy.

Strategia „najpierw najlepszy” (ang. best - first).

Jest to strategia stosowana dla metody heurystycznej, gdzie do rozwiązania problemu wykorzystuje się pewną informację heurystyczną, aby zminimalizować koszty przeszukiwania. Wykorzystywana jest funkcja heurystyczna do oceny węzłów, a następnie wybrany zostaje węzeł, dla którego ta funkcja przyjmuje najmniejszą wartość (bez względu na jego położenie w grafie). Również i w tej strategii ma miejsce ekspansja węzłów do ich rozszerzania. Funkcję oblicza się ze względu na następujące kryteria:

Strategia A*.

Jest to strategia, w której funkcja heurystyczna jest sumą dwóch składników, tj. kosztu drogi łączącej aktualny węzeł z węzłem celu i kosztu drogi łączącej węzeł początkowy
i aktualny. Celem jest wyznaczenie węzłów tak, aby droga w grafie była najtańsza.

Przedstawione wyżej strategie przeszukiwania są najbardziej popularne i stosowane
w systemach ekspertowych. Wybór jednej z nich jest uzależniony od różnych czynników. Takim wyznacznikiem efektywności danej strategii może być ich zachowanie w stosunku do przedstawionych kryteriów. Należy brać też pod uwagę wielkość przestrzeni przeszukiwań. Dla bliższego scharakteryzowania dyskutowanych metod podamy teraz kilka szczegółów na temat strategii wnioskowania, gdyż zwykle strategia wyszukiwania i strategia wnioskowania są ze sobą powiązane.

      1. Metody wnioskowania w systemach ekspertowych.

        1. Wnioskowanie w przód.

Wnioskowanie w przód nazywane jest też niekiedy progresywnym, ze względu na jego kierunek dochodzenia do celu. Przebieg wnioskowania w przód zostanie przedstawiony na przykładzie. Mechanizm wnioskowania powinien rozwiązać problem poprzez osiągnięcie postawionej hipotezy (celu). Niech tym przykładowym celem będzie wniosek E - co do którego trzeba orzec, czy jest prawdziwy, czy nie (na przykład może to być wniosek mówiący, że klientowi należy udzielić kredytu). W bazie wiedzy są dostępne pewne reguły oraz pewne fakty, z których mechanizm wnioskowania korzysta. Dla przykładu niech w przestrzeni roboczej znajdują się fakty A i B, a baza wiedzy składa się z 3 reguł R1, R2, R3:

R1: if A and B then C,

R2: if B then D,

R3: if C and D then E.

Przy metodzie wnioskowania w przód należy z nich wygenerować reguły, które mają warunki (przesłanki) zgadzające się z faktami w przestrzeni roboczej, czyli z A i B. Jak widać regułami takimi są R1 i R2. W ogólnym przypadku takich reguł może być bardzo dużo i problemem jest wybór jednej z nich albo ustalenie kolejności wykonywania pozostałych, co jest również zadaniem mechanizmu wnioskowania. Dlatego dla doboru reguł stosuje się (w ogólnym przypadku) różne strategie; w naszym przykładzie dla ułatwienia będzie to strategia „pierwsza pasująca”. Wybrana więc zostaje reguła R1. Zawiera ona fakty A i B, które są prawdziwe, ponieważ są w bazie. Z prawdziwości A i B wynika prawdziwość C, więc ten fakt zostaje dołączony do bazy wiedzy. Następnie wykonuje się reguła R2 i dołączony zostaje fakt D. I w końcu reguła R3, ponieważ zawiera ona fakty C i D, które zostały dołączone do bazy wiedzy, czyli są prawdziwe. Wskutek wykonania tej reguły zostaje wreszcie dołączony fakt E (jako konkluzja) i uznany za prawdziwy.

Wnioskowanie naszkicowane wyżej nazywa się też wnioskowaniem sterowaniem danymi, bo dodane fakty sterują mechanizmem wyboru reguł.

Cykl pracy podczas tego wnioskowania jest wykonywany wielokrotnie, tak długo, aż znajdzie się cel i doda się go do przestrzeni roboczej BW.

Ogólny algorytm dyskutowanej metody wygląda następująco:

  1. wybór reguł, których przesłanki zgadzają się z potwierdzonymi faktami w przestrzeni roboczej BW,

  2. wybór pierwszej reguły do wykonania,

  3. uzupełnienie BW o nowe fakty.

Opisane kroki powtarza się aż do znalezienia potrzebnej konkluzji (lub aż do stwierdzenia, że konkluzja w zadanej postaci jest nieosiągalna).

Cechą tego wnioskowania jest to, że kolejno wszystkie istotne fakty zostają dołączone do przestrzeni roboczej BW co może z jednej strony może zapełnić dostępną pamięć operacyjną (wada), ale też z drugiej strony szybciej pozwala sprawdzić hipotezę przy wielu faktach (zaleta).

        1. Wnioskowanie wstecz.

Wnioskowanie wstecz zwane jest regresywnym. Przebiega ono odwrotnie do wnioskowania w przód. Tutaj rozwiązanie problemu następuje poprzez hipotetyczne założenie (a'priori) o prawdziwości postawionej hipotezy (celu) - w rozważanym przykładzie jest to E. Hipotezę tę można potwierdzić, gdy osiągnie się (wnioskując wstecz) regułę związaną z faktami, które są wszystkie prawdziwe. Napotkawszy taką regułę możemy stwierdzić, reguła ta ma prawdziwą konkluzję (potwierdzoną w BW), a łańcuch wnioskowanie, który do niej doprowadził, stanowi gwarancję prawdziwości interesującej tezy E. Dla przykładu mamy te same reguły co poprzednio i te same dwa fakty A i B, potwierdzone w BW. Należy więc wykazać prawdziwość hipotezy E (fakt E jest naszym celem) stosując wnioskowanie wstecz.

Mechanizm tego wnioskowania na początku stwierdza, że E nie ma w roboczej BW. Ale konkluzja E występuje w regule R3. Jeszcze jednak nie można potwierdzić faktu E, ponieważ reguła R3 zawiera fakty C i D, które także nie występują w roboczej BW. Więc najpierw należy wykazać ich prawdziwość. To można już w miarę prosto dowieść, poprzez generowanie kolejno reguł R1 i R2, które zawierają prawdziwe fakty A i B - przez co i C oraz D stają się prawdziwe. Ostatecznie to potwierdza prawdziwość E. Uaktywniana jest więc reguła R3 i fakt E zostaje dołączony do roboczej BW.

Wnioskowanie to nazywa się wnioskowaniem sterowanym przez cel, a cykl pracy systemu podczas tego wnioskowania jest wykonywany tak długo, aż cel zostanie potwierdzony przez fakty z roboczej BW. Rozumowanie opisane wyżej w postaci formalnego algorytmu przedstawia się następująco:

  1. wyszukiwanie reguły/reguł gdzie konkluzja odpowiada celowi/podcelom,

  2. wybór jednej reguły stosując odpowiednią strategię,

  3. zamiana podcelów na cel.

We wnioskowaniu wstecz (porównując je z wnioskowaniem w przód) nie można jednocześnie wykazywać kilku hipotez (wada), ale za to jest mniejsza liczba generowanych faktów i zazwyczaj krótszy czas oczekiwania na potwierdzenie hipotezy (zaleta).

        1. Wnioskowanie mieszane.

Przy posiadaniu dwóch strategii (wnioskowania w przód i wstecz) o komplementarnych właściwościach celowe jest rozważenie możliwości zastosowania strategii mieszanej (hybrydowej). Ogranicza się ona zwykle do stosowania wnioskowania w przód i wstecz w różnych proporcjach. Przełączanie od jednej strategii do drugiej odbywa się za pomocą tzw. metareguł, które zawierają metawiedzę. Przy wnioskowaniu mieszanym w systemach ekspertowych obok bazy wiedzy musi więc znajdować się zbiór metareguł, których zbudowanie w ogólnym przypadku nie jest łatwe. Pewnym rozwiązaniem może tutaj być podział bazy wiedzy na 2 części, gdzie w jednej zgromadzone są reguły do wnioskowania w przód, a w drugiej reguły do wnioskowania wstecz. Metareguły mogą preferować to z wnioskowań, od którego najłatwiej zaczyna się wyszukiwanie odpowiednich reguł. Gdy nie osiągnie się celu wybraną drogą. to następuje automatyczne przełączenie na drugi rodzaj wnioskowania z wykorzystaniem reguł z drugiej części bazy wiedzy.

Problemem jest odpowiednie stworzenie metareguł dla rozwiązywania danych problemów. Źle pozyskana metawiedza może znacznie spowolnić otrzymanie rozwiązania.

        1. Wnioskowanie rozmyte.

Krótko charakteryzując wnioskowanie rozmyte należy stwierdzić, że jest ono wykorzystywane w przypadku informacji niejednoznacznej, niekompletnej i niepewnej. Istotą tego podejścia jest pojęcie przynależności określonych obiektów do określonych zbiorów, jako wartości ciągłej z przedziału [0,1]. Fakty niepewne mogą być zawarte w tym zbiorze rozmytym poprzez nadanie im odpowiedniej wartości przynależności, przy czym 0 oznacza, że fakt nie należy do zbioru, 1 oznacza, że fakt na pewno należy do zbioru, pozostałe wartości określają stopień z jakim fakt przynależy do zbioru. Przynależność można niekiedy interpretować jako prawdopodobieństwo, ale nie jest to jedyna możliwa interpretacja.

Najczęściej korzysta się z reguł, gdzie konkluzja jest funkcją wartości przynależności faktów zawartych w przesłance. Funkcję tę można określić nadając wagi dla każdej z reguł (waga obliczana jako prawdopodobieństwo przynależności przesłanki). Następnie jest obliczana średnia ważona każdej konkluzji reguły.

        1. Strategie wyboru reguł w sytuacjach konfliktowych.

Jeśli chodzi o strategie stosowane w systemach ekspertowych do wyboru jednej reguły ze zbioru reguł możliwych do uruchomienia w danej chwili to można wyróżnić: