lab2 7 id 259265 Nieznany

background image

Katedra

Podstaw

Konstrukcji

Maszyn

Wydział

Mechaniczny

Technologiczny

Politechnika

Śląska





























ul. Konarskiego 18a

44-100 Gliwice

tel. 237 1467
fax 237 1360

http://kpkm.polsl.pl











Metody Sztucznej
Inteligencji





Rok akademicki 20

10/11






Instrukcja do ćwiczeń laboratoryjnych

Ćwiczenie 2





Temat

Zapis reguł dokładnych
przy użyciu języka CLIPS





Opracowała: dr inż. A. Timofiejczuk







background image

1. Cel ćwiczenia

Celem ćwiczenia jest zapoznanie się z systemem CLIPS oraz nabycie umiejętności
budowania dokładnych reguł wnioskowania i konstruowania systemów doradczych.
Język CLIPS został opracowany przez NASA/Jonson Space Center w 1984 roku i znalazł
zastosowanie w budowie systemów ekspertowych, rozpoznawaniu obrazów oraz rozumieniu
scen. CLIPS jest opracowany w języku programowania C a jego nazwa pochodzi od skrótu C
Language Integrated Production
System. Mechanizmy wnioskowania języka CLIPS realizują
wnioskowanie w przód. Program napisany w CLIPSie jest bazą wiedzy złożoną z reguł i
stwierdzeń.

2. Wprowadzenie


Wybrane elementy języka Clips

CLIPS jest językiem przeznaczonym do tworzenia aplikacji nazywanych systemami

doradczymi. Wyróżnia się dwa sposoby reprezentacji wiedzy w CLIPSie:
− reguły,
− funkcje.

Programowanie w CLPISie związane jest z następującymi pojęciami: stwierdzenie,

zmienna, reguła, funkcja, mechanizm wnioskowania.
Podstawowymi elementami CLIPSa są:
− lista stwierdzeń (w dokumentacji stwierdzenia nazwane są faktami ang. fact)

− baza wiedzy
− mechanizm wnioskowania.

STWIERDZENIA
Mechanizm wnioskowania, na podstawie listy stwierdzeń, decyduje o tym, które reguły są
czynne i kiedy powinny być wywołane. Regułą czynną jest reguła, której przesłanka jest
spełniona.

Stwierdzenia decydują o tym, które reguły są regułami czynnymi. Najważniejszym

stwierdzeniem jest stwierdzenie initial-fact, bez którego proces wnioskowania nie może
zostać uruchomiony. Stwierdzenie to może być wprowadzane na listę na dwa sposoby
pokazane w poniższej tabeli.

Program napisany języku CLIPS nie może zostać wykonany bez listy stwierdzeń.

Wprowadzenie ich na listę i usuwanie z listy jest możliwe za pomocą następujących poleceń:


Polecenie Działanie Przykład Uwagi
assert

wprowadzanie
stwierdzenia na listę

(assert(fakt))

(assert (initial-
fact))
lub (reset)



stwierdzenie inicjalizujące jest
wymagane w większości
systemów doradczych, zwykle
pierwsza reguła systemu
sprawdza istnienie tego
stwierdzenia

deffacts

wprowadzenie bloku
stwierdzeń na listę

(deffact blok
(fakt1)
(fakt2))

wprowadzanie bloku stwierdzeń
na listę odbywa się wyłącznie za
pomocą polecenia (reset)

- 2/6 -

background image

retract

usuwanie pojedynczego
stwierdzenia z listy

(retract 1)

undeffacts

usuwanie bloku
stwierdzeń z listy

(undeffacts
blok)

reset

usunięcie wszystkich
stwierdzeń z listy i
wprowadzenie
stwierdzenia
inicjalizującego

(reset)

polecenie powoduje
wprowadzenie na listę stwierdzeń
stwierdzenia inicjalizującego i
zdefiniowanie bloku stwierdzeń

clear

usunięcie wszystkich
stwierdzeń i reguł z listy

(clear)

facts

wyświetlenie stwierdzeń
o indeksie większym i
równym polu „index”

(facts 2)

pole index=2



