ufsc–universidade federal de santa catarina grupo: diego roberto morais edson camargo saulo popov...

44
UFSC–UNIVERSIDADE FEDERAL DE SANTA CATARINA 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 PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA Inteligência Artificial aplicada a Controle de Inteligência Artificial aplicada a Controle de Processos e Automação Industrial Processos e Automação Industrial

Upload: internet

Post on 17-Apr-2015

108 views

Category:

Documents


2 download

TRANSCRIPT

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

UFSC–UNIVERSIDADE FEDERAL DE SANTA CATARINAUFSC–UNIVERSIDADE FEDERAL DE SANTA CATARINAUFSC–UNIVERSIDADE FEDERAL DE SANTA CATARINAUFSC–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ÉTRICAPROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICAPROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICAPROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA

Inteligência Artificial aplicada a Controle de Inteligência Artificial aplicada a Controle de Processos e Automação IndustrialProcessos e Automação Industrial

Inteligência Artificial aplicada a Controle de Inteligência Artificial aplicada a Controle de Processos e Automação IndustrialProcessos e Automação Industrial

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

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.

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

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...

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

Tab. 1 – Tabela com as principais características das ferramentas de sistemas especialistas

CARACTERÍSTICAS IMPORTANTES

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

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.

CARACTERÍSTICAS IMPORTANTES

Tab. 2 – Preços dos shells avaliados comercialmente

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

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

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

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

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

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

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

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

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

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

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

ESTUDO COMPARATIVO DOS SHELLS

Tab. 3 – Quadro comparativo I

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

ESTUDO COMPARATIVO DOS SHELLS

Tab. 4 – Quadro comparativo II

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

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

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

FUNCIONAMENTO DO ALGORITMO RETE

Fig. 2 - Regras que buscamos 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;

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

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;

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

FUNCIONAMENTO DO ALGORITMO RETE

Fig. 4 - Fatos que buscamas 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.

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

Jess + JavaJess + Java

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

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 &)

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

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)

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

JESS - LINGUAGEM

; Funcoes

(deffunction max (?a ?b)

(if (> ?a ?b) then

(return ?a)

else

(return ?b)

)

)

(max 4 5)

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

JESS - LINGUAGEM

; definindo um template

(deftemplate automoveis

”Um carro em especifico"

(slot tipo)

(slot modelo)

(slot ano (type INTEGER))

(slot cor (default white))

)

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

JESS - LINGUAGEM

; Inserindo instancias

(assert (automoveis

(tipo Gol)

(modelo MI_Plus)

(ano 1997)

)

)

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

JESS - LINGUAGEM

; herdando um template

(deftemplate carros_usados

extends automoveis

(slot ultima_revisao)

(multislot antigos_donos)

)

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

JESS - Exemplo Bolívia

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

JESS - Exemplo Bolívia (Base de Conhecimento)

(assert

(regiao planicie)

(regiao vales)

(regiao altiplano)

(cidade Cobija)

(cidade Trinidad)

...

)

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

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)

)

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

JESS - Exemplo Bolívia (Consulta)

(assert (destino Cochabamba))

(run)

Levar conversor_110-220

Levar roupa_quente

Levar roupa_leve

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

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

)

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

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+"]");

}

}

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

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

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

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)

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

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)

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

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 255 0 255))

(set ?*frame* layout (new GridLayout 1 2))

)

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

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))

)

)

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

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)

)

)

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

JESS - Java no Jess (Window)

(create-frame)

(add-widgets)

(add-behaviours)

(show-frame)

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

Java + Jess

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

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

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

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

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

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

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

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

Linguagem Java

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

Arquivo MeuApplication.java public class MeuApplication { public static void main (String[] args) { System.out.println( “Este é meu

application!” ); } }

Linguagem Java

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

arquivo MeuApplet.javaimport 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

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

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