WOJSKOWA AKADEMIA TECHNICZNA
im. Jarosława Dąbrowskiego
SYSTEMY EKSPERCKIE
Projekt
Temat pracy: Wybór mieszkania.
Prowadzący zajęcia:
dr inż. Roman Wantoch-Rekowski
Wykonał:
Paweł Gierasimiuk, grupa I9B3S1
Zadanie
Zaprojektować i zaimplementować system ekspercki z wykorzystaniem wybranego języka programowania. System ekspercki powinien składać się z wydzielonych elementów (minimum): baza wiedzy, maszyna wnioskująca, interfejs komunikacji z użytkownikiem. Należy zastosować regałową metodę reprezentacji wiedzy z elementami reprezentacji wiedzy (współczynnik CF). Wykonany system ekspercki powinien być systemem diagnostycznym.
Opis rozpatrywanego problemu
Struktura bazy wiedzy
Wśród różnych metod reprezentacji wiedzy ważną rolę odgrywają metody oparte na regułach. Zbiór stwierdzeń nie jest wystarczający do opisania jakiejś dziedziny wiedzy zatem są jeszcze potrzebne reguły, których ogólna postać może być wyrażona jako:
oraz
lub inaczej za pomocą zdania złożonego
oraz
Baza wiedzy zawiera w tym przypadku zbiór faktów i reguł. Zdecydowana większość powstałych do tej pory systemów ekspertowych jest oparta na regułach, a reprezentowanie świata ogranicza się do tych struktur zdaniowych. Podejście to umożliwia uzyskanie dużej modularności bazy wiedzy.
Baza wiedzy jest w przypadku zastosowanego systemu bazą danych, w której znajduje się wiedza w postaci reguł zapisanych jako złączenie konkretnych faktów prowadzących do pewnej konkluzji.
Struktura bazy jest prosta, przedstawiono ją na przykładowym rysunku powyżej.
Przykładowa reguła, którą można reprezentować w tego typu bazie danych ma postać:
W TYM MIEJSCU TWOJA REGUŁA PRZYKŁADOWA
JEŚLI klient używa samochodu do celów służbowych I
ma on być przeznaczony do przewozu osób I
najważniejsze dla niego jest, aby samochód był duży I
klient mieszka w mieście I
pokonuje zwykle trasy o umiarkowanie długich dystansach I
najbardziej odpowiadają mu niemieckie modele samochodów TO
powinien wybrać Forda B-max
Algorytm poszukiwania rozwiązania
Pytania oraz ich odpowiedzi są wczytywane z pliku questions.xml. Relacje pomiędzy odpowiedziami a kolejnymi pytaniami są zapisane w pliku realtions.xml. Ma to na celu umożliwienie dowolnego dopasowania pytań i odpowiedzi.
Na podstawie tych dwóch zbiorów możemy utworzyć drzewo poszukiwania rozwiązania. Zostało zastosowane takie rozwiązanie, ze względu na łatwość przeszukiwania drzewa. Użytkownik odpowiadając na pytań określa ścieżkę poruszania się po przygotowanym drzewie. Do stworzenia systemy eksperckiego zastosowałem następujące drzewo.
W TYM ROZDZIALE OBRAZEK DRZEWKA
Podczas badania preferencji użytkownika, co do wyboru mieszkania, zapisywane są jego odpowiedzi. Po zakończeniu lista odpowiedzi jest przesyłana do maszyny wnioskującej.
Maszyna wnioskująca otrzymuje listę odpowiedzi i:
Wyszukuje czy odpowiedzi wybrane przez użytkownika pasują do faktów zapisanych w bazie wiedzy.
Jeśli tak są pobierane są możliwe konkluzje, które wiążą się z tymi faktami.
Na podstawie zbioru faktów (odpowiedzi udzielonych przez użytkownika), następuje wnioskowanie, które konkluzje najbardziej pasują do zbioru faktów.
Korzystając z zapisanych na bazie reguł, maszyna wnioskująca wybiera 4 najlepiej pasujące konkluzje.
Ostatnim krokiem jest wyświetlenie wyników na ekranie.