Białystok, 24 stycznia 2003 Politechnika Białostocka Wydział Informatyki Główne elementy systemu ekspertowego Wykonał: Marcin Swiderski Prowadzący: dr Z. Sosnowski 1. Czym jest System Ekspertowy Jeden z prekursorów sztucznej inteligencji - E. Feigenbaum definiuje system ekspertowy jako : „inteligentny program komputerowy, wykorzystujący procedury wnioskowania do rozwiązywania tych problemów, które są na tyle trudne, że normalnie wymagają znaczącej ekspertyzy specjalistów". Ogólną definicję systemu ekspertowego podaje Encyklopedia Sztucznej Inteligencji. Według niej system ekspertowy „wykorzystuje wiedzę eksperta do rozwiązywania takich problemów, które wymagają inteligencji człowieka". Z innej definicji systemu ekspertowego wynika, że jest to „system informatyczny, w którym w pamięci maszyny cyfrowej zawarta jest wiedza człowieka - eksperta. System taki umożliwia doradzanie i wyjaśnianie podjętych decyzji". Ogólnie przyjmuje się, że system ekspertowy jest to komercyjny program komputerowy, który ma na celu zastąpienie pracy eksperta w danej dziedzinie. System ekspertowy może wykonywać następujące funkcje: doradzanie, analizowanie, klasyfikowanie, udzielanie informacji, diagnozowanie, uczenie się, gromadzenie doświadczeń, prognozowanie, planowanie, nauczanie, testowanie, czyli wszystkie te zadania, które mógł realizować człowiek - ekspert. Zakłada się, że aby system ekspertowy mógł realizować zadania wykonywane do tej pory przez człowieka - eksperta powinien: "rozumieć" i analizować problem; wybierać fakty niezbędne do wykonania ekspertyzy; udzielać porad; wyjaśniać sposób rozwiązania danego problemu. Systemy ekspertowe możemy podzielić na kilka sposobów m.in. ze względu na prezentację rozwiązania lub strategię ich tworzenia. Pierwszy podział pozwala wyodrębnić następujące grupy: doradcze z kontrolą człowieka - prezentujące rozwiązania dla użytkownika, który jest w stanie ocenić ich jakość, zatwierdzić, lub zażądać innej propozycji, doradcze bez kontroli człowieka - system jest sam dla siebie końcowym autorytetem. Rozwiązanie takie jest wykorzystane m.in. w układzie sterowania promem kosmicznym. Układ 5 komputerów przygotowuje się do podjęcia decyzji. Następnie porównuje otrzymane wyniki i przy pełnej zgodności wykonuje odpowiednie działanie, w przeciwnym przypadku cały proces jest powtarzany, krytykujące - dokonujące analizy i komentujące uzyskane rozwiązanie. Natomiast drugi: dedykowane - tworzone od podstaw przez inżyniera wiedzy współpracującego z informatykiem, szkieletowe - gotowy system z pustą bazą wiedzy, do wypełnienia przez inżyniera wiedzy i eksperta z danej dziedziny. Utworzenie systemu opartego na bazie wiedzy wymaga pozyskania wiedzy eksperta, który często znajduje rozwiązanie na podstawie informacji o problemie oraz na swoim doświadczeniu. System ekspertowy posiada więc zapisaną wiedzę eksperta (lub licznego zespołu ekspertów) z wybranej dziedziny dzięki czemu może jej używać w sposób ekonomiczny, to znaczy bez udziału eksperta. 2 Pod koniec lat siedemdziesiątych dokonano istotnego spostrzeżenia. Otóż moc programu ekspertowego tkwi w zakodowanej w nim wiedzy, a nie w formalizmie i schematach wnioskowania, których ten program używa. Możemy to wyrazić w postaci stwierdzenia „more knowledge less search”, co oznacza : im pełniejsza wiedza, tym szybciej uzyskuje się rozwiązanie. Oznacza to, że w celu zbudowania inteligentnego systemu ekspertowego, należy wyposażyć go w dużą ilość dobrej jakości, specyficznej wiedzy o danym przedmiocie. 2. CECHY SYSTEMÓW EKSPERTOWYCH. Podstawowe cechy systemów ekspertowych: dotyczą wąskiej dziedziny wiedzy; modularna budowa pozwalająca na rozbudowę systemu; możliwość wnioskowania z niepełnej wiedzy; możliwość wyjaśniania łańcucha wnioskowania w sposób zrozumiały dla użytkownika; rozdział mechanizmu wnioskowania od bazy wiedzy; zastosowanie reguł wnioskowania postaci „if ... then ...". Sprzyjającymi czynnikami rozwoju systemów ekspertowych są między innymi: zwiększenie dostępności - ekspertyza dostępna na wielu komputerach i przez „cały czas"; redukcja kosztów - wiedza eksperta jest kosztowna, stąd próby wykorzystania często znacznie tańszych systemów ekspertowych; wszechstronność ekspertyz - możliwość uzyskania kilku alternatywnych rozwiązań; objaśnienie odpowiedzi; skrócenie czasu konsultacji; systemy ekspertowe dopuszczają większe grono ludzi występujących w roli eksperta połączenie wiedzy kilku ekspertów może spowodować, że system ekspertowy będzie działał lepiej niż pojedyńczy ekspert; odporność psychiczna - system ekspertowy umożliwia pracę bez zakłóceń, nawet w stresujących warunkach; zmniejszenie zagrożeń - może być używany w środowiskach niebezpiecznych dla człowieka. Do cech charakterystycznych różniących systemy ekspertowe od systemów informatycznych zalicza się: jawną reprezentację wiedzy w bazie wiedzy; wykorzystanie w procesie wnioskowania mechanizmu wnioskującego; możliwość uzasadnienia podawanych odpowiedzi za pomocą modułu objaśniającego; wspomaganie i aktualizacja bazy wiedzy za pomocą modułu akwizycji wiedzy. 3 3 BUDOWA SYSTEMU EKSPERTOWEGO. Użytkownik Procedury Wnioskowani Procedury Sterowania Dialogiem Baza Wiedzy Baza Danych Stałych Procedury Objaśniania Baza Danych Zmiennych Procedura Aktualizacji Baz Wiedzy Rys1. Struktura Systemu Ekspertowego.[1] System ekspertowy, zgodnie z jego właściwościami, składa się z następujących modułów: Moduł pozyskiwania wiedzy umożliwia zdobywanie oraz modyfikowanie wiedzy z danej dziedziny. Danych do modułu wiedzy dostarczają bezpośrednio eksperci z danej dziedziny. Wywiad wstępny z ekspertami jest jednym z bardziej istotnych etapów tworzenia systemu. Od jego jakości zależy przydatność i funkcjonalność całego projektu. Baza wiedzy (Knowledge Base) jest to część systemu zawierająca wiedzę o dziedzinie i o podejmowaniu decyzji przez eksperta. Wiedza ta musi być niesprzeczna i spójna. Sprzeczność i niespójność mogą pojawić się w sytuacji modyfikacji bazy wiedzy lub też wprowadzania nowych reguł. Dlatego system ekspertowy powinien zawierać mechanizmy kontrolujące niesprzeczność i spójność. Mechanizmy wnioskowania (Inference Engine) stanowią część systemu kierującą rozwiązaniem problemu. Są odpowiedzialne za poprawne zastosowanie wiedzy zgromadzonej w bazie wiedzy. Podstawowymi metodami wnioskowania są wnioskowanie „wstecz" (backward chaining) oraz wnioskowanie „wprzód" (forward chaining). Moduł objaśniająco-wyjaśniający (Explanation Facility) jest to część systemu zajmująca się komunikacją ze światem zewnętrznym. Jest odpowiedzialny zarówno za wprowadzanie danych do systemu, jak i za wyprowadzanie na zewnątrz wniosków systemu. Moduł ten daje użytkownikowi radę, sugestię, a nie podejmuje decyzji. 4 Ostateczna decyzja jest podejmowana przez użytkownika. 4.Opis głównych elementów systemu ekspertowego 4.1 Baza wiedzy. Baza wiedzy zawiera fakty i reguły, które są niezbędne do rozwiązania problemu w specyficznej dziedzinie. Fakty są zdaniami oznajmiającymi, np. Starek żaglowy „Ewa” ma 45 m długości. Fakt ten może być reprezentowany w postaci związku między pewnymi obiektami i charakteryzować się różnymi cechami (atrybutami). W podanym przykładzie obiekt (statek żaglowy) ma dwie cechy (atrybuty): nazwę oraz długość. Między obiektami w bazie wiedzy mogą istnieć różne związki. Na przykład statek żaglowy ma wszystkie charakterystyki statku i oprócz tego specjalne charakterystyki, które są specyficzne dla statków żaglowych. Podstawowe reguły stosowane w systemach ekspertowych mają postać: IF warunek THEN wniosek AND/OR akcja Uznanie jakiejś reguły nazywa się uaktywnieniem reguły (firing). Dzięki uaktywnieniu reguł nowe fakty (wnioski) są dodawane do bazy wiedzy i/lub odpowiednie akcje są wykonywane. Nazywa się to często systemami regułowymi (rule-based programming). Około 85% systemów ekspertowych jest opartych na regułach. Podczas tworzenia bazy wiedzy inżynier wiedzy musi odpowiedzieć na następujące pytania: jakie obiekty należy zdefiniować? Jakie są relacje między obiektami? Jak należy formułować i przetwarzać reguły? Czy pod względem rozwiązywania specyficznego problemu baza wiedzy jest kompletna i spójna? Możemy wyróżnić następujące rodzaje baz wiedzy: 1. Baza tekstów (text base), W bazie tekstów występuje naturalna strukturalizacja zawartych informacji. Przykładem takiej bazy są słowniki zawierające ogólne informacje z danej dziedziny. Baza ta jest nie uporządkowana i w związku z tym operacje na niej mogą być wykonywane w sposób dowolny. 2. 3. 4. Baza danych (data base) Baza danych przechowuje specyficzne, szczegółowe informacje, zapisane w sposób uporządkowany. Baza reguł (rule base), Baza reguł zawiera wiedzę o obowiązujących w wybranej dziedzinie zależnościach i jest najważniejszą częścią bazy wiedzy. Baza modeli (model base), Baza modeli zawiera modele matematyczne danej dziedziny. Modele te są logiczno-matematycznym przedstawieniem pojęcia, systemu lub działań. Wyróżniamy trzy typy modeli: 5 5. Model deterministyczny – jest analitycznym przedstawieniem pojęcia, systemu lub działań, w którym dla danych wielkości wejściowych wyniki są określone jednoznacznie, Model niedeterministyczny (lub stochastyczny) – to model, w którym powiązania funkcyjne zależą od wielkości losowych. Dla danych wielkości wejściowych wyniki mogą być jedynie przewidziane zgodnie z zasadami probabilistyki, Model wartości oczekiwanych – to model, w którym wielkościom losowym zostały nadane ich wartości oczekiwane. Baza wiedzy zdroworozsądkowej (common sense knowledge base). Baza wiedzy zdroworozsądkowej odzwierciedla potencjalne, racjonalne zachowania się człowieka. Zawiera ona reguły definiujące sposoby podejmowania decyzji, reprezentujące metawiedzę systemu ekspertowego. Metawiedza stanowi wiedzę o wiedzy, czyli o sposobie przetwarzania wiedzy z danej dziedziny. 4.1.1 Tworzenie baz wiedzy Konstrukcja właściwej bazy wiedzy jest podstawą poprawnego funkcjonowania systemu ekspertowego. Wymaga ona wyboru odpowiednich faktów z dziedziny działania systemu, uniknięcia błędów i wyboru odpowiedniej struktury dla tych faktów. Programy redakcyjne oferują następujące możliwości: wygodny dla użytkownika sposób komunikacji i zautomatyzowane operacje rejestracji przy rozmieszczaniu informacji; kontrolowanie ortograficznej i syntaktycznej poprawności wprowadzanej informacji tekstowej; sprawdzanie semantycznej niesprzeczności między dotychczasową zawartością bazy danych a nowo wprowadzanymi faktami. W celu ułatwieniu użytkownikowi wprowadzania danych stosuje się systemy okien i wprowadzania informacji. Specjalizowane programy redakcyjne dla uniwersalnych systemów ekspertowych, jak EMYCIN, sprawdzają poprawność syntaktyczną i ortograficzną, mogą sprawdzić zgodność typów danych, a nawet podpowiadać poprawną formę wprowadzanej informacji. Systemy najbardziej rozwinięte sprawdzają także kompletność i spójność nowych informacji z już wprowadzonymi. Przebudowa bazy wiedzy wynika z wykrycia błędów w działaniu systemu, spowodowanych niewłaściwie wykonaną bazą wiedzy. Aby uniknąć tych błędów stosowana jest kontrola poprawności semantycznej (w trybie konwersacji z inżynierem wiedzy) oraz automatyczne testowanie. Przykładem takiego systemu jest TEIRESIAS Automatyzacja procesu tworzenia bazy wiedzy Problem automatyzacji tworzenia baz wiedzy wiąże się bezpośrednio z procesem uczenia się. Przykładem jest system EURISKO, projektujący układy scalone o dużej skali integracji. Przeszkodą jest występowanie szumu informacyjnego w otoczeniu systemu (błędne dane). 6 Narzędzia do tworzenia systemów ekspertowych Narzędzia programowe (expert system tools) mogą zawierać: maszynę wnioskującą, interfejs z użytkownikiem, procedury do pozyskiwania wiedzy, które umożliwiają konstruowanie kompletnego systemu przez dodanie bazy wiedzy. Narzędzia te możemy podzielić na grupy: a) systemy szkieletowe (expert system shells); b) środowiskowe programy ułatwiające implementację systemu, np. programy ułatwiające zarządzanie bazą wiedzy, programy grafiki komputerowej itd.; c) języki systemów ekspertowych, np. Clips, Flops, OPS5 itd.; d) języki programowania symbolicznego (tzw. języki sztucznej inteligencji), np. Lisp, Prolog; e) języki algorytmiczne, np. Basic, Pascal, C, C++ , Fortran, itd. Niektórzy zaliczają Prolog do klasy języków systemów ekspertowych, ponieważ ma on wbudowany mechanizm wnioskowania oraz określony rodzaj reguł. Pierwsze systemy szkieletowe powstały z systemów dedykowanych przez opróżnienie bazy wiedzy, np. system EMYCIN powstał w 1980r. Z systemu MYCIN. Dla inżyniera wiedzy system szkieletowy oferuje następujące udogodnienia: struktury reprezentowanej wiedzy, mechanizm wnioskowania, moduły objaśniające, niekiedy struktury kontrolujące przetwarzanie wiedzy. Zalety systemu szkieletowego : 1. Zapewniają mechanizm dla formalnej reprezentacji wiedzy, np. reguły, ramy itp. 2. Zapewniają narzędzia do strukturalizacji bazy wiedzy. 3. Mają wbudowany mechanizm wnioskowania. 4. Dają interfejs odpowiedni do utworzenia systemu ekspertowego, umożliwiający konstruowanie i rozbudowę bazy wiedzy również dla końcowego użytkownika. 5. Zapewniają udogodnienia do tworzenia komponentów systemu objaśniającego. 6. Dają narzędzia do sprawdzenia poprawności bazy wiedzy. 7. Dają narzędzia do pozyskiwania wiedzy. 8. Przy tworzeniu systemu nie trzeba znać języka, w jakim system szkieletowy jest napisany. Wady systemów szkieletowych: 1. Twórca systemu ekspertowego jest ograniczony do możliwości danego narzędzia. Specyficzny system szkieletowy jest przeznaczony do specyficznych zastosowań, nie do wszystkiego, np. diagnozowanie, planowanie. 2. Czasem trzeba poznać język danego systemu szkieletowego, np. GURU, Knowledge Pro, ... 3. Każdy system szkieletowy ma swoją specyficzną strukturę reguł. 4. Zmiana funkcji systemu jest możliwa, jeśli jest to przewidziane i jest do tego odpowiedni interfejs; na ogół nie można nic przerabiać, ponieważ brak jest kodu źródłowego. 5. Wysokie ceny oraz powiązanie z określonymi typami komputerów. 7 Zastosowanie techniki szkieletowych systemów ekspertowych umożliwia skrócenie czasu tworzenia oprogramowania w porównaniu z podejściem opartym na konwencjonalnym programowaniu. Porównując języki ekspertowe z językami systemów szkieletowych możemy stwierdzić, ze te ostatnie są łatwiejsze do implementacji. Posługiwanie się językiem systemów ekspertowych stwarza większe możliwości aplikacyjne, ale wymaga większego wysiłku, ponieważ trzeba nauczyć się języka. 4.2 Maszyna Wnioskująca Maszyna wnioskująca zajmuje się wyszukiwaniem rozwiązań w przestrzeni stanów środowiska. Jednym z podstawowych postulatów tworzenia systemów ekspertowych 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 przeszukuje przestrzeń stanów środowiska za pomocą strategii przeszukiwań i heurystyk, stosując pewne 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ąć ścieżki, które nie rokują nadziei na odnalezienie rozwiązania, skracają czas dochodzenia do wyniku itp. Metody wnioskowania decydują o tym, w jaki sposób zachodzi proces myślenia, czy jest to na przykład wnioskowanie wstecz (indukcja), wprzód (dedukcja) lub inne. W procesie wnioskowania korzysta się z pewnego obszaru pamięci roboczej, gdzie przechowywane są wyniki częściowe. Maszyna wnioskująca rozwiązywanie problemu rozpoczyna od umieszczenia hipotez w pamięci roboczej (na tzw. Stosie zadań). Następnie system przegląda bazę wiedzy , sprawdzając czy nie ma tam odpowiedzi na postawioną hipotezę. Jeżeli fakt spełniający założenia hipotezy został odnaleziony, to następuje zakończenie procesu wnioskowania i jest generowany odpowiedni komunikat. Jeżeli program nie może uzyskać odpowiedzi na postawioną hipotezę, są podejmowane kroki, w wyniku których są generowane nowe fakty. Istnieją dwie podstawowe metody wnioskowania: wnioskowanie „wprzód" (forward chaining) wnioskowanie „wstecz" (backward chaining) Wnioskowanie „wprzód" (forward chaining) rozpoczyna od faktów i posuwa się w kierunku diagnozy. System na podstawie podanych faktów oraz faktów i reguł zawartych w bazie wiedzy stara się wygenerować nowe fakty. Nowe fakty dołącza się do bazy wiedzy i powtarza się próbę znalezienia kolejnych, nowych faktów. Wnioskowanie kończy się, kiedy nie da się wygenerować żadnych nowych faktów lub kiedy znaleziono szukaną diagnozę. 8 START Weź hipotezę ze szczytu stosu zadań T N Czy w bazie wiedzy na liście faktów jest odpowiedź na postawioną hipotezę? Określ reguły, których przesłanki znajdują się na liście faktów Wybierz regułę, stosując strategię wnioskowania N Czy istnieje reguła którą można uaktywnić? T Sformułuj odpowiedź Uaktywnij wybraną regułę Dopisz nowe fakty do listy faktów, zaznacz użycie uaktywnionej reguły STOP Rys. 2 Uproszczony schemat maszyny wnioskującej w przód[1] Druga metoda wnioskowania to wnioskowanie „wstecz" (backward chaining). Rozpoczyna się od hipotezy i szuka argumentów (dowodów), które pozwolą potwierdzić lub obalić hipotezę, korzystając z reguł zawartych w bazie wiedzy. Jeśli reguły korzystają z faktów, które nie są znane, a które wynikają z innych reguł, to system najpierw sprawdza te reguły itd. Jeśli danych faktów nie da się wyprowadzić się za pomocą reguł wówczas system pyta o nie użytkownika. Cały proces wnioskowania zwykle odbywa się rekurencyjnie, aż do momentu, kiedy uda się uzyskać wszystkie potrzebne dane do zdeterminowania prawdziwości lub fałszywości hipotezy. Działanie maszyny wnioskującej przedstawionej na rys.3 (patrz następna strona) jest następujące. Na początku system sprawdza poprawność składni bazy wiedzy podanej na wejście systemu. Jeśli składnia jest poprawna, to odczytując kolejne słowa kluczowe i wpisując wartości w odpowiednie pola struktur danych, jest tworzona lista reguł. Następnie system tworzy listę faktów na podstawie utworzonej listy reguł. Dla każdego warunku każdej reguły są przeprowadzane dwa testy. Pierwszy sprawdzający czy dany warunek jest wynikiem jakiejkolwiek regułą z listy reguł. Drugi natomiast sprawdza, czy wartość obiektu danego warunku znajduje się na liście odpowiedzi dotyczącej danego obiektu w jakiejkolwiek regule. Jeśli oba testy dały wynik negatywny, to dany warunek jest dołączony jako fakt do listy faktów; jeśli pozytywny, to jest rozpatrywany następny warunek. 9 START Załaduj bazę wiedzy Sprawdź składnię bazy wiedzy Zwolnij struktury danych, które reprezentowały bazę wiedzy w poprzednim wnioskowaniu Utwórz listę reguł przez odczytywanie bazy wiedzy i utworzenie odpowiednich struktur Utwórz listę faktów na podstawie listy reguł wg określonych zadań Postaw hipotezę przez odczytanie jej z bazy wiedzy lub wyprowadź nową hipotezę Szukaj odpowiedzi na postawioną hipotezę T Czy jest następna hipoteza N Czy załadować nową bazę wiedzy? T N STOP Rys 3. Algorytm maszyny wnioskującej wstecz[1] Po utworzeniu w przedstawiony sposób wewnętrznej bazy wiedzy system stawia pytanie o cel główny, do jakiego ma dążyć, i usiłuje dać odpowiedź na postawiony cel oraz uruchamia proces wnioskowania. Wnioskowanie rozpoczyna przeszukanie listy faktów i jeżeli system odnajdzie cel główny na liście faktów, to jego wartość jest wyprowadzana jako odpowiedź. W przypadku gdy przeszukiwanie listy faktów zakończy się niepowodzeniem, system szuka celu w wynikach reguł. Jeżeli nie odnajdzie celu głównego w konkluzji żadnej z reguł, wówczas zostaje wygenerowana informacja o braku celu głównego w bazie wiedzy. W przeciwnym wypadku, po odnalezieniu pewnej reguły z listy reguł spełniającej powyższe założenia, jest uruchamiany proces analizy warunków tej reguły. Analiza warunków odbywa się w sposób rekurencyjny, tzn. analizowany warunek staje się aktualnym celem głównym i jest poszukiwany na liście faktów. Jeśli zostanie odnaleziony to warunek jest spełniony. Jeżeli znajduje się w wyniku pewnej reguły, to są analizowane warunki tej reguły i proces się powtarza. W przypadku braku analizowanego 10 warunku na liście faktów, ani w konkluzjach reguł, to system sprawdza jeszcze możliwość zadania pytania o warunek. Jeśli taka możliwość istnieje wyświetlane jest stosowne pytanie, a odpowiedź jest zapisywana na liście faktów. W momencie spełnienia wszystkich warunków danej reguły reguła ta jest uruchamiana, a fakt powstały w wyniku jej działania jest umieszczany na liście faktów. W ten sposób ścieżki poszukiwań tworzą drzewo, którego liśćmi są fakty, a korzeniem postawiony cel główny. Po dojściu do faktów system cofa się rekurencyjnie, aż do napotkania nie zbadanego warunku. System postępuje w ten sposób do momentu odnalezienia odpowiedzi na postawiony cel główny. Wówczas, w wyniku uruchomienia reguły zawierającej w wyniku cel główny, zostaje on umieszczony na liście faktów, a odpowiedź wyprowadzona dla użytkownika. 4.3 Moduł pozyskiwania wiedzy Moduł pozyskiwania wiedzy umożliwia zdobywanie oraz modyfikowanie wiedzy z danej dziedziny. Danych do modułu wiedzy dostarczają bezpośrednio eksperci z danej dziedziny. Wywiad wstępny z ekspertami jest jednym z bardziej istotnych etapów tworzenia systemu. Od jego jakości zależy przydatność i funkcjonalność całego projektu. Większość informacji na ten temat została zawarta w punkcie 4.1.1. 4.4 Moduł objaśniająco-wyjaśniający Moduł objaśniająco-wyjaśniający (Explanation Facility) jest to część systemu zajmująca się komunikacją ze światem zewnętrznym. Jest odpowiedzialny zarówno za wprowadzanie danych do systemu, jak i za wyprowadzanie na zewnątrz wniosków systemu. Moduł ten daje użytkownikowi radę, sugestię, a nie podejmuje decyzji. Ostateczna decyzja jest podejmowana przez użytkownika. 5.BIBLIOGRAFIA Literatura: 1. Jan J. Mulawka Systemy ekspertowe Wydawnictwo Naukowo-Techniczne Warszawa 1996. Internet: 2. Databases and Artificial Intelligence 3 Artificial Intelligence Segment Alison Cawsey http://www.cee.hw.ac.uk/~alison/ai3notes/all.html (15 grudnia 2002) 3. http://www.cdm.lcs.mit.edu/doyle/teaching/6.871/ (15 grudnia 2002) 4. http://spock.ia.agh.edu.pl/grant/gjn-Regulus-WWW/miw2002/MIW02projekty/Systemy_Regulowe/MIW02-Systemy_Regulowe.html (15 grudnia 2002) 5. http://adam.imir.agh.edu.pl/dydakt/expert/pozyskiw.htm (20 stycznia 2003) 11