CLIPS Język programowania obiektowego (C Language Integrated Production System) Przygotował: Damian Kołaczkowski.

Slides:



Advertisements
Podobne prezentacje
Tablice 1. Deklaracja tablicy
Advertisements

27/09/ Języki programowania 1 Piotr Górczyński Operatory.
Język C/C++ Funkcje.
Programowanie obiektowe
REGUŁOWO-MODELOWE SKORUPOWE SYSTEMY EKSPERTOWE Część 1
Wprowadzenie do języka skryptowego PHP
Wprowadzenie do C++ Zajęcia 2.
Języki programowania C++
PROGRAMOWANIE STRUKTURALNE
WYKŁAD 2 SYSTEMY EKSPERTOWE cz.2.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 7: Procedury i funkcje © Jan Kaczmarek.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 8: Wykorzystanie procedur i funkcji © Jan Kaczmarek.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 4: Wyrażenia i operatory. Podstawowe instrukcje języka.
(c) 1999, Instytut Informatyki Politechniki Poznańskiej Rozdział 2: Język bazy danych - SQL Proste zapytania.
Kurs Pascala – spis treści
PODSTAWY JĘZYKA PHP 1. czym jest 2. składnia 3. wersje 4. bazy danych
Typy standardowe Typ Boolean Typ Integer Typ Float Typ Character Operacje wejścia-wyjścia.
Tablice jednowymiarowe 1
Wyrażenia Wyrażenie w Fortranie jest poprawną syntaktycznie kombinacją zmiennych, stałych, operatorów i funkcji. Wyrażenia są jednozdaniowymi przepisami.
PASCAL Dr Anna Kwiatkowska.
Tablice tablica jest sekwencją elementów tego samego typu (prostego lub obiektowego) w Javie tablice są obiektami, a zmienne tablicowe przechowują referencję
Wprowadzenie do programowania w języku Turbo Pascal
Matematyka wokół nas Równania i nierówności
Język PHP Wprowadzenie.
Structured Query Language
Programowanie w języku Fortran 95
AWK Zastosowania Informatyki Wykład 1 Copyright, 2003 © Adam Czajka.
Podstawy programowania
Podstawy informatyki (4)
Podstawy programowania
Informatyka I Wykład 5 OPERATORY Priorytety i kolejność obliczeń
Podstawy programowania
© A. Jędryczkowski – 2006 r. © A. Jędryczkowski – 2006 r.
Wyrażenia w Turbo Pascalu.
PL/SQL Zajęcia nr II PL/SQL(2) M. Rakowski - WSISiZ.
JAVA c.d.. Instrukcji wyboru SWITCH używamy, jeśli chcemy w zależności od wartości pewnego wyrażenia wykonać jeden z kilku fragmentów kodu. Jest to w.
Programowanie obiektowe III rok EiT
Rozwiązanie zadań do zaliczenia I0G1S4 // indeks
Podstawy informatyki 2013/2014
Przekazywanie parametrów do funkcji oraz zmienne globalne i lokalne
Projektowanie stron WWW
Podstawy języka Instrukcje - wprowadzenie
PRZYGOTOWALI Bartosz Pawlik Daniel Sawa Marcin Turbiński.
WYKŁAD 3 Temat: Arytmetyka binarna 1. Arytmetyka binarna 1.1. Nadmiar
Zmienne i typy danych w C#
Instrukcje wyboru.
PHP Instrukcja warunkowa if Damian Urbańczyk. Warunek? Instrukcję warunkową wykorzystujemy wtedy, gdy chcemy sprawdzić pewien fakt, który może być prawdziwy.
Komendy SQL do pracy z danymi
Zasady arytmetyki dwójkowej
Podsumowanie wiedzy MPDI2 sem.3 INFORMATYKA. tworzenie nowego pliku i katalogu, nawigacja po katalogach, listowanie zawartości katalogu, zmiana nazw,
SciLab.
BAZY DANYCH Microsoft Access Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej Katedra Automatyki i.
Wstęp do programowania Wykład 2 Dane, instrukcje, program.
Visual Basic przygotował Michał Miłek Visual Basic – język programowania wysokiego poziomu i narzędzie programistyczne firmy Microsoft. Składnia jest oparta.
Do czego służy arkusz kalkulacyjny, jego budowa
P ASCAL Definicje, deklaracje, podstawowe instrukcje 1.
 Formuła to wyrażenie algebraiczne (wzór) określające jakie operacje ma wykonać program na danych. Może ona zawierać liczby, łańcuchy znaków, funkcje,
