Zapis reguł dokładnych przy użyciu języka CLIPS, Robotyka, Metody sztucznej inteligencji


Katedra Podstaw Konstrukcji Maszyn

Rok akademicki 1998/99

Metody i Techniki Sztucznej Inteligencji

Laboratorium nr 2

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

  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ń.

  1. 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:

Programowanie w CLPISie związane jest z następującymi pojęciami: stwierdzenie, zmienna, reguła, funkcja, mechanizm wnioskowania.

Podstawowymi elementami CLIPSa są:

STWIERDZENIA

Mechanizm wnioskowania, na podstawie listy stwierdzeń, decyduje o tym, które reguły 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ę stwierdzeń i usuwanie z listy jest mozliwe 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)

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łę postaci „IF x THEN y” 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 mozliwe za pomocą wiąże się z 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:

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:

(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.

  1. 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

  1. Uruchomić interpreter Clips (wg wskazań prowadzącego)

  1. Załadować plik zawierający przykładowy system doradczy (wskazany przez prowadzącego) do systemu CLIPS (polecenie Load Constructs z menu File)

  1. Załadować stwierdzenie inicjalizujące (polecenie Reset z menu Execution)

  1. Uruchomić proces wnioskowania (polecenie Run z menu Execution)

  1. Prześledzić działanie uruchomionego systemu doradczego oraz przetestować zapisane w nim reguły

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

  1. Sprawdzić działanie zmodyfikowanego systemu.

  1. Uruchomić edytor (wg wskazań prowadzącego)

  1. Zapisać przygotowane wcześniej reguły w pliku o odpowiednim formacie.

  1. Załadować plik w interpreterze CLIPSa (polecenie Load Construct z menu File)

  1. Uruchomić przygotowany system (polecenie Run z menu Execution)

  1. Obserwacja działania systemu.

Opis sposobu zaliczenia ćwiczenia

Zaliczenie z ćwiczenia uzyskuje się na podstawie demonstracji działającego, napisanego przez poszczególne sekcje systemu w języku CLIPS.

  1. Literatura

  1. Cholewa W., Kaźmierczak J.: Diagnostyka techniczna maszyn. Przetwarzanie cech sygnałów. Skrypt Politechniki Śląskiej nr 1693,Gliwice 1992.

  1. Cholewa W., Pedrycz W.: Systemy doradcze, Skrypt Politechniki Śląskiej nr 1447.

  1. Mulawka J.J.: Systemy ekspertowe, WNT Warszawa 1996.

1



Wyszukiwarka

Podobne podstrony:
Zapis reguł przybliżonych przy użyciu języka CLIPS
Indukcja reguł metodą generowania pokryć, Robotyka, Metody sztucznej inteligencji
Indukcja drzew decyzyjnych, Robotyka, Metody sztucznej inteligencji
sztuczna--, Robotyka, Metody sztucznej inteligencji
Automatyczne dowodzenie twierdzeń, Robotyka, Metody sztucznej inteligencji
streszczenie, Robotyka, Metody sztucznej inteligencji, Wykład
sztuczna---, Robotyka, Metody sztucznej inteligencji
msi2, Automatyka i Robotyka, Semestr 4, Metody sztucznej inteligencji
sciaga msi, Automatyka i Robotyka, Semestr 4, Metody sztucznej inteligencji
msi ściąga test, Automatyka i Robotyka, Semestr 4, Metody sztucznej inteligencji
Sprawozdanie Zbiory Rozmyte Język R MSI, Automatyka i Robotyka, Semestr 4, Metody sztucznej intelige
Opracowanie na kolokwium, Automatyka i Robotyka, Semestr 4, Metody sztucznej inteligencji
ciąga ze sztucznej inteligencji, Automatyka i Robotyka, Semestr 4, Metody sztucznej inteligencji
Micha, Automatyka i Robotyka, Semestr 4, Metody sztucznej inteligencji
Google wykupuje kolejne firmy zajmujące się robotyką oraz sztuczną inteligencją, SZTUCZNA INTELIGENC
Projektowanie gier przy uzyciu srodowiska Unity i jezyka C Od pomyslu do gotowej gry Wydanie II prog
Miernik ten pozwala na pomiar o dokładności0Hz przy częstotliwości 5MHz
Ćw 1 Pomiar strumienia objętości i masy płynu przy użyciu rurek spiętrzających
Wykonywanie robót ziemnych przy użyciu koparek

więcej podobnych podstron