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 Bazy danych • Fakty • Krotki (rekordy) • Reguły • Relacje • Cele • Zapytania Prolog jako baza danych 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). Ojciec Potomek Adam Stefan Adam Beata Matka Potomek Anna Stefan Anna Beata Webowe bazy danych MySQL i PHP: Function insert_auction ($Owner,$CatID,$Nazwa,$Opis,$CenaMin,$Il osc,$DTZak) { $q='INSERT INTO aukcja VALUES (0,'.$Owner.','.$CatID.',"'.$Nazwa.'","'.$Opis.' ",'.$CenaMin.','.$Ilosc.',NOW(),NOW() + INTERVAL '; $q.=$DTZak.' MINUTE)'; Przykład implementacji CLIPS’a $r=mysql_query($q); clips_clear(); } clips_set_strategy(LEX_STRATEGY); clips_load("rules.clp"); clips_reset(); w PHP: 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 wiedza Moduł pozyskiwania wiedzy Moduł wnioskowania Sterowanie dane zapytania Interfejsy we/wy Moduł wyjaśnień 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. 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 •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 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 ekonomicznofinansowych 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