1 / 44

UFSC–UNIVERSIDADE FEDERAL DE SANTA CATARINA

UFSC–UNIVERSIDADE FEDERAL DE SANTA CATARINA. PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA. Inteligência Artificial aplicada a Controle de Processos e Automação Industrial. JESS. Grupo: Diego Roberto Morais Edson Camargo Saulo Popov Zambiasi

basil-johns
Download Presentation

UFSC–UNIVERSIDADE FEDERAL DE SANTA CATARINA

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. UFSC–UNIVERSIDADE FEDERAL DE SANTA CATARINA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA Inteligência Artificial aplicada a Controle de Processos e Automação Industrial JESS Grupo: Diego Roberto Morais Edson Camargo Saulo Popov Zambiasi Professor: Guilherme Bittencourt

  2. Características importantes para a escolha dos shells; Estudo comparativo dos shells; Caracterização do JESS; Processamento de um Sistema Especialista; Algoritmo RETE. ESCOPO DA APRESENTAÇÃO

  3. CARACTERÍSTICAS IMPORTANTES • Escolha do Shell: - Critérios teóricos: representação do conhecimento, procedimentos de inferência; - Características atrativas para aplicações específicas: flexibilidade, interface com banco de dados externo e algoritmos numéricos, portabilidade, etc...

  4. CARACTERÍSTICAS IMPORTANTES Tab. 1 – Tabela com as principais características das ferramentas de sistemas especialistas

  5. CARACTERÍSTICAS IMPORTANTES Tab. 2 – Preços dos shells avaliados comercialmente Hunealt, M., Rosu, C., Manoliu, R., Galiana, F. D., (1994). “A Study of Knowledge Engineering Tools in Power Engineering Applications” IEEE Transactions on Power Systems, Vol. 9, nº4, nov. 1994.

  6. ESTUDO COMPARATIVO DOS SHELLS • WebLS: - Máquina de inferência PROLOG; - Linguagem modular e sintaxe simples; - Gera HTML dinamicamente; - Documentação de boa qualidade; - Intenção de poder ser utilizada por especialistas do domínio do conhecimento.

  7. ESTUDO COMPARATIVO DOS SHELLS • CLIPS: - Grande vantagem: portabilidade; - Algoritmo RETE; - Documentação de boa qualidade; - Sintaxe muito próxima do LISP; - Dificilmente pode ser utilizada por especialistas do domínio do conhecimento.

  8. ESTUDO COMPARATIVO DOS SHELLS • WebCLIPS: - CGI que encapsula o CLIPS; - Páginas e formulários HTML dinamicamente; - Arquivo de configuração inicial; - Linguagem C; - Unix e Windows

  9. ESTUDO COMPARATIVO DOS SHELLS • JESS: - Desenvolvido por Ernest J. Friedman-Hill; - Sandia National Laboratories; - Implementação em Linguagem Java do CLIPS; - Basicamente uma biblioteca; - Sintaxe não é tão simples (LISP); - Documentação de boa qualidade;

  10. ESTUDO COMPARATIVO DOS SHELLS • JESS: - Opções de método de inferência com dois tipos de encadeamento; - Duas estratégias de busca; - Uso gratuito para instituições de ensino; - Construção do SE pode ser realizada através do prompt do JESS ou editor de texto; - Algoritmo especial chamado RETE (MI); - Pesado em termos de execução.

  11. ESTUDO COMPARATIVO DOS SHELLS Tab. 3 – Quadro comparativo I

  12. ESTUDO COMPARATIVO DOS SHELLS Tab. 4 – Quadro comparativo II

  13. FUNCIONAMENTO DO ALGORITMO RETE Fig. 1 - Modelo de busca de dados e regras • Processamento do algoritmo RETE em um SE; • O “casamento” é processado apenas uma vez; • O MI examina cada regra e compara com os fatos; • Agenda

  14. FUNCIONAMENTO DO ALGORITMO RETE • Processo ocorre em apenas um ciclo; • Casamento entre fatos e regras uma vez; • Porém o processo se desenvolve em vários ciclos; • Novos fatos gerados pelo disparo das regras; Fig. 2 - Regras que buscam os fatos

  15. FUNCIONAMENTO DO ALGORITMO RETE • Percentual de fatos alterados em relação ao total de regras é baixo; • Ineficiência computacional; Fig. 3 - Esforço computacional desnecessário quando regras procuram os fatos

  16. FUNCIONAMENTO DO ALGORITMO RETE • Pressuposto que uma pequena parte da lista de fatos é adicionada; • Pequena parte das regras é afetada; • Regras selecionadas; • Informações em rede • Velocidade de execução do motor de inferência; • Memória. Fig. 4 - Fatos que buscam as regras

  17. Jess + Java

  18. Executando: java -classpath jess.jar jess.Main examples/hello.clp java -classpath jess.jar jess.Main Carregando arquivos: (batch examples/hello.clp) Programas externos: (system xlogo &) JESS - EXECUTANDO O SHELL

  19. ; Lendo e escrevendo (printout t ”Nome: ") (bind ?resposta(read)) (printout t ”Resposta: " ?resposta crlf) ; Variaveis (bind ?x 45) (bind ?nome “Socrates”) ; Variaveis globais (defglobal ?*idade* = 21) JESS - LINGUAGEM

  20. ; Funcoes (deffunction max (?a ?b) (if (> ?a ?b) then (return ?a) else (return ?b) ) ) (max 4 5) JESS - LINGUAGEM

  21. ; definindo um template (deftemplate automoveis ”Um carro em especifico" (slot tipo) (slot modelo) (slot ano (type INTEGER)) (slot cor (default white)) ) JESS - LINGUAGEM

  22. ; Inserindo instancias (assert (automoveis (tipo Gol) (modelo MI_Plus) (ano 1997) ) ) JESS - LINGUAGEM

  23. ; herdando um template (deftemplate carros_usados extends automoveis (slot ultima_revisao) (multislot antigos_donos) ) JESS - LINGUAGEM

  24. JESS - Exemplo Bolívia

  25. (assert (regiao planicie) (regiao vales) (regiao altiplano) (cidade Cobija) (cidade Trinidad) ... ) JESS - Exemplo Bolívia (Base de Conhecimento)

  26. (defrule rule-1 (destino ?x) (regiao ?x) (clima ?x ?y) => (assert (clima-destino ?y)) ) ... (defrule rule-6 (levar ?x) => (printout t "Levar " ?x crlf) ) JESS - Exemplo Bolívia (Regras)

  27. (assert (destino Cochabamba)) (run) Levar conversor_110-220 Levar roupa_quente Levar roupa_leve JESS - Exemplo Bolívia (Consulta)

  28. (bind ?pt (new java.awt.Point)) (set-member ?pt x 37) (set-member ?pt y 42) (printout t "Ponto x: " (get-member ?pt x) ", ponto y: " (get-member ?pt y) crlf ) JESS - Java no Jess (Java Reflection)

  29. import java.io.*; public class ClasseTeste implements Serializable { private String name = "Descartes"; public String getName() { return name; } public void setName(String s) { name = s; } public void write() { System.out.println("Nome : ["+name+"]"); } } JESS - Java no Jess (JavaBeans)

  30. Compilando o arquivo: > javac ClasseTeste.java Criando o arquivo JAR: > jar cf ClasseTeste.jar ClasseTeste.class Executando o Jess: > java -classpath jess.jar;ClasseTeste.jar jess.Main JESS - Java no Jess (JavaBeans)

  31. Lendo a classe no Jess: Jess> (defclass teste ClasseTeste) Definindo o template Jess> (ppdeftemplate teste) Adicionando um objeto a base de conhecimento Jess> (bind ?t (new ClasseTeste)) Jess> (definstance teste ?t static) Jess> (facts) JESS - Java no Jess (JavaBeans)

  32. Chamando funções do objeto Jess> (call ?t setName "Socrates") Jess> (facts) Atualizar base de conhecimento Jess> (reset) Jess> (facts) JESS - Java no Jess (JavaBeans)

  33. (import java.awt.*) (import jess.awt.*) (defglobal ?*frame* = 0) (defglobal ?*botao* = 0) (deffunction create-frame () (bind ?*frame* (new Frame "Texto")) (set ?*frame* background (new Color 255 0 255)) (set ?*frame* layout (new GridLayout 1 2)) ) JESS - Java no Jess (Window)

  34. (deffunction add-widgets () (?*frame* add (new Label "Botao: ")) (bind ?*botao* (new Button "Ok")) (?*frame* add ?*botao*) ) (deffunction add-behaviours () (?*frame* addWindowListener (new WindowListener frame-handler (engine)) ) ) JESS - Java no Jess (Window)

  35. (deffunction show-frame () (?*frame* validate) (?*frame* pack) (?*frame* show) ) (deffunction frame-handler (?event) (if (= (?event getID) (get-member ?event WINDOW_CLOSING)) then (printout t "Fechando Janela... " crlf) (call (get ?event source) dispose) (call System exit 0) ) ) JESS - Java no Jess (Window)

  36. (create-frame) (add-widgets) (add-behaviours) (show-frame) JESS - Java no Jess (Window)

  37. Java + Jess

  38. Criada no início dos anos 90 pela Sun; Java é uma linguagem computacional completa, adequada para o desenvolvimento de aplicações baseadas na rede Internet, redes fechadas ou ainda programas stand-alone [CAM96]. Atualmente, a linguagem Java é a força propulsora por trás de grandes avanços da computação, como: - Acesso remoto a bancos de dados - Bancos de dados distribuídos - Comércio eletrônico no WWW Linguagem Java

  39. Atualmente, a linguagem Java é a força propulsora por trás de grandes avanços da computação, como: - Network CAD - Interatividade em páginas WWW - Interatividade em ambientes de Realidade Virtual distribuídos - Gerência de Documentos - Integração entre dados e forma de visualização - Network Computer - Ensino à distância -Jogos e entretenimento Linguagem Java

  40. Características Simplicidade e eficiência de código orientado a objetos Código Interpretado e Portável Segurança Aplicações distribuídas e processamento paralelo Linguagem Java

  41. Recursos para o Desenvolvimento JDK Tools Java API java.applet java.awt Linguagem Java

  42. Arquivo MeuApplication.java public class MeuApplication { public static void main (String[] args) { System.out.println( “Este é meu application!” ); } } Linguagem Java

  43. arquivo MeuApplet.java import java.applet.*; import java.awt.*; public class MeuApplet extends Applet { public void paint (Graphics g) { g.drawString( “Este é meu applet!” ); } } <HTML> <applet code=“code=“MeuApplet.class” width=“200” height=“100”> </applet> </HTML> Linguagem Java

  44. Há duas formas nas quais Java pode ser usado com JESS: Para extender o Jess, e Biblioteca do Jess usadas no Java JESS no Java

More Related