Inżynieria wiedzy. Katedra Wytrzymałości Materiałów i Metod Komputerowych Mechaniki 1. Podstawy programowania w języku CLIPS

Podobne dokumenty
Inżynieria wiedzy. Katedra Wytrzymałości Materiałów i Metod Komputerowych Mechaniki

Systemy ekspertowe. Wykład 5 Wprowadzenie do CLIPSa Programowanie systemów ekspertowych. Joanna Kołodziejczyk

Programowanie w CLIPS

Programowanie w CLIPS

Zastanawiałeś się może, dlaczego Twój współpracownik,

Programowanie w języku Python. Grażyna Koba

JESS FAKTY, REGUŁY. czyli faktami. Rodzaje faktów, oraz sposoby ich implementacji w programie. Szablony do tworzenia faktów.

Wprowadzenie do Prologa

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Przygotowanie własnej procedury... 3 Instrukcja msgbox wyświetlanie informacji w oknie... 6 Sposoby uruchamiania makra... 8

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Rys. 1 Budowa systemu ekspertowego

Skrypty powłoki Skrypty Najcz ciej u ywane polecenia w skryptach:

Utworzenie pliku. Dowiesz się:

Prolog (Pro-Logic) Programowanie w Logice. Dr inż. Piotr Urbanek

Celem ćwiczenia jest zapoznanie się z podstawowymi możliwościami języka Prolog w zakresie definiowania faktów i reguł oraz wykonywania zapytań.

I. Interfejs użytkownika.

Naukę zaczynamy od poznania interpretera. Interpreter uruchamiamy z konsoli poleceniem

Programowanie w języku C++ Grażyna Koba

System Informatyczny CELAB. Terminy, alarmy

Krótki kurs obsługi środowiska programistycznego Turbo Pascal z 12 Opracował Jan T. Biernat. Wstęp

Wykład A1. AutoCAD Dr inż. Jarosław Bydłosz

Wprowadzenie do Scilab: podstawy języka Scilab

Instrukcja redaktora strony

Java pierwszy program w Eclipse «Grzegorz Góralski strona własna

Badania operacyjne Instrukcja do c wiczen laboratoryjnych Rozwiązywanie problemów programowania liniowego z użyciem MS Excel + Solver

Pracownia internetowa w każdej szkole (edycja Jesień 2007)

CENTRALNA BAZA DANYCH AKT SĄDOWYCH CEL POWSTANIA I ZASADY FUNKCJONOWANIA

1. Wybierz polecenie rysowania linii, np. poprzez kliknięcie ikony W wierszu poleceń pojawi się pytanie o punkt początkowy rysowanej linii:

Rozdział 5. Administracja kontami użytkowników

Packet Tracer - Nawigacja w IOS

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

Lokalizacja jest to położenie geograficzne zajmowane przez aparat. Miejsce, w którym zainstalowane jest to urządzenie.

Rozdział II. Praca z systemem operacyjnym

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane

PRZEWODNIK PO PRZEDMIOCIE

Główne elementy zestawu komputerowego

INSTRUKCJA INSTALACJI I URUCHOMIENIA PROGRAMÓW FINKA DOS W SYSTEMACH 64 bit

Przedmiot: Informatyka w inżynierii produkcji Forma: Laboratorium Temat: Zadanie 5. MessageBox, InputBox, instrukcja Select Case i instrukcje pętli.

Dla kas Nano E w wersjach od 3.02 oraz Sento Lan E we wszystkich wersjach.

UONET+ moduł Dziennik. Rejestrowanie frekwencji uczniów na lekcjach w widoku Lekcja

Rys.1. Technika zestawiania części za pomocą polecenia WSTAWIAJĄCE (insert)

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

Wykład A1. AutoCAD. Jarosław Bydłosz Katedra Geomatyki

Podstawy Programowania Podstawowa składnia języka C++

Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Projekt 4: Programowanie w logice

Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje

1 Podstawy c++ w pigułce.

Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS cz. 1

Programowanie deklaratywne

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Języki programowania deklaratywnego

INSTRUKCJA obsługi certyfikatów

Klawiatura i7-k1200 do sterowania rejestratorami NVR/DVR oraz kamerami IP PTZ