Liczby 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, …(i tak dalej) nazywamy liczbami naturalnymi. Tak jak z liter tworzy się słowa, tak z cyfr tworzymy liczby. Dowolną.
LICZBY NATURALNE I CAŁKOWITE. Liczby Naturalne Liczby naturalne – liczby używane powszechnie do liczenia (na obiedzie były trzy osoby) i ustalania kolejności.
Czym jest PHP? ● Językiem programowania przeznaczonym do tworzenia i generowania dynamicznych stron WWW. Działa po stronie serwera: Klient Żądanie strony.
Liczby naturalne i całkowite Spis treści Definicje Działania na liczbach Wielokrotności liczb naturalnych Cechy podzielności Przykłady potęg,potęgi o.
Liczbami naturalnymi nazywamy liczby 0,1,2,3,..., 127,... Liczby naturalne poznaliśmy już wcześniej; służą one do liczenia przedmiotów. Zbiór liczb.
Zmienne typy danych w VBA. MS Excel – typy danych w języku programowania VBA.
Programowanie Obiektowe – Wykład 6
Programowanie Obiektowe – Wykład 2
Visual Basic w programie Microsoft Excel
Patryk Kłys Aleksandra dąbrowska
Wprowadzenie do programowania obiektowego
Instrukcja warunkowa if
Zapis prezentacji:

CLIPS Język programowania obiektowego (C Language Integrated Production System) Przygotował: Damian Kołaczkowski

Opis pracy 1. Informacje ogólne 2. Cechy systemu 3. Podstawowe elementy systemu 4. Podstawowe elementy składni języka Clips Fakty Reguły Kontrola wykonywania programów Zmienne 5. Maszyna wnioskująca 6. Wyrażenia matematyczne Formaty funkcji 7. Budowa reguł 8. COOL (CLIPS Object Oriented Language) 9. Podsumowanie

Opracowany w 1984 przez NASA / Johnson Space Center Oparty o język programowania C Mechanizmy wewnętrzne tego języka realizują wnioskowanie w przód Program napisany w Clipsie stanowi bazę wiedzy złożoną z faktów, reguł i obiektów Składnia tego języka jest podobna do składni języka Lisp Działa w cyklu: rozpoznaj warunki, działaj. 90% czasu zajmuje rozpoznawanie warunków i dopasowanie reguł do zaistniałej sytuacji. Informacje ogólne [1] [3] [4]

Cechy systemu [1] Możliwość reprezentowania wiedzy Przenośność Integracja/Rozszerzalność Interakcja z użytkownikiem Weryfikacja/Walidacja Pełna dokumentacja

Podstawowe elementy systemu ekspertowego [1] 1. Wykaz faktów (fact-list) i wykaz obiektów (instance-list) w pamięci roboczej. 2. Baza wiedzy (knowledge-base) w postaci zbioru reguł oraz agenda reguł. 3. Maszyna wnioskująca (inference-engine).

Podstawowe elementy składni języka Clips [4] Fakty Reguły Kontrola wykonywania programów Zmienne

Fakty [4] Fakty są wprowadzane na listę faktów poleceniem (assert), np. (assert(filtr)) W celu uniknięcia konieczności wielokrotnego wpisywania pojedyńczych faktów można zdefiniować blok faktów, używając polecenia (deffacts), np. ( deffacts skrzyzowanie (status stoj) (status idz) )

Fakty cd. Wyróżnia się trzy typy atomów: symboliczne – zaczynające się od litery, po której opcjonalnie następują: litery, cyfry, myślniki lub znaki podkreślenia literalne – zawierające dowolne znaki; zaczynają się one i kończą cudzysłowem, który również wchodzi w skład atomu numeryczne – liczby zmienno pozycyjne.

Reguły [4] W Clipsie reguły mają konstrukcję zbliżoną do instrukcji (IF... THEN...) Słowo IF dla uproszczenia jest pomijane, słowo THEN jest zastępowane symbolem = >.

Reguły cd. Zdanie: IF jest filtr THEN wprowadź pasmo w Clipsie jest reprezentowane przez poniższą regułę:

Reguły cd. Reguła Clipsu składa się z następujących elementów: 1. Nawiasy 2. Słowo kluczowe defrule 3. Obligatoryjna nazwa reguły 4. Opcjonalny komentarz (w cudzysłowie) 5. Pole warunków. 6. Symbol = > 7. Lista działań, jakie zostaną podjęte w chwili uaktywnienia reguły

Reguły cd. Część reguły znajdująca się po lewej stronie symbolu => nosi nazwę LHS (left hand side), a po prawej stronie RHS (right hand side). Aby wykonać program, wprowadza się polecenie (run); przedtem należy jednak użyć (reset)

