~~SLIDESHOW~~ ====== XTT_CLIPS ====== * Zrealizował [[mfabia@student.agh.edu.pl|Maciej Fabia]] (4RI) * Metody Inżynierii Wiedzy 2009 ===== Zawartość projektu ===== * Omówienie przykładowych systemów ekspertowych w CLIPS * Stworzenie diagramów dla wybranych systemów * Zaimplementowanie przykładu z Hekate w CLIPS ===== Przykłady reguł CLIPS ===== * prosta reguła: (defrule mortality (George is man) => (assert (George is mortal))) * podobna reguła używająca zmiennej - wstawia fakt dla każdego człowieka: (defrule mortality2 (?someone is man) => (assert (?someone is mortal))) ===== Przykłady gotowych systemów ===== * System diagnozujący chorobę i dobierający terapię, * System wskazujący, co naprawić w samochodzie, * System identyfikujący zwierzę na podstawie charakterystycznych cech (używa zaimplementowanego w CLIPS silnika wstecznego wnioskowania) ===== Rozwiązania składniowe ===== Poza [[#slide2|klasycznymi regułami]], w przykładach korzystano z następujących rozwiązań: * po lewej stronie reguł (Left Hand Side) * wzorce wymagające nieistnienia pewnego faktu - operator //not//, * połączenie wzorców prostych łącznikami logicznymi, np. //and//, //or//, * deklaracje priorytetów. * po prawej stronie (Right Hand Side) * konstrukcje //if-then-else// ===== Silnik wstecznego wnioskowania ===== * CLIPS posiada wbudowany silnik wnioskowania w przód, * W przykładzie rozpoznającym zwierzęta zaimplementowano silnik wstecznego wnioskowania, * Zasady działania silnika: * fakty i reguły danej bazy wiedzy są reprezentowane w CLIPS przez fakty, * zadajemy określony cel, * silnik szuka reguł, które mają cel w RHS - zmienne w ich LHS stają się dodatkowymi celami, * reguły nie zawierające celu w RHS są usuwane. ===== Schematy ARD, TPH, XTT ===== * Wykonano schematy dla: * systemu diagnozującego awarie samochodowe, * systemu rozpoznającego zwierzęta. * Schematy zostały wykonane za pomocą narzędzi VARDA i HQEd. == Na finalny parametr wskazuje duża liczba strzałek (schematy ARD): == * w powyższych systemach w CLIPS dominowały reguły o małej liczbie argumentów, * na schematach szukany parametr zależy od dużej liczby atrybutów, * przyczyna - szukany parametr występuje w RHS dużej liczby reguł, które posiadają różne zestawy atrybutów w częściach warunkowych, ===== Automotive Expert System - ARD ===== {{:pl:miw:2009:miw09_xtt_clips:auto-ard.png|schemat ARD}} ===== Automotive Expert System - TPH ===== {{:pl:miw:2009:miw09_xtt_clips:auto-tph.png?554|schemat TPH}} ===== Automotive Expert System - XTT ===== {{:pl:miw:2009:miw09_xtt_clips:auto-xtt.png?620|schemat XTT}} ===== Animal Identification Expert System - ARD ===== {{:pl:miw:2009:miw09_xtt_clips:anim-ard.png?900x500|schemat ARD}} ===== Animal Identification Expert System - TPH ===== {{:pl:miw:2009:miw09_xtt_clips:anim-tph.png?1000x500|schemat TPH}} ===== Animal Identification Expert System - XTT ===== {{:pl:miw:2009:miw09_xtt_clips:anim-xtt.png?900x500|schemat XTT}} ===== Termostat zaimplementowany w CLIPS ===== Opis programu * Program korzysta z funkcji zapewniających pobranie i walidację danych * reguły są odpowiednikami [[hekate:hekate_case_thermostat#Original Rules|opisów słownych]], * aby porównać liczby (lub użyć dowolnej funkcji zwracającej wartości true/false) w częściach warunkowych reguł, zastosowano słowo kluczowe //test//. * normalnie po zadaniu pytań program wyświetla od razu temperaturę. Aby obserwować wstawiane podczas wnioskowania fakty, należy przed uruchomieniem wpisać w konsoli CLIPS polecenie //(watch facts)//.