Ewolucja systemów ekspertowych spowodowała modyfikacje w budowie i przeznaczeniu oraz funkcjonowaniu systemów.
Przyczyną tych zmian jest gwałtowny przyrost liczby potencjalnych źródeł wiedzy. Internet stał się narzędziem służącym do pozyskiwania wiedzy . Spowodowało to gwałtownie zwiększające się liczbę dostępnych źródeł co ma niebagatelne znaczenie w procesie tworzenia nowych systemów ekspertowych.
czwartek, 19 września 2013
sobota, 14 września 2013
Dokumentacja Programowa
No to zaczynamy zabawę ;)
Budowę aplikacji zaczynamy poprzez określenie i zapasanie wiedzy w formie reguł. Po uruchomieniu programu PC-Shell , klikamy men Edycja w oknie generatora nowej bazy zaczynamy pola Blok Facet , Blok Reguł, podajemy nazwę pliku i klikamy OK. Zapisujemy do Pliku.
Tworzona przez nas baza wiedzy zapisuje się w pliku BW w PC-Shell. Bazę wiedzy umieszczamy w bloku instrukcji " knowledge base stanowisko...end",w ramach ,której zapisujemy najpierw definicje wszystkich używanych zmiennych( blok facet...end).
Fasetami określamy zbiór deklaracji odnoszących się do wybranych atrybutów .Blok Faset zawiera wykaz wszystkich atrybutów użytych w bazie wiedzy .Nie wszystkie atrybuty musza być opisane fasetami , lecz wszystkie muszą być zadeklarowane w bloku faset , Ogólna struktura bloku faset wygląda następująco :
Fasets
Opis Faset
End;
Opis faset składa się z deklaracji globalnych, ask, single oraz zbioru atrybutów i związanych z nimi faset.
Deklaracja ask określa , czy system może zadawać pytania o poprawność reguł . Jeśli wybrana zostaje opcja "yes" , to system będzie zadawał pytania o prawdziwość warunków , które nie mogą być potwierdzone w oparciu o wiedzę zawartą w bazie wiedzy w postaci faktów i reguł. Opcja "no" oznacza , ze system nie może zadawać pytań użytkownikowi w celu potwierdzenia warunków . Może jedynie wykorzystywać wiedzę zawarta w bazie wiedzy.
Od tych ogólnych reguł można określić wyjątki, stosując deklaracje ask w deklaracji faset.
System przyjmuje domyślnie ask yes oraz single no.
Struktura opisu faset:
[ ask{yes no\ };]
[ single {yes no \} ; ]
atrybut _1 [ deklaracja _faset_1 ];
...
atrybut _n [ deklaracja _faset_n];
Fragment bloku faset z aplikacji:
single yes ;
decyzja :
ask no
val oneof {
" zatrudniony and szycie",
"zatrudniony and pracownik_biura",
" zatrudniony and pracownik_ochrony",
" zatrudniony and informatyk",
" zatrudniony and pracownik_dzialu_obslugi_z_klientem",
" zatrudniony and pracownik_gospodarczy",
" brak_podstaw_do zatrudnienia" };
rodzaj_pomocy_socjalnej:
ask no
val oneof {
"rehabilitacja and turnusy_rehabilitacjne and dofinansowanie_pelne",
"rehabilitacja and turnusy_rehabilitacjne and dofinansowanie_czesciowe",
"rehabilitacja and turnusy_rehabilitacjne and dofinansowanie_pelne and dofinasowanie_dla_opiekuna",
"rehabilitacja and turnusy_rehabilitacjne and dofinansowanie_polowa_kosztow";
}
typy_umowy_wynagrodzenia:
ask no
val oneof {
"umowa_zlecenie",
"okres_probny",
" umowa_o_prace",
"pensja";
}
(...) end;
Następnie zapisujemy same reguły (blok rules....end).
Blok reguł pełni główną role z punktu widzenia reprezentacji wiedzy ekspertowej . Opis reguł składa się ze zbioru reguł poprzedzonych słowem rules oraz zakończonych słowem end.
Składnia definicji i reguł jest następująca:
jeśli chcemy określić regułę według której uzyskanie odpowiedzi tak dla zmiennych
warunek 1 i warunek 2 ma zwracać na temat wyniku wynik informacje o treści wystepuje to odpowiedni blok reguł może wyglądać następująco :
wynik =" zatrudniony and szycie" if warunek 1 ="tak",
warunek2= "tak";
fragment bloku rules z aplikacji "ZPCHR"
stanowisko="brak_podstaw_do_zatrudnienia" if grupa ="nie";
stanowisko = "zatrudniony and pracownik_biura " if
grupa= "tak",
stopien =" lekki ",
okres=" tak",
wzrok=" tak",
sluch=" dobry",
poruszanie =" samodzielnie",
wyksztalcenie =" wyższe",
jezyki =" angielski or niemiecki or francuski or inne ",
komputer="slaba";
(...)
/niektóre wersje programów czytają polskie znaki niektóre nie i wychodzi błąd w programie /
Do pobierania danych używamy operatora zapytania query, zadającego użytkownikowi podane pytanie oraz dwóch operatorów ograniczających zakres dopuszczalnych odpowiedzi :
val oneof (...), akceptującego wyłącznie jedna z możliwości podanych w nawiasach oraz val range (...) akceptujące tylko wartości liczbowe. Tak przygotowana baza jest już sama w sobie gotową aplikacją.
Aby uruchomić z menu Plik wybieramy Otwórz i wskazujemy plik zapisanej uprzednio bazy. Teraz wybieramy Wnioskowanie- do tyłu , co spowoduje otwarcie okna dialogowego Hipoteza.
W tym oknie formułujemy hipotezę , która ma być sprawdzona na podstawie informacji zawartych w bazie wiedzy - w naszym przypadku chcemy się dowiedzieć czy kandydat może być zatrudniony w zakładzie pracy chronionej, jaki rodzaj umowy może być podpisany oraz ewentualne wynagrodzenie a także jakie świadczenia socjalne przysługują pracownikowi. Zamiast zapisywać hipotezę możemy wybrać oba jej elementy z list dostępnych po naciśnięciu przycisków ATRYBUT , WARTOŚĆ.
klikamy wnioskuj. Teraz program będzie nas prosił o podawanie zmiennych użytych w bazie reguł .Dane są przetwarzane sekwencyjnie i system zadaje tyle pytań ile jest mu potrzebne do weryfikacji hipotezy -jeżeli już po podaniu pierwszej wartości będzie jasne , ze kandydat ma szanse na zatrudnienie bądź jaki typ umowy może podpisać to nasz wynik zostanie wyświetlony jako hipoteza potwierdzona bądź niepotwierdzona . Dzieje się to za pomocą algorytmu maszyny wnioskującej w tył.
Dodanie bardziej zaawansowanych funkcji interfejsu użytkownika wymaga dołączenia do programu bloku sterowania control...end, umożliwiającemu algorytmicznie sterowanie praca samego systemu regułowego.
Blok sterowania control...end jest trzecim (po fasets and rules) blokiem w kodzie bazy wiedzy.
Od pozostałych rożni się tym , ze jest nieobowiązkowy. W bloku sterowania używany jest wyspecjalizowany język wysokiego poziomu stworzony specjalnie dla potrzeb programu PC-Shell w celu ułatwienia obsługi specyficznych wymagań aplikacji w nim tworzonych.
Poza funkcjami sterującymi , język dostarcza instrukcji i typów danych niezbędnych w systemach ekspertowych , umożliwia utworzenie interfejsu użytkownika , pozwala integrować aplikacje z innymi programami daje możliwość efektywnego opisywania wiedzy o charakterze algorytmicznym .
W bloku control użyto następujące polecenia :
Run- uruchomienie programu zawartego w bloku sterowania
Goal (hipoteza )- uruchomienie - wnioskowania z podaną hipotezą
Answer (wartość )- przypisanie - odpowiedzi na zapytanie o wartość zmiennej
Solution - element rozwiązania (pełna trójka OAW )
Kod z bloku control w aplikacji ZPCHR
contorl
int Odp;
Budowę interfejsu użytkownika rozpoczynamy w kodzie control ...end wpisujemy
createAppWindow;
run;
vignette ( "ZPCHR" , "DEMONSTRACYJNA BAZA WIEDZY DOTYCZACA WYBORU STANOWISKA PRACY DLA OSOBY NIEPELNOSPRAWNEJ . TYP UMOWY , WYSOKOSC WYNAGRODZENIA ORAZ PROPONOWANA OPIEKA SOCJALNA W ZALEZNOSCI OD STOPNIA NIEPELNOSPRAWNOSCI\nAutor : Beata XXXX", "Copyright (C) 1992-99 AITECH Artificial Intelligence Laboratory");
setAppWinTitle, (" na jakim stanowisku ma pracować kandytat ");
setAppWinTitle, ("proponowany rodzaj umowy i proponowane wynagrodzenie");
setAppWinTitle, (" jakie świadczenia socjalne może uzyskac osoba niepelnosprawna ");
addSolution (yes);
W łatwy sposób możemy dodać ekran powitalny aplikacji , służy do tego instrukcja Vignette .
Dodajemy do naszej aplikacji menu w bloku menu..end jest pewien rodzaj instrukcji warunkowej .
Jako parametr podajemy nazwę menu a następnie kolejne pozycje . Ponieważ aplikacja jest z raportowaniem z jednej pozycji menu musimy podać kod DDE.
Nawiązanie konwersacji wymaga podania trzech parametrów : zmiennej typu int której przypisany zostanie numer otwartego kanału ( w przypadku pozytywnego nawiązania konwersacji) oraz dwóch parametrów określających nawiązywaną konwersacje -usługi oraz nazwę tematu .W przypadku aplikacji "ZPCHR" nazwa usługi to" WinWord" nazwa tematu "System"
Przy nawiązywaniu łączności z edytorem tekstu Word w pakiecie Office mogą wystąpić problemy . Należy sprawdzić z jakiego pakietu Office korzystamy .W zależności od edycji zmieniają się numery kolejnej edycji plików Office.
Kod raportowania W DDE umieszczamy w bloku menu w instrukcji case .
W bloku menu można umieścić notatkę gdzie można zapisywać uwagi - służy temu kod
system( "notepad.exe oaplik.text");
Zakonczenia systemu zapisujemy kodem , aby kod zadziałał należy w bloku control zaimplementować zmienna int odp :
case 4 :
system( "notepad.exe oaplik.text");
case 5 :
confirmBox (0,0, "Wyjscie ..","\n\nKONIECPRACY", odp);
while (odp==1)
Begin
exit;
end;
end;
end;
end;
Budowę aplikacji zaczynamy poprzez określenie i zapasanie wiedzy w formie reguł. Po uruchomieniu programu PC-Shell , klikamy men Edycja w oknie generatora nowej bazy zaczynamy pola Blok Facet , Blok Reguł, podajemy nazwę pliku i klikamy OK. Zapisujemy do Pliku.
Tworzona przez nas baza wiedzy zapisuje się w pliku BW w PC-Shell. Bazę wiedzy umieszczamy w bloku instrukcji " knowledge base stanowisko...end",w ramach ,której zapisujemy najpierw definicje wszystkich używanych zmiennych( blok facet...end).
Fasetami określamy zbiór deklaracji odnoszących się do wybranych atrybutów .Blok Faset zawiera wykaz wszystkich atrybutów użytych w bazie wiedzy .Nie wszystkie atrybuty musza być opisane fasetami , lecz wszystkie muszą być zadeklarowane w bloku faset , Ogólna struktura bloku faset wygląda następująco :
Fasets
Opis Faset
End;
Opis faset składa się z deklaracji globalnych, ask, single oraz zbioru atrybutów i związanych z nimi faset.
Deklaracja ask określa , czy system może zadawać pytania o poprawność reguł . Jeśli wybrana zostaje opcja "yes" , to system będzie zadawał pytania o prawdziwość warunków , które nie mogą być potwierdzone w oparciu o wiedzę zawartą w bazie wiedzy w postaci faktów i reguł. Opcja "no" oznacza , ze system nie może zadawać pytań użytkownikowi w celu potwierdzenia warunków . Może jedynie wykorzystywać wiedzę zawarta w bazie wiedzy.
Od tych ogólnych reguł można określić wyjątki, stosując deklaracje ask w deklaracji faset.
System przyjmuje domyślnie ask yes oraz single no.
Struktura opisu faset:
[ ask{yes no\ };]
[ single {yes no \} ; ]
atrybut _1 [ deklaracja _faset_1 ];
...
atrybut _n [ deklaracja _faset_n];
Fragment bloku faset z aplikacji:
single yes ;
decyzja :
ask no
val oneof {
" zatrudniony and szycie",
"zatrudniony and pracownik_biura",
" zatrudniony and pracownik_ochrony",
" zatrudniony and informatyk",
" zatrudniony and pracownik_dzialu_obslugi_z_klientem",
" zatrudniony and pracownik_gospodarczy",
" brak_podstaw_do zatrudnienia" };
rodzaj_pomocy_socjalnej:
ask no
val oneof {
"rehabilitacja and turnusy_rehabilitacjne and dofinansowanie_pelne",
"rehabilitacja and turnusy_rehabilitacjne and dofinansowanie_czesciowe",
"rehabilitacja and turnusy_rehabilitacjne and dofinansowanie_pelne and dofinasowanie_dla_opiekuna",
"rehabilitacja and turnusy_rehabilitacjne and dofinansowanie_polowa_kosztow";
}
typy_umowy_wynagrodzenia:
ask no
val oneof {
"umowa_zlecenie",
"okres_probny",
" umowa_o_prace",
"pensja";
}
(...) end;
Następnie zapisujemy same reguły (blok rules....end).
Blok reguł pełni główną role z punktu widzenia reprezentacji wiedzy ekspertowej . Opis reguł składa się ze zbioru reguł poprzedzonych słowem rules oraz zakończonych słowem end.
Składnia definicji i reguł jest następująca:
jeśli chcemy określić regułę według której uzyskanie odpowiedzi tak dla zmiennych
warunek 1 i warunek 2 ma zwracać na temat wyniku wynik informacje o treści wystepuje to odpowiedni blok reguł może wyglądać następująco :
wynik =" zatrudniony and szycie" if warunek 1 ="tak",
warunek2= "tak";
fragment bloku rules z aplikacji "ZPCHR"
stanowisko="brak_podstaw_do_zatrudnienia" if grupa ="nie";
stanowisko = "zatrudniony and pracownik_biura " if
grupa= "tak",
stopien =" lekki ",
okres=" tak",
wzrok=" tak",
sluch=" dobry",
poruszanie =" samodzielnie",
wyksztalcenie =" wyższe",
jezyki =" angielski or niemiecki or francuski or inne ",
komputer="slaba";
(...)
/niektóre wersje programów czytają polskie znaki niektóre nie i wychodzi błąd w programie /
Do pobierania danych używamy operatora zapytania query, zadającego użytkownikowi podane pytanie oraz dwóch operatorów ograniczających zakres dopuszczalnych odpowiedzi :
val oneof (...), akceptującego wyłącznie jedna z możliwości podanych w nawiasach oraz val range (...) akceptujące tylko wartości liczbowe. Tak przygotowana baza jest już sama w sobie gotową aplikacją.
Aby uruchomić z menu Plik wybieramy Otwórz i wskazujemy plik zapisanej uprzednio bazy. Teraz wybieramy Wnioskowanie- do tyłu , co spowoduje otwarcie okna dialogowego Hipoteza.
W tym oknie formułujemy hipotezę , która ma być sprawdzona na podstawie informacji zawartych w bazie wiedzy - w naszym przypadku chcemy się dowiedzieć czy kandydat może być zatrudniony w zakładzie pracy chronionej, jaki rodzaj umowy może być podpisany oraz ewentualne wynagrodzenie a także jakie świadczenia socjalne przysługują pracownikowi. Zamiast zapisywać hipotezę możemy wybrać oba jej elementy z list dostępnych po naciśnięciu przycisków ATRYBUT , WARTOŚĆ.
klikamy wnioskuj. Teraz program będzie nas prosił o podawanie zmiennych użytych w bazie reguł .Dane są przetwarzane sekwencyjnie i system zadaje tyle pytań ile jest mu potrzebne do weryfikacji hipotezy -jeżeli już po podaniu pierwszej wartości będzie jasne , ze kandydat ma szanse na zatrudnienie bądź jaki typ umowy może podpisać to nasz wynik zostanie wyświetlony jako hipoteza potwierdzona bądź niepotwierdzona . Dzieje się to za pomocą algorytmu maszyny wnioskującej w tył.
Dodanie bardziej zaawansowanych funkcji interfejsu użytkownika wymaga dołączenia do programu bloku sterowania control...end, umożliwiającemu algorytmicznie sterowanie praca samego systemu regułowego.
Blok sterowania control...end jest trzecim (po fasets and rules) blokiem w kodzie bazy wiedzy.
Od pozostałych rożni się tym , ze jest nieobowiązkowy. W bloku sterowania używany jest wyspecjalizowany język wysokiego poziomu stworzony specjalnie dla potrzeb programu PC-Shell w celu ułatwienia obsługi specyficznych wymagań aplikacji w nim tworzonych.
Poza funkcjami sterującymi , język dostarcza instrukcji i typów danych niezbędnych w systemach ekspertowych , umożliwia utworzenie interfejsu użytkownika , pozwala integrować aplikacje z innymi programami daje możliwość efektywnego opisywania wiedzy o charakterze algorytmicznym .
W bloku control użyto następujące polecenia :
Run- uruchomienie programu zawartego w bloku sterowania
Goal (hipoteza )- uruchomienie - wnioskowania z podaną hipotezą
Answer (wartość )- przypisanie - odpowiedzi na zapytanie o wartość zmiennej
Solution - element rozwiązania (pełna trójka OAW )
Kod z bloku control w aplikacji ZPCHR
contorl
int Odp;
Budowę interfejsu użytkownika rozpoczynamy w kodzie control ...end wpisujemy
createAppWindow;
run;
vignette ( "ZPCHR" , "DEMONSTRACYJNA BAZA WIEDZY DOTYCZACA WYBORU STANOWISKA PRACY DLA OSOBY NIEPELNOSPRAWNEJ . TYP UMOWY , WYSOKOSC WYNAGRODZENIA ORAZ PROPONOWANA OPIEKA SOCJALNA W ZALEZNOSCI OD STOPNIA NIEPELNOSPRAWNOSCI\nAutor : Beata XXXX", "Copyright (C) 1992-99 AITECH Artificial Intelligence Laboratory");
setAppWinTitle, (" na jakim stanowisku ma pracować kandytat ");
setAppWinTitle, ("proponowany rodzaj umowy i proponowane wynagrodzenie");
setAppWinTitle, (" jakie świadczenia socjalne może uzyskac osoba niepelnosprawna ");
addSolution (yes);
W łatwy sposób możemy dodać ekran powitalny aplikacji , służy do tego instrukcja Vignette .
Dodajemy do naszej aplikacji menu w bloku menu..end jest pewien rodzaj instrukcji warunkowej .
Jako parametr podajemy nazwę menu a następnie kolejne pozycje . Ponieważ aplikacja jest z raportowaniem z jednej pozycji menu musimy podać kod DDE.
Nawiązanie konwersacji wymaga podania trzech parametrów : zmiennej typu int której przypisany zostanie numer otwartego kanału ( w przypadku pozytywnego nawiązania konwersacji) oraz dwóch parametrów określających nawiązywaną konwersacje -usługi oraz nazwę tematu .W przypadku aplikacji "ZPCHR" nazwa usługi to" WinWord" nazwa tematu "System"
Przy nawiązywaniu łączności z edytorem tekstu Word w pakiecie Office mogą wystąpić problemy . Należy sprawdzić z jakiego pakietu Office korzystamy .W zależności od edycji zmieniają się numery kolejnej edycji plików Office.
Kod raportowania W DDE umieszczamy w bloku menu w instrukcji case .
W bloku menu można umieścić notatkę gdzie można zapisywać uwagi - służy temu kod
system( "notepad.exe oaplik.text");
Zakonczenia systemu zapisujemy kodem , aby kod zadziałał należy w bloku control zaimplementować zmienna int odp :
case 4 :
system( "notepad.exe oaplik.text");
case 5 :
confirmBox (0,0, "Wyjscie ..","\n\nKONIECPRACY", odp);
while (odp==1)
Begin
exit;
end;
end;
end;
end;
Instalacja programu
Przed przystąpieniem do pracy należy zainstalować pakiet SPXINKS do zbudowanie niniejszej aplikacji .
Korzystałam z wersji demonstracyjnej Pakietu SPXINKS , zakupionego razem z gazetą Software Extra r 10
Wymaganie systemowe:
Komputer 486 lub nowszy ,Pamięć RAM 8MB lub więcej .
W systemie Windows Vista program działa niekompletnie , nie można uruchomić opcji pomoc.
Po włożeniu płyty CD do napędu program instalacyjny powinien uruchomić się automatycznie , z wyjątkiem sytuacji ,gdy opcja autostartu płyty jest wyłączona w ustawieniach systemu Windows .
W tym przypadku uruchomiamy ikonę Setup .exe
Po prawidłowym uruchomieniu programu instalacyjnego Pakietu SPXINKS pojawia się okno dialogowe z przyciskiem opcje , który umożliwia ustawienia instalacji żądanych systemów w systemie Windows . Uruchomienie instalacji programu Adobe Acrobat Reader wymagane do obsługi dokumentacji elektronicznej. Domyślnie instalowane są wszystkie systemy. Wybranie przycisku Instaluj rozpoczyna proces instalacji. System instalowany jest w katalogu podanym przez użytkownika. Domyślnie ustawiony jest katalog C:\SPHIKS 4.0, lecz można to zmienić.
W czasie instalacji sprawdzana jest obecność w systemie tego katalogu . Jeśli nie istnieje to użytkownik jest pytany o zgodę na jego założenie . Jeśli istnieje , to użytkownik jest proszony o potwierdzenie jego użycia.
Po prawidłowym zainstalowaniu plików następuje proces utworzenia grupy Sphinks 4.0 .
W menu Start zawierający ikonę programów pakietu SPHINKS .
W wersji 4.0program instalacyjny generuje zapytanie o to czy utworzyć skróty dla wszystkich użytkowników danego komputera czy tylko aktualnie instalującego pakiet.
Po prawidłowym zainstalowaniu sytemu program instalacyjny po potwierdzaniu zostaje zamknięty .
Programy pakietu są dostępne w menu Start
Korzystałam z wersji demonstracyjnej Pakietu SPXINKS , zakupionego razem z gazetą Software Extra r 10
Wymaganie systemowe:
Komputer 486 lub nowszy ,Pamięć RAM 8MB lub więcej .
W systemie Windows Vista program działa niekompletnie , nie można uruchomić opcji pomoc.
Po włożeniu płyty CD do napędu program instalacyjny powinien uruchomić się automatycznie , z wyjątkiem sytuacji ,gdy opcja autostartu płyty jest wyłączona w ustawieniach systemu Windows .
W tym przypadku uruchomiamy ikonę Setup .exe
Po prawidłowym uruchomieniu programu instalacyjnego Pakietu SPXINKS pojawia się okno dialogowe z przyciskiem opcje , który umożliwia ustawienia instalacji żądanych systemów w systemie Windows . Uruchomienie instalacji programu Adobe Acrobat Reader wymagane do obsługi dokumentacji elektronicznej. Domyślnie instalowane są wszystkie systemy. Wybranie przycisku Instaluj rozpoczyna proces instalacji. System instalowany jest w katalogu podanym przez użytkownika. Domyślnie ustawiony jest katalog C:\SPHIKS 4.0, lecz można to zmienić.
W czasie instalacji sprawdzana jest obecność w systemie tego katalogu . Jeśli nie istnieje to użytkownik jest pytany o zgodę na jego założenie . Jeśli istnieje , to użytkownik jest proszony o potwierdzenie jego użycia.
Po prawidłowym zainstalowaniu plików następuje proces utworzenia grupy Sphinks 4.0 .
W menu Start zawierający ikonę programów pakietu SPHINKS .
W wersji 4.0program instalacyjny generuje zapytanie o to czy utworzyć skróty dla wszystkich użytkowników danego komputera czy tylko aktualnie instalującego pakiet.
Po prawidłowym zainstalowaniu sytemu program instalacyjny po potwierdzaniu zostaje zamknięty .
Programy pakietu są dostępne w menu Start
uwaga!!!!!!!!!!
Wskazane jest, aby podczas instalacji w systemie Windows nie była uruchomiona żadna aplikacja . W przypadku zaistnienia konfliktów używania bibliotek dll przez inne aplikacje należy je zamknąć i ewentualnie uruchomić ponownie system i rozpocząć instalacje od nowa.A jak wygląda to w praktyce
W moim przypadku celem praktycznym było zbudowanie bazy wiedzy do szkieletowego systemu ekspertowego PC-shell oraz dokładna analiza tego systemu dla potrzeb wspomagania pracy Zakładu Pracy Chronionej zatrudniającego osoby niepełnosprawne.
Danym wejściowymi dla systemu " ZPCHR" są odpowiednio przetworzone informacje , dane dotyczące kandydata ubiegającego się o prace tzn . stopień niepełnosprawności ,wyksztalcenie ,czy wymaga opieki osób trzecich i inne , które klasyfikują ubiegającego się o prace na określone stanowisko , którym dysponuje dany zakład .Jest to ogólna wiedza służąca do stworzenia demonstracyjnej bazy wiedzy.
Będąc osoba niepełnosprawną pracującą w podobnym zakładzie na bieżąco mogę śledzić sposoby zatrudniania i opieki socjalnej w tego typu zakładach.
dane są wiarygodne . Fikcją ssą orientacyjne wynagrodzenia pracownika.
Danym wejściowymi dla systemu " ZPCHR" są odpowiednio przetworzone informacje , dane dotyczące kandydata ubiegającego się o prace tzn . stopień niepełnosprawności ,wyksztalcenie ,czy wymaga opieki osób trzecich i inne , które klasyfikują ubiegającego się o prace na określone stanowisko , którym dysponuje dany zakład .Jest to ogólna wiedza służąca do stworzenia demonstracyjnej bazy wiedzy.
Będąc osoba niepełnosprawną pracującą w podobnym zakładzie na bieżąco mogę śledzić sposoby zatrudniania i opieki socjalnej w tego typu zakładach.
dane są wiarygodne . Fikcją ssą orientacyjne wynagrodzenia pracownika.
piątek, 13 września 2013
Implementowanie systemu
Ostatnim z wyodrębnionych etapów realizacyjnych jest opracowanie gotowego systemu ekspertowego ,który po odpowiednich procedurach weryfikacyjnych zostaje przekazany użytkownikowi. Środowisko narzędziowe , w którym system powstaje różni się istotnie od innych produktów informatycznych . Mając bazę wiedzy wyróżnioną za pośrednictwem określonego formalizmu ,staramy się odwzorować ją w określonym języku programowania lub tez " szkieletowym " systemie ekspertowym . Należą do nich:
- baza wiedzy ,
-moduł sterujący funkcjonowaniem aplikacji
-moduł komunikacji z użytkownikiem
Każdy element powinien być zaprojektowany , a następnie oprogramowany za pośrednictwem wybranego narzędzia .
Implementacja wiedzy w systemie jest czynnością bardzo specyficzną .Zazwyczaj dysponujemy wieloma narzędziami pozwalającymi na jednoznaczne wprowadzenie opracowanych reguł czy ram . Oprócz prostej edycji mamy udogodnienia umożliwiające wstępną weryfikacje wprowadzanej wiedzy.
Moduł sterujący na pozór wydaje się podobny do tradycyjnego oprogramowania , ale istota całego procesu eksploatacji ,zasadza się na działaniu mechanizmu wnioskującego. Moduł sterujący ma na celu aktywizowanie istotnych dla procesu generowania decyzji fragmentów wiedzy uzupełniając je w razie potrzeby także rezultatami procesu wnioskowania.
Moduł komunikacji z użytkownikiem jest najbardziej zbliżony do klasycznej aplikacji .
Użytkownicy komunikują się za pośrednictwem określonych poleceń wyboru czy wyboru z menu , wprowadzając określone określone wartości parametrów, dane etc.
System może mieć możliwość rozpoznawania poleceń w języku naturalnym tu konieczna jest budowa określonej klasy słowników interpretacyjnych . Systemy ekspertowe są wyposażone w moduł objaśniający , który musi być sprzężony z generowanymi ekspertyzami .
Różnorodność danych wejściowych powoduje konieczność zastosowania wyrafinowanych technik wprowadzania danych.
W ramach całego cyklu życia systemu wspomagania decyzji wyodrębnia się etap testowania.
Po wykryciu błędów formalnych oprogramowania należy przede wszystkim ocenić , jakość zaimplementowanej bazy pod kątem wiarygodności generowanych rezultatów , a także poddać weryfikacji kompletności czy spójności .
- baza wiedzy ,
-moduł sterujący funkcjonowaniem aplikacji
-moduł komunikacji z użytkownikiem
Każdy element powinien być zaprojektowany , a następnie oprogramowany za pośrednictwem wybranego narzędzia .
Implementacja wiedzy w systemie jest czynnością bardzo specyficzną .Zazwyczaj dysponujemy wieloma narzędziami pozwalającymi na jednoznaczne wprowadzenie opracowanych reguł czy ram . Oprócz prostej edycji mamy udogodnienia umożliwiające wstępną weryfikacje wprowadzanej wiedzy.
Moduł sterujący na pozór wydaje się podobny do tradycyjnego oprogramowania , ale istota całego procesu eksploatacji ,zasadza się na działaniu mechanizmu wnioskującego. Moduł sterujący ma na celu aktywizowanie istotnych dla procesu generowania decyzji fragmentów wiedzy uzupełniając je w razie potrzeby także rezultatami procesu wnioskowania.
Moduł komunikacji z użytkownikiem jest najbardziej zbliżony do klasycznej aplikacji .
Użytkownicy komunikują się za pośrednictwem określonych poleceń wyboru czy wyboru z menu , wprowadzając określone określone wartości parametrów, dane etc.
System może mieć możliwość rozpoznawania poleceń w języku naturalnym tu konieczna jest budowa określonej klasy słowników interpretacyjnych . Systemy ekspertowe są wyposażone w moduł objaśniający , który musi być sprzężony z generowanymi ekspertyzami .
Różnorodność danych wejściowych powoduje konieczność zastosowania wyrafinowanych technik wprowadzania danych.
W ramach całego cyklu życia systemu wspomagania decyzji wyodrębnia się etap testowania.
Po wykryciu błędów formalnych oprogramowania należy przede wszystkim ocenić , jakość zaimplementowanej bazy pod kątem wiarygodności generowanych rezultatów , a także poddać weryfikacji kompletności czy spójności .
Przykładowa dokumentacja użytkownika
Napisze dla zainteresowanych jak wygląda proces instalacji i dokumentacja użytkownika
Po zainstalowaniu Pakietu Sphinx uruchamiamy ikonę PC-shell
Ekran powitalny naszej aplikacji .Po zaakceptowaniu
programu przyciskiem OK. ukazuje się menu naszej aplikacji
Wybieramy pozycję w menu , którą chcemy zrealizować np.
Zaznaczamy wybraną przez nas odpowiedź na zadane pytanie.
Czynność tą powtarzamy ,aż do uzyskania końcowego wniosku czyli w naszym
przypadku oceny ryzyka zachorowania na cukrzycę
bądź ocenę typu cukrzycy lub ewentualne metody leczenia .W zależności
jaką pozycję menu wybieramy
Po zaakceptowaniu OK. program zadaje pytanie o wydrukowanie
raportu
W wyniku akceptacji otrzymamy raport jak powstała konkluzja
KONKLUZJA:
ryzyko = "konsultacja"
79: ryzyko = "konsultacja" JEŚLI
pacjent_ma_chorobę_układu_naczyniowo_sercowego = "nie_wiem";
----------------------------------------------------------------------------------------------------
14* Fakt
:pacjent_ma_chorobę_układu_naczyniowo_sercowego = "nie_wiem"
Po wybraniu opcji wyjscie ukazuje się okno aplikacji
kończącej program.
W menu mamy okno pozycję
notatnik ,w której użytkownik może zapisywać własne notatki . Po ponownym
uruchomieniu programu i otwarciu z menu „Notatnik” zapisane notatki będą
zachowane.
To taki przykład zastosowania systemu ekspertowego ,program mógłby być pomocy w pracy lekarza podczas diagnozowania pacjenta oraz pomocny studentom medycyny , w programie zawarte są ,dzięki mojemu ekspertowi wszystkie dane dotyczące cukrzycy oraz jej rodzajów a także metod i sposobów leczenia.
Na obronie program zadziałał :)
środa, 11 września 2013
CAKE jako narzędzie budowy bazy wiedzy dla PC-shell’a
„System CAKE (ang. Computer Aided Knowledge
Engineering) jest przeznaczony do komputerowego wspomagania procesu realizacji
dziedzinowych aplikacji szkieletowego systemu ekspertowego PC-Shell.
Pierwszym krokiem w stronę realizacji koncepcji systemu CAKE był opracowany na początku lat 90 system dbMaker, przeznaczony głównie do tworzenia i obsługi wyjaśnień typu "co to jest?" oraz metafor systemu ekspertowego PC-Shell. Następnie przystąpiono do prac nad praktyczną implementacją autorskiej koncepcji systemu CAKE dr. Krzysztofa Michalika, pierwotnie rozwijanej w firmie Aitech pod roboczymi nazwami kbMaker i kbBuilder (analogicznie aplikacja Aitech DSS była początkowo rozwijana pod roboczą nazwą dssBuilder). Projekt CAKE w całości był finansowany i realizowany wyłącznie w przez firmę AITECH.” www.aitech.pl
Pierwszym krokiem w stronę realizacji koncepcji systemu CAKE był opracowany na początku lat 90 system dbMaker, przeznaczony głównie do tworzenia i obsługi wyjaśnień typu "co to jest?" oraz metafor systemu ekspertowego PC-Shell. Następnie przystąpiono do prac nad praktyczną implementacją autorskiej koncepcji systemu CAKE dr. Krzysztofa Michalika, pierwotnie rozwijanej w firmie Aitech pod roboczymi nazwami kbMaker i kbBuilder (analogicznie aplikacja Aitech DSS była początkowo rozwijana pod roboczą nazwą dssBuilder). Projekt CAKE w całości był finansowany i realizowany wyłącznie w przez firmę AITECH.” www.aitech.pl
System CAKE umożliwia :
-weryfikacja poprawności wiedzy
- wspomaganie procesu tworzenia, rozbudowy i
pielęgnacji baz wiedzy
- generowanie baz wiedzy w klasycznej postaci
tekstowej
- generowanie baz wiedzy w postaci binarnej
-zarządzanie projektem aplikacji, również
hybrydowych
- ochrona
projektu aplikacji systemem uprawnień i haseł,
-
wspomaganie organizacji pracy grupowej.
„Dzięki wykorzystaniu systemu CAKE można
realizować aplikacje systemu PC-Shell bez dokładnej znajomości języka opisu
bazy wiedzy. Na każdym z etapów pracy system oferuje wygodne narzędzia
wspomagające, eliminujące konieczność żmudnego wprowadzania kodu. Zapis baz
wiedzy w postaci binarnej zapewnia z jednej strony ochronę zgromadzonej wiedzy
przed niepowołanym dostępem, z drugiej zaś strony poprawia efektywność
wykonania aplikacji w środowisku systemu PC-Shell. Dzięki systemowi uprawnień i
haseł można ograniczyć dostęp do aplikacji zarówno na etapie jej tworzenia jak
również na etapie jej wykonywania”www.aitech.pl
System CAKE umożliwia realizację
funkcji:
- tworzenie bazy wiedzy w
oparciu o specjalizowany edytor bazy wiedzy
- realizowanie na bieżąco
kontroli poprawności wprowadzanych
informacji
- automatyczna generacja teksu źródłowego
bazy wiedzy
-automatyczna generacja bazy
wiedzy w postaci binarnej , która nie podlega procesowi translacji ,odpowiednie
struktury modułu wnioskującego będą wypełniane automatycznie
-ochrona wiedzy zapisana w
postaci binarnej w oparciu o system haseł i uprawnień
-efektywne i ergonomiczne
zarządzanie bazą wiedzy za pośrednictwem narzędzi w postaci specjalizowanych
edytorów bloków baz wiedzy
Podstawowym blokami
funkcjonalnymi systemu CAKE są:
-moduł bazy wiedzy :
1.Edytor bloku atrybutów
2.Edytor bloku faktów
3.Edytor bloku reguł
4.Edytor bloku sterującego
-moduł uprawnień
-moduł zarządzania bazą wiedzy
-translator języka Sphinx
-moduł raportów
Moduł bazy wiedzy realizuje funkcje dialogowe systemu. Użytkownik systemu
może realizować wszystkie operacje na bazie wiedzy. Główny edytor
składa się ze specjalizowanych edytorów na poszczególnych blokach bazy wiedzy.
Moduł zarządzania bazą wiedzy odpowiada za realizację wszystkich operacji
związanych z bezpośrednimi manipulacjami na bazie wiedzy. Tu następuje kontrola
poprawności wprowadzanych czy zmienianych elementów bazy
wiedzy-atrybutów, faktów ,reguł.
Translator języka opisu bazy wiedzy jest odpowiednikiem translatora
wbudowanego w system ekspertowy PC-shell .Zadaniem jego jest kontrola
poprawności bloku sterowania oraz kontrola poprawności baz zapisanych w postaci
tekstowej , importowanych do systemu CAKE
w celu wygenerowanie wersji binarnej lub weryfikacji.
W module raportów w systemie CAKE
możemy automatycznie utworzyć dokumentację zawierającą opisowe informacje o
bazie jak i o poszczególnych jej blokach
oraz ich właściwościach. Dokumentacja może być wydrukowana w postaci raportu.
pisząc program trzeba bardzo uważać na znaki ,gdyż brak np.";" spowoduje ,ze program nie będzie działał
Regułowa reprezentacja wiedzy
Najpopularniejszym sposobem
reprezentacji wiedzy w systemach ekspertowych jest reprezentacja bazy wiedzy
oparta na regułach IF – THEN Z
prawdziwości pewnych faktów można wnioskować o prawdziwości innych. Takie
zależności zapisane są w regułach .W bazie wiedzy zgromadzony jest zbór reguł i
faktów.Wyrażenia w przesłankach i konkluzjach nazywamy klauzulami.
Ogólna postać reguły:
IF x1 is F1 and/or x2 is F2 and / or …….xn is Fn przesłanka
THEN y is G
konkluzja
Gdzie x1 ,x2,
…………….xn, y
oznaczają obiekty , a F1 , F2, …………Fn , G – wartości
Przykład :
IF poziom_cukru_pacjenta IS < 60
THEN ryzyko_zachorowania
_na_cukrzycę is DUŻY
Reguły są oparte na trójkach OAW(Obiekt ,Atrybut ,Wartość ):
- w przesłance :
Obiekt pacjent
; Atrybut
poziom_cukru; Wartość <60
- w konkluzji :
Obiekt pacjent ; Atrybut poziom; Wartość duży
Należy podkreślić różnicę w traktowaniu atrybutu i wartości
w przesłance i konkluzji.
W przesłance system porównuje –sprawdza , czy relacja
atrybut –wartość
(poziom_cukru <60)
jest prawdziwa , w konkluzji natomiast następuje podstawienie .Konkluzja jest wnioskiem , co
ma się dziać z atrybutem .(ustaw wartość
ryzyka na duży).
Ogólna postać reguły zakłada istnienie wielu wejść (trójek
OAW ) i jedno wyjście .Możliwe jest zbudowanie reguły , w wyniku której podając
kilka działań i która ma kilka na wyjściu kilka trójek OAW:
IF x1 is F1 and /or x2 is F2 and/or …..xn is F n
THEN y1 is
G1 and y2 is G2
W konkluzji jedynym
spójnikiem logicznym ,jest spójnik „and”. Stosowanie spójnika „or” jest
dopuszczalne , lecz nie zalecane ze względu na większe skomplikowanie modułu
wnioskującego.
Reprezentacja regułowa wykorzystywana jest w systemach
dedukcyjnych , w których zbiór faktów początkowych jest przekształcany w zbiór
faktów końcowych. W zależności od przeznaczenia system może spełniać funkcje
taki jak :klasyfikowanie , ustalanie przyczyn , planowanie , monitorowanie
,diagnozowanie itp.
Zbiór reguł można rozpatrywać jako szczególny sposób
zapisu sieci stwierdzeń , ponieważ z prawdziwości jednego stwierdzenia
mogą wynikać inne. W niektórych systemach dopuszczalna jest rozwinięta (tzw. pełna ) postać reguł.,
która zawiera dodatkowe stwierdzenie uznawane za prawdziwe w razie
niespełnienia przesłanki .
Ogólna postać reguły rozwiniętej jest następująca:
IF przesłanka THEN konkluzja1 ELSE konkluzja2
Konkluzja2 jest tym dodatkowym stwierdzeniem . Taka postać
reguł czasami może prowadzić do uznania
nieoczekiwanych konkluzji. Ze względu na złożona nieraz kompletność bazy wiedzy
, brak przesłanki jest utożsamiany z uznaniem tej przesłanki za fałszywą .
Fakty i Reguły
Wiedza jest to informacja , która
umożliwia ekspertowi podejmowanie decyzji .
Typy wiedzy to:
- Fakty czyli wiedza stała i
zmienna Np.
Ceny nieruchomości są wysokie
- Reguły opisują zawiązki i
relacje pomiędzy faktami Np.
if
stopa inflacji jest wysoka
then
ceny nieruchomości są wysokie
Fakty są to elementarne składniki
informacji używane w Systemach Ekspertowych.
FAKTY + REGUŁY => WNIOSKI
1.Cechy faktów:
-są stwierdzeniami opisującymi specyficzne
cechy obiektów
- zmienność i dezaktualizacja
- mogą być pewne lub niepewne
Z faktami możemy wiązać
współczynniki wiarygodności tzw. stopień pewności , który mówi nam na ile można
ufać danej informacji.
Wprowadzanie nowych faktów do
bazy danych:
2. Wprowadzanie nowych faktów do bazy danych:
Wprowadzone do
bazy danych przed rozpoczęciem pracy SE (fakty stałe)
Wprowadzone w
czasie pracy SE (wynik wykonania reguł)
Wprowadzone
jako odczyt z urządzeń zewnętrznych
Wprowadzone z
zewnętrznej bazy danych (żądanie użytkownika, wykonanie reguły działania)
Fakty sterują procesem
podejmowania decyzji oraz określają , które reguły mają być wykonane. Jakość procesu wnioskowania zależy od
istotności faktów użytych w danym procesie.
Fakty i reguły tworzą bazę danych
zwaną bazą wiedzy. Bazy reguł są często bardzo rozbudowane , zawierają wiele połączonych ze sobą
elementów. W trakcie pracy systemu baza może być zmieniana. Możemy dodawać nowe
reguły , a już istniejące zmieniane lub usuwane .Może to prowadzić do utraty
kontroli nad zawartością bazy, a przez to do istnienia niepotrzebnych ,
sprzecznych bądź niekompletnych reguł.
Reguły to warunkowe stwierdzenia o istnieniu pewnych
zależności między obiektami.
Cechy reguł:
- Korespondują ze sposobem w jaki ekspert przestawia swoją
wiedzę
- Opisują reakcje systemu na napływające informacje (bez
względu na kolejność)
A oto dwie metody , które mogą ułatwić
inżynierowi wiedzy panowanie nad baza wiedzy.
- Grupowanie Reguł
Reguły mogą być pogrupowane w bazie wg konkluzji lub wg
przesłanki .Umieszczając obok siebie reguły które kończą się taką samą
konkluzją , daje możliwość prześledzenia przesłanek , które do tej konkluzji
prowadzą . Następnie uporządkowanie grup. Najważniejsze są grupy zawierające
konkluzje końcowe .Podobnie porządkujemy
w przypadku przesłanek .takie
- Sieć zależności
Dzięki tej metodzie można odnaleźć w bazie danych reguły ,
które nie prowadza do konkluzji końcowej ,niepotrzebne przesłanki i
nieosiągalne konkluzje .
Np. Dany jest następujący zbiór reguł
R1: If b and c
Then g
R2: If a and g
Then I
R3: If d and g
Then J
R4:
if e or f
Then h
R5: if d and e
Then K
I , J i K są konkluzjami końcowymi . Zakłada się , ze jest
to pełen , końcowy zbiór reguł , podlegający weryfikacji.
Podczas analizy sieci można zauważyć , ze reguła R4 , której
wynikiem jest konkluzja pośrednia h , nie jest później nigdzie wykorzystywana
.stad wynika ,ze albo reguła nie jest potrzebna , albo brakuje dalszego
rozumowania .Jeśli reguła R4 jest niepotrzebna , to jednocześnie fakt f jest niewykorzystywany
bazy wiedzy może być usunięta reguła R4 i fakt f.
Ze względu na sposób uzyskiwania ostatecznych konkluzji w
procesie wnioskowania rozróżniamy dwa rodzaje reguł:
- Reguły proste – to ,takie ,które maja postać wniosków pośrednich ;
- Reguły złożone – to , takie, które umożliwiają bezpośrednie wyznaczanie wniosków przez system.
Przykład reguły złożonej :
If są spełnione wszystkie warunki
niezbędne do przyjęcia wniosku ,ze u pacjenta stwierdzono wysokie ryzyko
zachorowania na cukrzyce then należy skonsultować się z diabetologiem .
Zaletą reguł złożonych jest to, że nie wymagają maszyn
wnioskujących o skomplikowanym sposobie działania ;ponieważ każdą z reguł w
konkluzji zawiera pewien wniosek końcowy .
Wystarczy uaktywnić jedna regule ,aby osiągnąć wynik. Wadą
jest trudność formułowania odpowiedniego zbioru reguł oraz złożony sposób jego
weryfikacji i uzupełniania .
Zaletą reguł prostych jest łatwość weryfikacji zbioru reguł
i ograniczenie ich redundancji.
Wada jest potrzeba realizacji złożonych działań przez
maszynę wnioskująca ,dlatego ze trzeba uaktywnić wiele reguł.
Baza wiedzy i metody reprezentacji wiedzy
Moc systemu ekspertowego leży przede wszystkim od
zakodowanej w nim bazy wiedzy a w mniejszym stopniu od mechanizmów
wnioskowania. Istotnym problemem jest pozyskanie i zapisanie wiedzy w
programach komputerowych. Zajmuje się
tym inżynieria wiedzy. Do głównych zadań należy rozwijanie i stosowanie
metod pozyskiwania wiedzy od ekspertów oraz rozwój i stosowanie metod
reprezentacji wiedzy. Wyróżniamy dwa rodzaje wiedzy z jakimi mają do czynienia
eksperci i inżynierowie wiedzy. Są to:
- wiedza a priori-wiedza będąca dziedzictwem kulturowym ; są to reguły i fakty dotyczące danej dziedziny, znane z góry , które mogą być podane przez każdego eksperta .
- wiedza wnoszona- jest to wiedza dotyczącą konkretnego przypadku ,który pojawił się w trakcie pracy systemu ekspertowego czy eksperta, nabywana podczas procesu podejmowania decyzji.
Zadaniem inżyniera wiedzy jest zapisanie tej wiedzy w
maszynach cyfrowych, w sposób najbliższy
sposobu rozumowania człowieka.
4.1. Reprezentacja wiedzy
Baza wiedzy w
systemach ekspertowych składa się z faktów i reguł. Fakty są to proste
stwierdzenia określające pewien stan. Najczęściej przyjmują formę zdań
oznajmujących ,określających cechę podmiotu zdania (Pacjent ma gorączkę
).Reguły określają zależności.
Są to zdania
podrzędne złożone ,zbudowane w formie zdań warunkowych .
(Jeśli pacjent ma gorączkę ,to jest chory)
Metody reprezentacji wiedzy mają za zadanie:
1.Nadać wiedzy
format kompatybilny z komputerem
2
Utrzymać formę bliską formie, w jakiej ekspert podaje
reguły i fakty
3
Ustalić reprezentacje taką ,by możliwe było łatwe
modyfikowanie ,dodawanie i usuwanie faktów oraz reguł
1.Trójki OAW, czasem
oznaczane OAV
(Obiekt
–Atrybut-Wartość lub Obiekt-Atrybut Value)
Jest to sposób reprezentacji faktów ,szczególnie tych
zawartych w wiedzy wnoszonej.
Wartość nie musi być wyrażana w liczbach ,mogą być użyte
wyrażenia lingwistyczne
W niektórych systemach są rozbudowywane do uporządkowanej
czwórki (Obiekt- Atrybut- Wartość –
Stopień_pewności) w ten sposób uzyskujemy stwierdzenie przybliżone .
Najczęściej są to liczby z przedziału [-1;1].Stopień_
pewności =0 oznacza to ,ze nic na ten temat nie wiadomo. Jak do tej pory
stopnie pewności wyznaczane są subiektywnie.
2.Sieci semantyczne
Są to rozbudowane trójki OAW, używane do reprezentacji kilku
obiektów i kilku atrybutów danego obiektu. Sieć semantyczna jest pewnego
rodzaju logiką, gdzie relacje między obiektami są przedstawiane graficznie.
Mechanizm dedukcji jest wyrysowany. Wnioskowanie odpowiada poruszaniu się po grafie. Dodatkowo pomiędzy
poszczególnymi węzłami grafu mogą zachodzić relacje zaczerpnięte z języka
naturalnego: ma ,jest, równie. Sieci semantyczne są stosowane w systemach
analizy i rozumienia języka naturalnego w tłumaczeniach elektronicznych oraz w
systemach wspomagania uczenia.
3.Ramki
Jest to prosty i jasny sposób przedstawiania wiedzy. Ramka
składa się z obiektu i pól w których
można zapisywać informacje związane z tym obiektem. Zawartością pól może
być może być atrybut ,jego wartość
,wskaźnik do innej ramki lub zbiór lub zbiór reguł. Ramki są często używane z
powodu ich prostoty, struktury podobnej do obiektów oraz łatwości zapisów
operacji w formie procedur w językach programowania. Dają możliwość zbudowania dużych złożonych baz wiedzy
,szczególnie zawierających fakty wiedzy a priori.
4.Zdania logiczne
Zdania logiczne to te ,których
wynikiem jest prawda lub fałsz. Mogą być
połączone spójnikami „and” ,’or”, not”. Elementami składowymi są predykaty i
argumenty. Predykat to stwierdzenie dotyczące obiektu lub relacji danego
obiektu w jaką wchodzi ze światem rzeczywistym.
Przykład:
Ssak (pies )-przy założeniu ze
zdanie jest prawdzie oznacza ze „pies jest ssakiem”
4nogi(pies)-oznacza ,przy założeniu jak wyżej ,”Pies ma 4 nogi”
Zdania logiczne mogą być
wykorzystywane do reprezentacji reguł .Przyjmują postać
Predykat (argument): if
predykat (argument)
Przykład:
Spadek (koszt_kredytu) : if spadek
(stopa_procentowa) .
Zapisy w formie zdań logicznych
są używane w językach programowanie sztucznej inteligencji , tj. w PROLOGU i w
LISP-ie.
Rozwój i charakterystyka największych SE
Dobrze działające systemy ekspertowe zaliczane są do tzw.
"programów inteligentnych"
i są częścią dziedziny nazywanej "Sztuczną
Inteligencją". Są jednym z najbardziej praktycznych działów „Sztucznej
Inteligencji” Od kilkunastu lat głównie
w USA, Japonii i Europie Zachodniej wzrasta liczba zastosowań tych
systemów w praktyce. Potencjalne
możliwości tej nowoczesnej technologii informatycznej są ogromne. Począwszy od
medycyny, geologii , technikę oraz w dziedzinie wspomagania decyzji
gospodarczych i finansowych.
Pierwsze systemy ekspertowe powstały w 1975 roku. Zakończono
wówczas tworzenie systemu DENDRAL służącego do identyfikacji i analizy
struktury chemicznej cząsteczek.
Na niektórych lotniskach działa do dziś system nazywany
GATES ,którego zadaniem jest przydzielanie kolejnym przewoźnikom bramek(ang.gates)
,którymi przechodzi się do strefy wolnocłowej i na płytę lotniska. Wyznaczanie
bramki może stać się skomplikowanym zadaniem , wymagającym natychmiastowego
rozwiązania ,szczególnie przy zakłóceniach pracy na lotnisku. System śledzi
ponad 100 lotów dziennie , ma bezpośredni dostęp do bazy danych lotniska i może
przydzielić bramkę w ciągu 30 sekund. Poprzednio zajmowało to ok. godziny.
Istotny postęp w metodologii projektowania systemów
ekspertowych osiągnięto w wyniku realizacji programu Heuristic Programming .
Project kierowany przez pracowników Uniwersytetu Stanford : Feigenbaum ,
Buchanan i Shortliffe .Praktycznym efektem tego projektu jest system ekspertowy
MYCIN [Buchanan , Shortliffe 1984
r.) , który do dzisiaj jest traktowany jako klasyczny przykład inteligentnego
programu komputerowego. Przeznaczeniem tego programu jest diagnostyka chorób na
tle bakteryjnym . Wybór terapii przez MYCIN
to czteroetapowy proces decyzyjny , obejmujący :
- zdiagnozowanie , czy pacjent jest ofiarą infekcji bakteryjnej
,
- zidentyfikowanie typu bakterii odpowiedzialnej za infekcję
,
- określenie zestawu leków i działań terapeutycznych,
- sformułowanie specyficznej terapii dla konkretnego
pacjenta .
Program MYCIN
posiada olbrzymią bazę objawów chorób i proponowanych leczeń .Zawartość bazy
została ustalona przez grono konsylium lekarskiego. Na podstawie owej bazy
danych program po wpisaniu objawów dokonuje diagnozy i proponuje leczenie.
Lekarz natomiast może zgodzić się z komputerem lub nie. Należy pamiętać , że lekarz
oprócz wiedzy ma również doświadczenie oraz intuicje ,czego nie da się nauczyć
komputera.
Środowisko, w którym działają systemy ekspertowe nazywamy
dziedziną przedmiotową .Do niej zaliczamy system przedmiotowy ,czyli układ
realny bądź abstrakcyjny , którego funkcje i struktura są kształtowane przez
świadome działanie człowieka .Osobę odpowiedzialną za kształtowanie
charakterystyki strukturalno-funkcjonalnej systemu przedmiotowego nazywamy
decydentem. Osobę, która dysponuje wiedzą o systemie przedmiotowym nazywamy ekspertem.
Funkcje programów ekspertowych takie jak czynności doradcze
, objaśniające i związane z nabywaniem nowych wiadomości decydują o
przynależności programów do technik inteligentnych.
System ekspertowy wykonuje zadania :
- konsultacyjne , gdy
stawia pytania , wyciąga wnioski formułując porady,
- eksplanacyjne , gdy
odpowiada na pytania i wyjaśnia , w jaki sposób skonstruował diagnozę,
- związane z rozwojem wiedzy , gdy przyswaja nowe metody
diagnozy i rozwiązywania problemów .
Formułowanie diagnoz ,wskazówek i zleceń to najważniejsza
funkcja programu ekspertowego .
W zależności od sposobu wykonywania funkcji doradczej ,
systemy ekspertowe dzielimy na:
-ekspanacyjne ,które tłumaczą mechanizmy funkcjonowania
systemu przedmiotowego
-konsultacyjne ,które proponują decydentowi alternatywne
rozwiązania problemu
- rozstrzygające ,które znajdują rozwiązania problemu ,po
czym je samodzielnie aplikują
Do czynności pomocniczych w systemach ekspertowych służy
funkcja objaśniania .
Ma ona kluczowe znaczenie dla wiarygodności programu
doradczego . Procedury objaśniające systemu ujawniają drogę wnioskowania ,
która doprowadziła do wygenerowania porady eksperckiej dzieje się to na zadanie użytkownika .
System objaśniający można logicznie oddzielić od reszty ale
jest on integralną częścią całego systemu ekspertowego . Ważną cechą systemu
ekspertowego jest możliwość korzystania z niego przez osoby bez przygotowania
informatycznego Dlatego istotne jest aby system był zrozumiały z interesującym
interfejsem.
A oto zestaw najczęściej spotykanych zapytań (opcji) ,
których znaczenie zależy od powodu zgłoszenia systemu objaśniającego.
1.
Why ?- odpowiada
na pytanie , dlaczego jest analizowany dany warunek ,podając nazwę i postać reguły
analizowanej z zaznaczeniem bieżącego warunku. Opcja niedostępna po ustaleniu
końcowych odpowiedzi .
2.
How?-
opcja dostępna w dowolnej chwili , różni się znaczeniem w zależności od
kontekstu wywołania . Po ustaleniu odpowiedzi końcowej ,przy wywołaniu –odpowiada
na pytanie : jak system doszedł do tego , że cel stal się wynikiem. Możliwe
jest odtworzenie całej drogi wnioskowania dzięki pamiętaniu śladu wnioskowania.
Użytkownik podając numer faktu z listy
faktów uzyska odpowiedź na pytanie : jak system doszedł do tego , że fakt
przyjmuje taką wartość.
3.
What will be
if…- opcja pomaga użytkownikowi w udzielaniu odpowiedzi .System podaje
konsekwencje wyboru ( jeden krok w przód) po wybraniu jednej z możliwych
odpowiedzi. Opcja dostępna tylko przy zadawaniu pytań.
4.
All
Rules- wyświetla na ekranie wszystkie reguły z jakich składa
się baza wiedzy ze wszystkimi warunkami .przy każdym wywołaniu działanie opcji
jest jednakowe.
5.
All
Facts- wyświetla na ekranie
wszystkie fakty dostępne aktualnie na liście faktów z zaznaczeniem
pochodzenia. Opcja powinna być dostępna
przy każdym wywołaniu.
Istnieją różne typy problemów rozwiązywanych przez systemy
ekspertowe i różnego rodzaju odpowiedzi otrzymywane są na wyjściach takich
systemów. Systemy możemy podzielić na grupy:
1. Klasyfikacja-na
podstawie przesłanek otrzymuje się wynik ,określenie stanu czy klasy do której
należy obiekt. Do tej grupy należą systemy medyczne (diagnoza na podstawie
objawów),systemy naprawcze ,systemy rozpoznawania postaci i obiektów.
2. Plan- jest to
poszukiwanie aranżacji ,porządku elementów.(np.
system GATES)
3. Prognoza-na
podstawie istniejących danych przewiduje się stan przyszły np. system
przewidujący zjawiska atmosferyczne czy zapotrzebowanie na wodę lub energię.
Systemy ekspertowe dzielimy również ze względu na sposoby
realizacji:
- Systemy dedykowane –są to systemy z zaszytą w nich bazą wiedzy ,tworzone na konkretne zamówienie.
- Systemy szkieletowe- systemy z pustą bazą wiedzy, umożliwiająca wprowadzenie własnych informacji ,z którymi ma pracować system.
Projektowane systemu ekspertowego można radykalnie skrócić
, jeżeli system zostanie zbudowany z
wykorzystaniem specyficznej struktury szkieletowej , zwanej z j.ang, shellem .Program typu
Shell jest systemem ekspertowym
pozbawionym bazy wiedzy a zatem ograniczony do mechanizmu wnioskującego i
modułu współpracy z użytkownikiem .W zależności od tematyki dołączanej ad hoc
bazy wiedzy system może obsługiwać różne dziedziny przedmiotowe .Programy typu
shell powstają na bazie klasycznych ,
sprawdzonych systemów ekspertowych ; Np. adaptacją programu MYCIN do postaci szkieletowej , rozpowszechniania następnie pod nazwą Emycin (Emty Mycin).Oprogramowanie
typu Shell zawiera bogate środowisko pomocne w rozwijaniu systemów z bazą
wiedzy , którego elementami mogą być edytory kodu , wykrywacze błędów (
debuggers) , procedury projektowania w układzie okienkowym.
Programy szkieletowe upraszczają czynności związane z
definiowaniem modułu objaśniającego ,reprezentacją wiedzy i mechanizmu
wnioskującego jak również oferują wszechstronną pomoc i doradztwo w
najważniejszych fazach budowy systemu ekspertowego.
Przykładem pierwszego polskiego systemu ekspertowego jest
program PC-Shell , rozpowszechniany przez firmę AITech (www.aitech.com.pl) .Wchodzi w skład
Pakietu Sztucznej Inteligencji Sphinx , który zawiera: pakiet PC-Shell , symulator sieci neuronowych NEURONIX, system
komputerowego wspomagania
inżynierii wiedzy CAKE oraz
programy ekspertowe: Doradca finansowy ,Doradca inwestycyjny , Doradca
kapitałowy. W skład struktury systemu PC-shell wchodzą :
- jądro systemu czyli
moduł sterujący
- baza wiedzy
- moduł
współpracujący z użytkownikiem
Mechanizm wnioskujący funkcjonuje na zasadzie wnioskowania
do tyłu (backward chaining).
W systemach ekspertowych ,które są budowane za pomocą
PC-Shell , baza wiedzy reprezentowana jest w formie deklarowanej czyli fakty i
reguły , jako trójki O-(obiekt) –A(Atrybut)-V(Wartość),jak również jako program
algorytmiczny czy też jako wiedza rozproszona w sieci neuronowej. System
posiada bogaty zestaw funkcji objaśniających typu:
„jak?”, „dlaczego?” , „ co to jest?” oraz metafor
tłumaczących znaczenie reguł w procesie wnioskowania .
„ … charakteryzując
bardzo ogólnie ten pakiet , należy podkreślić jego następujące cechy:
- hybrydowy charakter
, zarówno w zakresie reprezentacji wiedzy , jak i sposób przetwarzania,
- system ekspertowy
realizuje architekturę tablicową , co umożliwia budowanie dużych , złożonych
tematycznie aplikacji ,
- zastosowano
mechanizm automatycznej i dynamicznej parametryzacji baz wiedzy,
- elastyczny i silnie
rozbudowany język reprezentacji wiedzy,
- system PC-Shell
udostępnia arkusze kalkulacyjne wraz z ich obsługą ,
- komunikacja
multimedialna (tekst, obraz, dźwięk, animacja), dostępna w trakcie konsultacji
(zapytań i generowanych konkluzji ) oraz częściowo podczas wyjaśnień ,
- duża otwartość
architektury”[Michalik i Twardowski , 1998, str.227]
Obszary zastosowania systemu PC-Shell:
- systemy doradcze i wspomagania decyzji
- dydaktyka(wyższe uczelnie , szkoły średnie)
System znalazł zastosowanie w takich dziedzinach ,jak:
-
analizy finansowe (ekonomiczne),
-
analizy wniosków kredytowych w bankach,
-
doradztwo podatkowe,
- dzięki
otwartej architekturze może być łatwo zintegrowany z Systemami Informowania
Kierownictwa, służąc Np. do automatycznej analizy wskaźników ekonomicznych,
-
technika, Np. do analizy danych pomiarowych,
-
medycyna, do diagnostyki i zaleceń terapeutycznych.
Za pomocą systemu PC-Shell możemy budować różnej wielkości aplikacje .
System
ekspertowy PC-Shell jest szczególnie predysponowany do rozwiązywania
następujących klas problemów :
-
analiza (interpretacja) danych
-
klasyfikacja,
-
diagnostyka,
-
finanse i bankowość,
-
inwestycje,
-
marketing,
-
technika,
-
dydaktyka,
-
komponent dla systemów SIK, analizatorów, arkuszy kalkulacyjnych,
-
komponent programów edukacyjnych.
System
PC-Shell wyposażony jest we własny język
reprezentacji wiedzy.
Język
ten dzięki przyjętym rozwiązaniom, w tym blokowej strukturze, cechują :
-
elastyczność,
-
czytelność,
-
pełne rozdzielenie wiedzy eksperckiej i procedur sterowania,
-
łatwość nauczania.
„Obecna wersja systemu wykorzystuje do rozwiązywania
problemów wnioskowanie wstecz
(ang. backward chaining). Zastosowana metoda
wnioskowania wykorzystuje m.in. mechanizm nawrotów, podobny jak w spotykanych
systemach prologowych.
Mechanizm uzgadniania jest bardzo elastyczny
i nie wymaga deklarowania typów wartości
dla uzgadnianych zmiennych. Wartościami
zmiennych mogą być liczby, symbole lub łańcuchy znakowe. Parametryzacja baz
wiedzy Począwszy od wersji 2.1 istotną cechą systemu
PC-Shell jest możliwość parametryzacji baz
wiedzy. Dzięki przyjętemu rozwiązaniu jest możliwa dynamiczna (automatyczna)
zmiana wartości wybranych parametrów w bazie
wiedzy, zmian tekstu źródłowego bazy.
Dobrym przykładem zastosowania
parametryzacji mogą być bazy wiedzy,
w których sprawdzane są wartości pewnych wskaźników
w odniesieniu do określonych wartości progowych.
Jednocześnie niektóre wartości progowe mogą
być zmienne, zależnie od kontekstu. Dla
przykładu, inaczej można oceniać pewne
wskaźniki finansowe firm należących do różnych branż. Podobne problemy
pojawiają się w innych dziedzinach, Np. w technice.
PC-Shell ułatwia to zadnie, pozwalając
również tworzyć kategorie parametrów.
Korzyści z zastosowania tej metody:
- może być z łatwością stosowana zarówno
przez inżyniera wiedzy jak i użytkownika końcowego,
- obniża koszty wdrożenia i utrzymywania
aplikacji opartej o system PC-Shell,
- pozwala zarówno na interakcyjna jak
równie. programowa (dynamiczna) zmianę wartości parametrów,
- umożliwia zmianę wartości wybranych
parametrów oraz grup ujętych w ramach tzw. kategorii, zarówno
programowo jak i interakcyjnie,
- zastosowane pojecie kategorii zmiennych
parametrycznych pozwala na lepsze dostosowanie aplikacji
do specyfiki niektórych klas problemów,
- narzędzia do parametryzacji pozwalają zwiększyć
czytelność oraz zmniejszyć bazy wiedzy niektórych
aplikacji SE.
Interfejs do baz danych System ekspertowy
PC-Shell jest wyposażony w interfejs do typowych
popularnych baz danych (Np.: dBase, Oracle,
itd.). Inżynier wiedzy ma do dyspozycji zestaw instrukcji do komunikacji z
bazami danych z użyciem poleceń języka SQL.
Otwartość systemu PC-Shell może być łatwo
integrowany z innymi aplikacjami.
W szczególności może być wykorzystany jako
moduł do analizy(interpretacji) danych
i wskaźników z systemów typu SIK, arkuszy
kalkulacyjnych lub innych systemów
pomiarowych. Ułatwiają to instrukcje
uruchamiania innych aplikacji, jak równie. możliwość wywołania systemu PC-Shell
przez inna aplikacje.
Wymiana danych może odbywać się przez plik
tekstowy (PC-Shell) ma rozbudowany interfejs
i instrukcje do obsługi tego typu plików)
oraz z użyciem mechanizmu DDE.
Ponadto istnieje możliwość integracji za pomocą
uruchamiania podstawowych procesów systemowych za pomocą funkcji DLL tychże systemów.
Dokumentacja systemu System jest dostarczany wraz z obszerna dokumentacja,
opisująca szczegółowo sposób obsługi systemu
oraz język reprezentacji wiedzy.
Umieszczono w niej wiele przykładów znacznie
ułatwiających (zwłaszcza w połączeniu z
demonstracyjnymi bazami wiedzy) nauczenie
się korzystania z systemu. Wymagania systemowe
SPRZĘT :
Komputer 486 lub nowszy, pamięć RAM 8MB lub więcej
OPROGRAMOWANIE :
Windows 9x/NT/2000 lub nowszy.
AITECH Artificial Intelligence Laboratory -
Sztuczna Inteligencja
http://aitech.pl Kreator PDF Utworzono 16
October, 2007, 21:14”
Subskrybuj:
Posty (Atom)