Przykład 1 -->s="hello World!" s = Hello World! -->disp(s) Hello World!

Rejestracja faktury VAT. Instrukcja stanowiskowa

Menu główne FUNKCJE SERWISOWE

Języki programowania zasady ich tworzenia

Skanowanie OCR w aplikacji Kancelaria Komornika. Instrukcja dla użytkownika

PODSTAWY SZTUCZNEJ INTELIGENCJI

Makropolecenia w PowerPoint Spis treści

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

Instrukcja użytkowa programu INTERNET LAB-BIT

Podstawy programowania skrót z wykładów:

MATERIAŁY - udostępnianie materiałów dydaktycznych w sieci SGH

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania KOMPUTEROWE SYSTEMY STEROWANIA (KSS)

Ramzes Płace. Dodanie nowego składnika do listy płac. opis funkcji. Warszawa, kwiecień 2017

AKADEMIA MORSKA W SZCZECINIE WI-ET / IIT / ZTT. Instrukcja do zajęc laboratoryjnych nr 1 AUTOMATYZACJA I ROBOTYZACJA PROCESÓW PRODUKCYJNYCH

Instalacja

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r.

Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS cz. 1

Wstęp do informatyki- wykład 7

Maskowanie i selekcja

Dlaczego stosujemy edytory tekstu?

Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści

Autor: dr inż. Katarzyna Rudnik

Instrukcja uŝytkowania programu

5.1. POSMOBILE POSMOBILE. INSTALACJA ORAZ URUCHOMIENIE USŁUGI

EKSPLOATACJA SYSTEMÓW TECHNICZNYCH - LAB. Wprowadzenie do zajęć

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

5. Administracja kontami uŝytkowników

Laboratorium - Harmonogramowanie zadania przy użyciu GUI i polecenia AT w systemie Windows 7

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA

Wykład 8: klasy cz. 4

I. WSTĘP. Przykład 1. Przykład 2. Programowanie czyli tworzenie programów komputerowych (aplikacji komputerowych)

INSTRUKCJE WIKAMP Dotyczy wersji systemu z dnia

Wikispaces materiały szkoleniowe

INSTRUKCJA WYBORU PRZEDMIOTÓW

PROGRAM DO PLANOWANIA ZAKUPÓW wg CPV/CPC

Formuły formułom funkcji adresowania odwoływania nazwy Funkcja SUMA argumentami SUMA

Zestawienia osobowe - kreator

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

SPIS TREŚCI: 1. INSTALACJA SYSTEMU SIMPLE.ERP LOGOWANIE DO SYSTEMU ZMIANA HASŁA PLANOWANIE INFORMACJE DODATKOWE...

Fragment tekstu zakończony twardym enterem, traktowany przez edytor tekstu jako jedna nierozerwalna całość.

LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab

Kadry Optivum, Płace Optivum

Transkrypt:

Katedra Wytrzymałości Materiałów i Metod Komputerowych Mechaniki www.kwmimkm.polsl.pl Wydział Mechaniczny Technologiczny Politechnika Śląska Inżynieria wiedzy Instrukcja do zajęć laboratoryjnych 1. Podstawy programowania w języku CLIPS Opracował: mgr inż. Jacek Ptaszny jacek.ptaszny@polsl.pl Gliwice 2008

