A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

UFSC–UNIVERSIDADE FEDERAL DE SANTA CATARINA Grupo: Diego Roberto Morais Edson Camargo Saulo Popov Zambiasi Professor: Guilherme Bittencourt PROGRAMA DE.

Apresentações semelhantes


Apresentação em tema: "UFSC–UNIVERSIDADE FEDERAL DE SANTA CATARINA Grupo: Diego Roberto Morais Edson Camargo Saulo Popov Zambiasi Professor: Guilherme Bittencourt PROGRAMA DE."— Transcrição da apresentação:

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

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

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 Tab. 1 – Tabela com as principais características das ferramentas de sistemas especialistas CARACTERÍSTICAS IMPORTANTES

5 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 CARACTERÍSTICAS IMPORTANTES Tab. 2 – Preços dos shells avaliados comercialmente

6 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. ESTUDO COMPARATIVO DOS SHELLS

7 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. ESTUDO COMPARATIVO DOS SHELLS

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

9 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; ESTUDO COMPARATIVO DOS SHELLS

10 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. ESTUDO COMPARATIVO DOS SHELLS

11 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 Fig. 2 - Regras que buscam os fatos 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;

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

16 FUNCIONAMENTO DO ALGORITMO RETE Fig. 4 - Fatos que buscam as regras 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.

17 Jess + Java

18 JESS - EXECUTANDO O SHELL 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 &)

19 JESS - LINGUAGEM ; 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)

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

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

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

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

24 JESS - Exemplo Bolívia

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

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

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

28 JESS - Java no Jess (Java Reflection) (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 )

29 JESS - Java no Jess (JavaBeans) 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+"]"); }

30 JESS - Java no Jess (JavaBeans) 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

31 JESS - Java no Jess (JavaBeans) 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)

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

33 JESS - Java no Jess (Window) (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 )) (set ?*frame* layout (new GridLayout 1 2)) )

34 JESS - Java no Jess (Window) (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)) )

35 JESS - Java no Jess (Window) (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) )

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

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! ); } 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


Carregar ppt "UFSC–UNIVERSIDADE FEDERAL DE SANTA CATARINA Grupo: Diego Roberto Morais Edson Camargo Saulo Popov Zambiasi Professor: Guilherme Bittencourt PROGRAMA DE."

Apresentações semelhantes


Anúncios Google