Języki sztucznej inteligencji, a relacyjne bazy danych. Zastosowania. Franciszek Korta Przemysław Koprowski
Podobieństwa języków sztucznej inteligencji do baz danych Języki SI Fakty Reguły Cele Bazy danych Krotki (rekordy) Relacje Zapytania
Prolog jako baza danych Ojciec Potomek Adam Stefan Beata Zbiór klauzul można przedstawić jako następujące tabele w bazie danych: Ojciec(Adam, Stefan). Ojciec(Adam, Beata). Matka(Anna, Stefan). Matka(Anna, Beata). Matka Potomek Anna Stefan Beata
Webowe bazy danych MySQL i PHP: Przykład implementacji CLIPS’a w PHP: Function insert_auction ($Owner,$CatID,$Nazwa,$Opis,$CenaMin,$Ilosc,$DTZak) { $q='INSERT INTO aukcja VALUES (0,'.$Owner.','.$CatID.',"'.$Nazwa.'","'.$Opis.'",'.$CenaMin.','.$Ilosc.',NOW(),NOW() + INTERVAL '; $q.=$DTZak.' MINUTE)'; $r=mysql_query($q); } Przykład implementacji CLIPS’a w PHP: clips_clear(); clips_set_strategy(LEX_STRATEGY); clips_load("rules.clp"); clips_reset(); clips_assert(array("hunter", "brian", "dick")); clips_run(); $facts = clips_get_fact_list(); print_r($facts);
Łącząc relacyjne bazy danych (bazy wiedzy) oraz programy w językach sztucznej inteligencji (tzw. motory wnioskujące) otrzymujemy dedukcyjne bazy danych wykorzystywane w systemach ekspertowych. Motor wnioskujący pozwala na wydedukowanie nowych faktów z dostarczonych wcześniej informacji. Pytanie użytkownika: Ilu stroicieli fortepianów jest w Nowym Yorku? Odpowiedź systemu: Ponieważ w New Haven liczącym około 300 000 mieszkańców jest 3 lub 4 stroicieli fortepianów, co w stosunku do liczby mieszkańców wynosi 1 na 100 000 a Nowy York liczy 7 milionów mieszkańców, stąd szacunkowo można określić liczbę stroicieli fortepianów na około 70, no powiedzmy 50 lub 60.
Systemy ekspertowe Są to programy, których podstawowym zadaniem jest symulowanie ludzkiej ekspertyzy w określonej, na ogół wąskiej dziedzinie (np. ekonomii, medycynie itp.) Interfejs inżyniera wiedzy Moduł główny (motor wnioskowania i baza wiedzy) Interfejs użytkownika
Cechy systemów ekspertowych odróżniające je od konwencjonalnych programów: Jawna interpretacja wiedzy i oddzielenie jej od procedur sterowania Zdolność wyjaśniania znalezionych przez system rozwiązań programów Przetwarzanie wiedzy wykorzystujące głównie przetwarzanie symboli Do rozwiązywania problemów wykorzystywane są głównie różne metody rozumowania (wnioskowania), w mniejszym zaś stopniu algorytmy
Struktura typowego systemu ekspertowego Baza wiedzy Moduł pozyskiwania wiedzy Moduł wnioskowania wiedza Sterowanie dane Interfejsy we/wy Moduł wyjaśnień zapytania
Charakterystyka szkieletowych systemów ekspertowych Ponieważ systemy eksperckie mają budowę modułową, można łatwo odseparować maszynę wnioskującą i interfejs użytkownika od bazy wiedzy. Pozwala to na tworzenie szkieletowych systemów eksperckich, czyli gotowych programów komputerowych z maszyną wnioskującą i pustą bazą wiedzy. Specjalne edytory znajdujące się w tych programach umożliwiają wpisywanie odpowiednich reguł dotyczących danego problemu, po wprowadzeniu których system rozwiąże postawione zadanie. Użytkownicy tych systemów nie muszą zajmować się programowaniem, do nich należy jedynie przekazywanie wiedzy o danym problemie.
Niezwykle ważną i wręcz unikatową cechą systemów ekspertowych są tzw Niezwykle ważną i wręcz unikatową cechą systemów ekspertowych są tzw. wyjaśnienia. Jak (ang. how to explanations) mają charakter retrospektywny i informują o sposobie rozwiązania danego problemu Dlaczego (why explanations) uzasadniają celowość pytań stawianych przez system ekspertowy Co to jest (what is explanations) tekstowe objaśnienia wybranych pojęć w bazie wiedzy Opisy faktów pokazują źródło i metodę pozyskania faktów oraz dostępność wyjaśnień
PC Shell Jest to pierwszy polski - w pełni komercyjny - szkieletowy system ekspertowy System PC-Shell jest systemem o architekturze hybrydowej, tj. łączącej w sobie różne metody rozwiązywania problemów i reprezentacji wiedzy. Interesującą właściwością systemu PC-Shell jest między innymi wbudowany, w pełni zintegrowany, symulator sieci neuronowej. Inną istotną cechą systemu PC-Shell jest jego struktura tablicowa, co umożliwia podzielenie dużej bazy wiedzy na mniejsze moduły - zorientowane tematycznie, tzw. źródła wiedzy.
Consus Współczynnik CF Shell regułowych systemów ekspertowych oparty na teorii pewności. Teoria pewności opiera się na tzw. stopniach pewności (Certainty Factor – CF) Stopień pewności to liczba od [-1,1] gdzie -1 oznacza fałsz, 1 prawdę. Stopień pewności przypisany jest każdemu faktowi, stwierdzeniu lub regule. Wartość 1 (PRAWDA) Współczynnik CF Wartość 0 (przesłanka niewiarygodna) Wartość -1 (FAŁSZ)
Stosuje się następujące zasady wyznaczania współczynnika pewności stopień pewności przesłanki jest obliczany jako maksimum z CF części przesłanki połączonych spójnikiem OR, oraz jako minimum części połączonych spójnikiem AND Wnioski reguły są przyjmowane z CF obliczonym jako iloczyn CF przesłanki i CF reguły, Jeżeli o pewnym fakcie wnioskowano z różnych reguł, to jego CF był obliczany następująco: Niech CF1 oznacza CF z jakim został przyjęty wniosek z z reguły 1, CF2 odpowiednio – z reguły 2, a newCF – ostateczny stopień pewności faktu, którego dotyczyły wnioski reguły 1 i reguły 2.
Przykładowy system ekspertowy w programie Consus
C Language Integrated Production System CLIPS C Language Integrated Production System Jest środowiskiem do tworzenia obiektowych systemów ekspertowych Posiada wiele rozszerzeń oraz interfejsów do różnych języków programowania (C++ ADA, PHP, Python, Java, Perl) Jest przenośny, przez co dostępny na wielu różnych platformach Posiada moduł do logiki rozmytej (FuzzyCLIPS) Powstał w 1985 roku w NASA, obecnie rozwijany jako public domain
Przykłady systemów ekspertowych DENDRAL Ustalanie struktury molekularnej nieznanych związków chemicznych MYCIN, INTERNIST/CADUCEUS, CASNET Duże systemy ekspertowe opracowane na potrzeby medycyny PROSPECTOR Poszukiwanie złóż minerałów R1/XCON Konfigurowanie komputerów VAX w firmie DELL
Przykłady systemów ekspertowych INVEST Doradztwo w zakresie inwestycji LENDING ADVISOR Pomoc w podejmowaniu decyzji kredytowych UNDERWRITING ADVISOR Ocena ryzyka na podstawie podań o ubezpieczenie AUDITOR Szacowanie funduszy asygnowanych z tytułu nieściągalnych długów ISAF Polski system służący do diagnostyki zjawisk ekonomiczno-finansowych w przedsiębiorstwach
Typowe obszary zastosowań systemów ekspertowych: systemy doradcze i wspomagania decyzji dydaktyka (wyższe uczelnie i szkoły średnie) analizy finansowe (ekonomiczne) analizy wniosków kredytowych w bankach doradztwo podatkowe technika, Np. do analizy danych pomiarowych medycyna