Inżynieria wiedzy. Podstawy programowania w języku CLIPS 1 1 Cel ćwiczenia Wykonując ćwiczenie zapoznasz się z podstawowymi informacjami dotyczącymi języka CLIPS oraz nauczysz się podstaw programowania przy użyciu tego języka. 2 Zanim przejdziemy dalej Przypomnij sobie lub znajdź w literaturze lub innych dostępnych źródłach, odpowiedzi na następujące pytania: Co to są systemy ekspertowe? Jakie narzędzia służą do tworzenia systemów ekspertowych? 3 Kilka informacji na temat języka CLIPS CLIPS (skrót od C Language Integrated Production System) jest językiem opracowanym przez Software Technology Branch (STB), NASA/Lyndon B. Johnson Space Center, do celów tworzenia systemów ekspertowych. Pierwsza wersja języka ukazała się w 1986 roku i od tego czasu CLIPS jest ciągle udoskonalany. Język jest używany przez tysiące specjalistów z różnych dziedzin, na całym świecie. CLIPS do reprezentacji wiedzy wykorzystuje następujące elementy: fakty i reguły - elementy programowania deklaratywnego, funkcje - elementy programowania proceduralnego, obiekty - elementy programowanie obiektowego. CLIPS jest oprogramowaniem typu Public Domain - można go używać nieodpłatnie. Więcej informacji dotyczących tego języka znajdziesz na stronie internetowej http://clipsrules.sourceforge.net/. 4 Zaczynamy! W rozdziale tym zostaną przedstawione czynności, które będziesz wykonywał(a), wraz z informacjami pomocniczymi oraz opisem skutków wykonanych działań. Czytaj uważnie, wykonuj czynności bez pośpiechu a następnie porównuj dokładnie ich skutki z opisem. Zwracaj uwagę na składnię poleceń. Do dzieła! 4.1 Uruchom program CLIPS Zlokalizuj i uruchom plik CLIPSWin.exe. Na ekranie monitora pojawi się okno programu:

Inżynieria wiedzy. Podstawy programowania w języku CLIPS 2 W oknie Dialog window pojawi się linia poleceń wraz ze znakiem zachęty: CLIPS> Kolejne czynności będą polegały na wpisywanu poleceń zrozumiałych dla języka CLIPS. Wpisuj tylko tekst poprzedzony znakiem zachęty widocznym powyżej (po wpisaniu tekstu naciskaj klawisz Enter). Linie poniżej to odpowiedź programu na wydane przez Ciebie polecenia. Taki tryb wykonywania poleceń przez program CLIPS nazywany jest bezpośrednim (ang. top level). 4.2 Wprowadź pierwszy fakt Do wprowadzania faktów służy polecenie assert. W oknie poleceń wpisz: CLIPS> (assert (lubi Tomek mechanike)) <Fact-0> Zdefiniowałeś(aś) fakt składający się z trzech atomów (wyrazów). Atom jest ciągiem znaków, który nie podlega podziałowi na mniejsze jednostki leksykalne. Wyróżnia się trzy typy atomów: 1. symboliczne - zaczynające się od litery (mogą dalej zawierać cyfry, myślnik lub znak podkreślenia), 2. literalne - zawierające dowolne znaki, zamknięte w cudzysłowie, 3. numeryczne - liczby zmiennoprzecinkowe. CLIPS umieszcza wprowadzane fakty na liście i przypisuje każdemu z nich kolejny numer. CLIPS poinformował Cię, że wprowadzonemu faktowi został przyporządkowany numer 0. Pamiętaj, że w CLIPSie wszystkie polecenia należy zamykać w nawiasie okrągłym. 4.3 Wprowadź jeszcze raz ten sam fakt CLIPS> (assert (lubi Tomek mechanike)) FALSE Pojedynczy fakt może być zdefiniowany tylko raz. Stąd odpowiedź programu: FALSE. 4.4 Wprowadź grupę faktów Użyj poleceń deffacts oraz reset: CLIPS> (deffacts lubia(lubi Ania matematyke) (lubi Rafal mechanike) (lubi Kasia matematyke)) CLIPS> (reset) Za pomocą polecenia deffacts można wprowadzać grupę faktów o zadanej nazwie (w tym przypadku lubia ). Do wprowadzenia na listę faktów zdefiniowanych w ten sposób służy polecenie reset.