Kontrola wykonywania programów [4] Clips umożliwia kontrolę wykonywania programu dzięki zastosowaniu polecenia (watch) Następujące polecenia włączają sygnalizację podczas: (watch facts)- wprowadzania faktów i usuwania faktów, (watch rules)- wykonywania reguł, (watch activations) - uaktywniania reguł.

Kontrola wykonywania programów cd. Polecenie (unwatch) wraz ze specyfikacją (unwatch facts) (unwatch rules) (unwatch activations) anuluje działanie polecenia (watch).

Zmienne [4] Nazwy zmiennych używanych w Clipsie rozpoczynają się od znaku zapytania, np.: ?x ?nazwisko Nazwami zmiennych mogą być tylko atomy symboliczne.

Zmienne cd. Zmienną szczególnego rodzaju jest tzw.zmienna anonimowa (wildcard), reprezentowana przez znak zapytania (defrule imie (Jan ?) => (printout „Zostal znaleziony Jan" crlf))

Zmienne cd. Wielokrotna zmienna anonimowa (multifield- wildcard) jest symbolizowana przez $? Można do niej przypisać dowolną liczbę (włącznie z zerem) atomów.

Maszyna wnioskująca [4] W Clipsie obowiązuje zasada odkładania na stos Narzędziem, które umożliwia modyfikację kolejności wykonywania reguł, jest deklaracja priorytetu (declare (salience)) podawana wraz z priorytetem, np. 100 (declare (salience 100)) Priorytetem może być liczba całkowita z przedziału (-10000, 10000).

Wyrażenia matematyczne [4] Clips traktuje wszystkie liczby jako zmiennopozycyjne. Elementarne operatory arytmetyczne są następujące: + dodawania, - odejmowania, * mnożenia, / dzielenia, ** potęgowania.

Wyrażenia matematyczne cd. (operator arg arg) (defrule iloczyn (liczby ?x ?y) => (assert (=(* ?x ?y)))) F1 (liczby 5 6) F2 (30) (bind arg1 arg2)

Wyrażenia matematyczne cd. Formaty funkcji Funkcje trygonometryczne i hiperboliczne: Format ( ) sinasinsinhasinh cosacoscoshacosh tanatantanhatanh secasecsechasech cscacsccschacsch cotacotcothacoth

Wyrażenia matematyczne cd. Formaty funkcji Funkcje min i max: Format ( ) Funkcja modulo: Format (mod ) Wynikiem jest reszta z dzielenia argl przez arg2 Funkcja wykładnicza: Format (exp )

Wyrażenia matematyczne cd. Formaty funkcji Funkcje logarytmiczne: Format ( ) przy czym o postaci log zwraca wartość logarytmu o podstawie natu­ralnej (e), natomiast log10 zwraca wartość logarytmu o podstawie 10. Pierwiastkowanie: Format (sqrt ) Funkcja testująca (test) ma format: (test ( ))

Wyrażenia matematyczne cd. Formaty funkcji Logiczne funkcje predefiniowane: !NOT &&AND ||OR Predefiniowane funkcje porównania: =równy (tylko dla liczb) eqrówny (liczby i łańcuchy) ! =nie równy >=większy lub równy >większy <=mniejszy lub równy <mniejszy

Budowa reguł [4] (defrule ulica (or (swiatlo czerwone) (swiatlo pomaranczowe)) = > (printout „Stoj." crlf)) (defrule ulica (or ?fakt <- (swiatlo czerwone) ?fakt <- (swiatlo pomaranczowe)) => (retract ?fakt) (printout „Stoj." crlf))

Negacja faktu: (not (liczba 100)) Operatory i atomy: (~Janowski) (nazwisko Rawacki|Oleszkiewicz) ?zmienna&:( ) - funkcja predefiniowana lub funkcja użytkownika - zero lub więcej argumentów

COOL [1] (CLIPS Object Oriented Language) jest integralną częścią środowiska języka CLIPS, który wspiera pięć podstawowych cech języka obiektowego: abstrakcję, hermetyzację, dziedziczenie, polimorfizm, wiązanie dynamiczne.

COOL cd. Posiada 17 predefiniowanych klas systemowych: OBJECTUSER INITIALOBJECTPRIMITIVE NUMBERINTEGER FLOATINSTANCE INSTANCENAMEINSTANCEADDRESS ADDRESSFACTADDRESS EXTERNALADDRESSMULTIFIELD LEXEMESYMBOL STRING

Podsumowanie Język hybrydowy (łączy w sobie trzy paradydmaty: regułowy, funkcjonalny i obiektowy) Prostszy niż Prolog czy Lisp użyteczność dyrektyw: propagation, default i default- dynamic Do słabości języka można zaliczyć mało czytelną składnię

Literatura [1] [2] [3] [4 ]Jan J. Mulawka „Systemy ekspertowe”