REGUŁY
Reguły są jedną z najczęściej stosowanych reprezentacji wiedzy w systemach doradczych.
Ogólną postać reguły można zapisać następująco:

Reguła: if

PRZESŁANKA

then

KONKLUZJA

Przesłanka może zawierać pewną liczbę stwierdzeń połączonych funktorami

logicznymi. Jeżeli wszystkie stwierdzeniach i konkluzja występujące w regule są dokładne
(nie przybliżone lub rozmyte) to reguła jest regułą dokładną.

Ze względu na sposób uzyskiwania ostatecznej konkluzji w procesie wnioskowania

rozróżnia się dwa rodzaje reguł:
− reguły proste, których nie można rozłożyć na reguły prostsze,
− reguły złożone, które są odpowiednikiem zastosowania kilku reguł prostych

Regułę postaci „IF x THEN y” (nazwa reguły R1) w CLIPSie zapisuje się

następująco:


(defrule R1 „Reguła 1” (x) => (assert (y))


Definiowanie reguł, ich przeglądanie i usuwanie (w CLIPSie) jest możliwe za pomocą
następujących poleceń:

Polecenie Działanie Przykład Uwagi
defrule

definicja reguły i wprowadzenie
jej na listę

(defrule R1
(initial-fact)
=>
(assert(start))

ppdefrule

wyświetlenie treści reguły

(ppdefrule R1)

list-defrules

wyświetlenie listy reguł

(list-defrules)

undefrule

usunięcie reguły z listy reguł

(undefrule R1)



Reguła składa się z dwóch części:

- 3/6 -

background image

− przesłanki, po lewej stronie znaku => nazywanej (LHS),

− konkluzji, po prawej stronie znaku => nazywanej (RHS).
Stwierdzenie występujące w części LHS powinno być zdefiniowane przed uruchomieniem
reguły. Brak odpowiednich stwierdzeń na liście powoduje wystąpienie błędu.
Stwierdzenie występujące w części LHS mogą być połączone operatorami logicznymi AND,
OR. Stosowany jest zapis, w którym operator poprzedza argumenty.

(defrule R1
(or (fakt1) (fakt2))
=>
(assert (fakt3)))


Sprawdzanie wartości zmiennej za pomocą stwierdzenia można zrealizować w następujący
sposób:
Reguła sprawdza czy zmienna „?p” ma wartość „4” (zapis ?p oznacza zmienną -patrz punkt
ZMIENNE).

(defrule sprawdzanie
(liczba ?p=4)
=>
(print t „Zmienna o nazwie - p ma wartość 4” crlf))


gdzie zapis (liczba ?p=4) oznacza stwierdzenie o nazwie „liczba”, którego wartość logiczna
jest sprawdzana w regule. Stwierdzenie „liczba„ ma postać ”p równa się 4”. Jeżeli
stwierdzenie to jest prawdziwe na ekranie wypisywany jest komunikat: „Zmienna o nazwie -
p ma wartość 4”.


Usuwanie stwierdzeń z listy stwierdzeń za pomocą reguły może odbywać się tylko

poprzez usuwanie zmiennych, do których wcześniej przypisano te stwierdzenia:

(defrule usuwanie
?x <- (fakt)
=>
(retract ?x))

gdzie ?x <- (fakt) oznacza przypisanie stwierdzenia fakt zmiennej ?x.

ZMIENNE

Nazwa zmiennej w języku CLIPS rozpoczyna się od znaku zapytania i zapisuje się ją

w postaci: ?x, ?y, ?wynik.
Do nadawania wartości zmiennej służy funkcja „bind”, która ma następującą postać:

(bind arg1 arg2)


Funkcje operatorowe, takie jak *,/,+,-, mają postać:

(* arg1 arg2)


Przykłady wykorzystania zmiennych:

- 4/6 -

background image

(defurle start

; początek definicji reguły o nazwie start

(initial-fact)

; sprawdzanie istnienia stwierdzenia
; inicjalizującego

=>

; symbol słowa „then”

(printout t „Podaj liczbę: „ crlf)

;wypisanie na ekranie komunikatu „Podaj
liczbę”;

(assert (liczba (read ))))

; definicja stwierdzenia „liczba”

(defrule wynik

; definicja reguły „wynik”

?x <- (liczba ?p)

; przypisanie zmiennej ?x stwierdzenia „liczba”

=>
(bind ?wynik (* ?p 2))


; przypisanie zmiennej „?wynik” wartości
; zmiennej „?p” pomnożonej przez 2

(printout t ?p „*p 2 = „ ?wynik crlf)

; wypisanie na ekranie wyniku mnożenia

(retract ?x)

; usunięcie stwierdzenia „liczba”, za pomocą
; zmiennej „?x”

(assert (wynik ?wynik)))

; wprowadzenie na listę stwierdzeń nowego
; stwierdzenia o nazwie „wynik” i wartości
równej
; wynikowi mnożenia



Opis używanego oprogramowania

Ćwiczenie jest realizowane przy zastosowaniu kompilatora języka CLIPS ver. 6.0
działającego w środowisku Windows NT.

3. Sposób przeprowadzenia ćwiczenia

Przygotowanie do ćwiczenia

Ćwiczenie obejmuje następujące pojęcia: reguła, stwierdzenie (fakt), system doradczy,
mechanizm wnioskowania, dialog z użytkownikiem.
W ramach przygotowania do ćwiczenia należy zapoznać się z podstawowymi pojęciami
języka CLIPS i sposobem reprezentacji wiedzy za pomocą reguł dokładnych oraz
przygotować zapis określonego wcześniej (przez prowadzącego) tematu w postaci reguł
dokładnych.

Sposób przeprowadzenia ćwiczenia
1. Uruchomić środowisko MS Windows
2. Uruchomić interpreter Clips (wg wskazań prowadzącego)
3. Załadować plik zawierający przykładowy system doradczy (wskazany przez

prowadzącego) do systemu CLIPS (polecenie Load Constructs z menu File)

4. Załadować stwierdzenie inicjalizujące (polecenie Reset z menu Execution)
5. Uruchomić proces wnioskowania (polecenie Run z menu Execution)
6. Prześledzić działanie uruchomionego systemu doradczego oraz przetestować zapisane w

nim reguły

7. Zmodyfikować zapisany system doradczy wprowadzając dodatkowe reguły sprzeczne oraz

nadmiarowe

8. Sprawdzić działanie zmodyfikowanego systemu.
9. Uruchomić edytor (wg wskazań prowadzącego)
10.Zapisać przygotowane wcześniej reguły w pliku o odpowiednim formacie.

- 5/6 -

background image

11.Załadować plik w interpreterze CLIPSa (polecenie Load Construct z menu File)
12.Uruchomić przygotowany system (polecenie Run z menu Execution)
13.Obserwacja działania systemu.

4. Literatura

[1] Cholewa W., Kaźmierczak J.: Diagnostyka techniczna maszyn. Przetwarzanie cech

sygnałów. Skrypt Politechniki Śląskiej nr 1693,Gliwice 1992.

[2] Cholewa W., Pedrycz W.: Systemy doradcze, Skrypt Politechniki Śląskiej nr 1447.
[3] Mulawka J.J.: Systemy ekspertowe, WNT Warszawa 1996.

- 6/6 -


Document Outline


Wyszukiwarka

Podobne podstrony:
bd lab2 id 81995 Nieznany (2)
JPPO Lab2 id 228821 Nieznany
AKiSO lab2 id 53766 Nieznany
lab2 9 id 259271 Nieznany
bsi lab2 id 93526 Nieznany
PAiRAII Instr 2007 lab2 id 3455 Nieznany
Protokol Siko Lab2 id 402771 Nieznany
lab2(1) 4 id 259343 Nieznany
lab2 8 id 259268 Nieznany
Instrukcja Lab2 id 216873 Nieznany
BHP i lab2 id 84433 Nieznany (2)
kap lab2 id 231164 Nieznany
lab2 1 id 259287 Nieznany
lab2 5 id 259259 Nieznany
dsp lab2 id 144059 Nieznany
lab2(1) 5 id 259344 Nieznany
lab2(2) id 259347 Nieznany

więcej podobnych podstron