Jess Java Expert System Shell Studenti Vlad Hosu

  • Slides: 15
Download presentation
Jess Java Expert System Shell Studenti: Vlad Hosu Andreea Pavelescu

Jess Java Expert System Shell Studenti: Vlad Hosu Andreea Pavelescu

Cuprins n n n Sisteme expert Despre Jess Motorul Jess Exemple Ciclul de executie

Cuprins n n n Sisteme expert Despre Jess Motorul Jess Exemple Ciclul de executie Jess Aplicatii

Sisteme expert n Definitie : sistem expert (sistem bazat pe cunostinte) = program care

Sisteme expert n Definitie : sistem expert (sistem bazat pe cunostinte) = program care contine cunostintele sau capacitatile analitice ale unor experti (oameni), care lucreaza in domeniul specific subiectului. n Exemple : CLIPS si JESS n Caracteristici pentru o tehnica buna de inferenta - independenta de domeniul problemei - specifica structurii cunostintelor - motorul de inferenta nu trebuie sa contina expertiza specifica domeniului

Sisteme expert (continuare) n Abordari metode inferenta - inlantuirea inainte (forward chaining) - inlantuirea

Sisteme expert (continuare) n Abordari metode inferenta - inlantuirea inainte (forward chaining) - inlantuirea inapoi (backward chaining)

Despre Jess n n n Java Expert System Shell Jess - furnizeaza o programare

Despre Jess n n n Java Expert System Shell Jess - furnizeaza o programare bazata pe reguli, potrivita pentru automatizarea unui sistem expert foloseste paradigma declarativa Jess nu este open-source scris in Java, sintaxa asemanatoare LISP Modalitati de reprezentare a cunostintelor in Jess - reguli - functii - programare orientata obiect

Despre Jess(continuare) n Consola Jess furnizeaza elementele de baza ale unui sistem expert: n

Despre Jess(continuare) n Consola Jess furnizeaza elementele de baza ale unui sistem expert: n 1. 2. 3. n n lista de fapte si lista de instante : memorie globala pentru date baza de cunostinte : contine toate regulile, baza de reguli motorul de inferente : controleaza executia generala a regulilor

Motorul Jess n n q q Jess foloseste algoritmul Rete caracteristici Rete : Elimina

Motorul Jess n n q q Jess foloseste algoritmul Rete caracteristici Rete : Elimina anumite tipuri de reduntanta prin folosirea partajata a nodurilor Salveaza potriviri partiale cand face join-uri intre diferite tipuri de fapte Retele Rete WME – Working Memory Element

Exemple Jess q Forma asemanatoare cu Lisp => liste q q q q (printout

Exemple Jess q Forma asemanatoare cu Lisp => liste q q q q (printout t “Hello there!” crlf) (a b c) ; lista de tokenuri (1 2 3) ; lista de intregi (+ 2 3) ; expresie (“Hello world!”) ; string (foo ? x ? y) ; apel functie Variabile q q Fara tip, il pot schimba in timpul rularii. Incep cu ? Atribuire: § (bind ? y 3) ; y = 3 § (bind ? result (+ ? x ? y))

Exemple Jess (continuare) n Functii q (deffunction citeste() “Citeste de la consola. ” (bind

Exemple Jess (continuare) n Functii q (deffunction citeste() “Citeste de la consola. ” (bind ? s (read)) (return ? s)) q (deffunction arie-sfera(? raza) “Calculeaza aria unei sfere” (bind ? arie (* (* (pi) 2)(* ? raza))) (return ? arie)) n Folosire din Jess: (printout t (arie-sfera 2))

Exemple Jess (continuare) n Fapte q q q Au cap si mai multe sloturi.

Exemple Jess (continuare) n Fapte q q q Au cap si mai multe sloturi. Sloturile tin date (cu tip sau nu). Multislot-urile pot tine liste. Valorile sloturilor se pot modifica la runtime. Faptele sunt construite din template-uri. (deftemplate masina “O masina” (slot nume) (slot tip (default “Dacia”)) (slot culoare) (slot pret)) Se folosesc: (assert (masina (nume “boci”) (culoare “maro”) (pret 10000))

Exemple Jess (continuare) n Reguli: (defrule un-exemplu (a ? x ? y) => (printout

Exemple Jess (continuare) n Reguli: (defrule un-exemplu (a ? x ? y) => (printout t ? x " " ? y crlf)) (defrule exemplu 2 (not-b-and-c ? n 1&~b ? n 2&~c) (diferit ? d 1 ? d 2&~? d 1) (la-fel ? s) (mm-ca-100 ? m&: (> ? m 100)) (rosu-sau-negru rosu|negru) => (printout t “Gasit ceva" crlf)) (deftemplate persoana (slot varsta)) (defrule exemplu 3 (persoana (varsta ? x)) (test (> ? x 20)) => (printout t ? x " are peste 20 ani" crlf))

Ciclul de executie Jess 1. 2. 3. 4. Potriveste fapte din baza de cunostinte

Ciclul de executie Jess 1. 2. 3. 4. Potriveste fapte din baza de cunostinte cu partea stanga a regulilor din baza de reguli; muta regulile care s-au potrivit in agenda Ordoneaza din agenda potrivit unei strategii de rezolvare a conflictelor Executa partea dreapta a regulilor din agenda in ordinea stabilita la punctul 2 Implicit, Jess foloseste o politica “primul potrivit, primul executat” (first matched, first executed) pentru a ordona agenda

Aplicatii ale Jess n contabilitate, medicina, controlul proceselor, serviciu financiar, productie, resurse umane n

Aplicatii ale Jess n contabilitate, medicina, controlul proceselor, serviciu financiar, productie, resurse umane n e util sa folosim Jess atunci cand un model algoritmic direct nu poate fi extras pentru o solutie

Avantaje n n Ofera raspunsuri consistente pentru decizii repetate Mentine nivele semnificative de informatie

Avantaje n n Ofera raspunsuri consistente pentru decizii repetate Mentine nivele semnificative de informatie Incurajeaza organizatiile sa clarifice logica din spatele procesului de luare decizii Niciodata nu uita sa intrebe un lucru necesar, cum ar putea face un om

Dezavantaje n n n Nu are bunul simt care e necesar in anumite luari

Dezavantaje n n n Nu are bunul simt care e necesar in anumite luari de decizii Nu poate da raspunsuri creative ca si un om in circumstante neobisnuite Expertii din domeniu nu sunt intotdeauna capabili sa explice rationamentul lor si logica din spatele deciziilor