Inżynieria wiedzy. Podstawy programowania w języku CLIPS 3 Polecenie reset najpierw usuwa z listy wszystkie istniejące fakty, ustawia fakt początkowy initial-fact jako pierwszy (o numerze 0) i dopiero po tych operacjach umieszcza na liście kolejno zdefiniowane fakty. 4.5 Wyświetl listę faktów Użyj polecenia facts: CLIPS> (facts) f-0 (initial-fact) f-1 (lubi Ania matematyke) f-2 (lubi Rafal mechanike) f-3 (lubi Kasia matematyke) For a total of 4 facts. Polecenie facts wyświetla indeksy (numery) oraz fakty do których są one przypisane. Listę faktów można na bieżąco śledzić uaktywniając okno Facts, poprzez wybór opcji Window -> 1 Facts Window, w menu górnym. 4.6 Wprowadź po raz trzeci pierwszy z poznanych faktów Ponieważ fakt wyrażający że Tomek lubi mechanikę został usunięty z listy faktów przez operację reset, należy go wprowadzić jeszcze raz. CLIPS> (assert (lubi Tomek mechanike)) <Fact-4> 4.7 Zdefiniuj pierwszą regułę Użyj polecenia defrule: CLIPS> (defrule lubia-mechanike (lubi Tomek mechanike) (lubi Rafal mechanike) => (assert (lubia-mechanike chlopcy))) Definicja reguły ma następującą składnię: (defrule nazwa_reguły (Warunek 1)...(Warunek n) => (Polecenie 1)...(Polecenie m)) Regułę należy rozumieć następująco: jeśli są spełnione (jednocześnie) warunki Warunek 1... Warunek n, wykonaj polecenia Polecenie 1... Polecenie m. Część reguły znajdującą się po lewej stronie znaku => określa się skrótem LHS (ang. left hand side), natomiast część występującą po prawej stronie znaku określa się skrótem RHS (ang. right hand side). Reguła o danej nazwie może być definiowana wiele razy. Za każdym razem stara definicja jest wtedy zastępowana nową.

Inżynieria wiedzy. Podstawy programowania w języku CLIPS 4 4.8 Wyswietl definicję reguły Użyj polecenia ppdefrule: CLIPS> (ppdefrule lubia-mechanike) (defrule::main lubia-mechanike (lubi Tomek mechanike) (lubi Rafal mechanike) => (assert (lubia-mechanike chlopcy))) 4.9 Zdefiniuj drugą regułę Zdefiniuj regułę o nazwie lubia-matematyke, gdzie w LHS wystąpią fakty dotyczące dziewczyn. Niech w RHS zostanie wprowadzony fakt lubia-metamatyke dziewczyny. Wzoruj się na przykładzie z punktu 4.7. 4.10 Wyświetl listę reguł Użyj polecenia rules: CLIPS> (rules) lubia-mechanike lubia-matematyke For a total of 2 defrules. 4.11 Wyświetl agendę CLIPS> (agenda) 0 lubia-matematyke f-3, f-1 0 lubia-mechanike f-4, f-2 For a total of 2 activations. Jak się pewnie domyślasz, agenda to lista aktywacji reguł, których LHS są spełnione przez istniejące fakty. Agendę można na bieżąco śledzić uaktywniając okno Agenda, poprzez wybór opcji Window -> 2 Agenda Window, w menu głównym. Zauważ, że CLIPS wypisał reguły oraz fakty w kolejności od końca. CLIPS wykorzystuje zasadę odkładania elementów na stosy, tzn. elementy wprowadzane jako ostatnie są przetwarzane jako pierwsze. Dotyczy to zarówno faktów jak i reguł. 4.12 Uruchom procedurę wnioskującą......za pomocą polecenia run oraz sprawdź listę faktów:

Inżynieria wiedzy. Podstawy programowania w języku CLIPS 5 CLIPS> (run) CLIPS> (facts) f-0 (initial-fact) f-1 (lubi Ania matematyke) f-2 (lubi Rafal mechanike) f-3 (lubi Kasia matematyke) f-4 (lubi Tomek mechanike) f-5 (lubia-matematyke dziewczyny) f-6 (lubia-mechanike chlopcy) For a total of 7 facts. Reguły mogą być uruchamiane przy wykorzystaniu tych samych faktów tylko raz! Aby ponownie uruchomić zdefiniowane reguły należy usunąć wszystkie fakty i zdefiniować je powtórnie. W przeciwnym wypadku uruchomienie reguł nie przyniesie żadnego skutku. Sprawdź! 4.13 Usuń fakty 5. i 6. Użyj polecenia retract: CLIPS> (retract 5 6) Pojedyncze fakty usuwa się za pomocą polecenia retract. Argumentem polecenia jest lista indeksów faktów przeznaczonych do usunięcia. Aby usunąć fakty za pomocą polecenia retract musisz znać ich indeksy. Nie można usuwać faktów posługując się ich treścią. 4.14 Sprawdź, kto lubi matematykę Zdefiniuj regułę, która zidentyfikuje indeksy odpowiednich faktów, wyświetli informację oraz usunie użyte fakty z listy: CLIPS> (defrule kto-lubi-matematyke?x<-(lubi?imie matematyke) => (printout t?imie lubi matematyke. crlf) (retract?x)) CLIPS> (run) Kasia lubi matematyke. Ania lubi matematyke. CLIPS> (facts) (f-0) initial-fact (f-2) lubi Rafal mechanike (f-4) lubi Tomek mechanike For a total of 3 facts. Znak zapytania przed wyrazem oznacza, że wprowadzana jest zmienna, np.?x. Powyższa reguła jest uruchamiana dla wszystkich faktów, których pierwszy atom to wyraz lubi, drugi atom jest dowolny, natomiast trzeci atom to wyraz matematykę. Dla kolejnych faktów zmiennej?imie przypisywane są odpowiednie atomy. Zmienna nie może odnosić sie do pierwszego z atomów faktu.

Inżynieria wiedzy. Podstawy programowania w języku CLIPS 6 Operator <- przypisuje zmiennej?x indeksy faktów spełniających LHS definiowanej reguły. Polecenie printout służy do wyświetlania komunikatów. Dalej następuje lista argumentów. Pierwszy z nich określa urządzenie do którego kierowany jest komunikat (t oznacza ekran monitora). Kolejne argumenty definiują komunikat. Wyświetlone mogą być zmienne (np.?imie) lub ciągi znaków zamknięte w znak cudzysłowu. Ostatni argument, crlf, oznacza, że po wypisaniu komentarza kursor ma przejść do nowej linii. 4.15 Sprawdź również, kto lubi mechanikę Wzorując się na regule przedstawionej w poprzednim poleceniu, utwórz analogiczną regułę dotyczącą osób, które lubią mechanikę. Uruchom regułę i sprawdź wynik jej działania. 4.16 Usuń reguły Użyj polecenia clear. Następnie wyświetl fakty i reguły. CLIPS> (clear) CLIPS> (facts) CLIPS> (rules) Polecenie clear usuwa wszystkie reguły oraz wszystkie fakty, wraz z faktem initial-fact. 4.17 Wczytaj fakt z klawiatury Wykorzystaj polecenie read: CLIPS> (assert (student (read) (read))) Jan Kowalski <Fact-0> CLIPS>(facts) f-0 student Jan Kowalski For a total of 1 fact. Polecenie read wczytuje każdorazowo pojedynczy atom faktu z urządzenia zewnętrznego. Urządzeniem domyślnym jest klawiatura. Nie wolno wczytywać pierwszego atomu występującego w fakcie. 4.18 Zakończ pracę z programem CLIPS CLIPS> (exit)

Inżynieria wiedzy. Podstawy programowania w języku CLIPS 7 5 Podsumowanie Wykonując wszystkie powyższe polecenia zapoznałeś(aś) się z podstawowymi zasadami programowania w języku CLIPS. Nauczyłeś(aś) się jak: definiować, przeglądać i usuwać fakty, definiować, przeglądać i usuwać reguły, uruchamiać procedurę wnioskującą, przeszukiwać listę faktów, wyświetlać komunikaty, wczytywać fakty z klawiatury. Literatura [1] Cholewa W., Pedrycz W., Systemy doradcze. Wydawnictwo Politechniki Śląskiej, Gliwice 1987. [2] Giarratano J. C., CLIPS User s Guide, http://clipsrules.sourceforge.net/. [3] Kendal S., Creen M., An Introduction to Knowledge Engineering. Springer-Verlag, London 2007. [4] Mulawka J. J., Systemy ekspertowe. WNT, Warszawa 1996. [5] Rutkowski L., Metody i techniki sztucznej inteligencji. WNT, Warszawa 2005. [6] Russel S., Norvig P., Artificial intelligence: A Modern Approach. Prentice Hall, 2002.