Regras de Produção: o Motor de Inferência JESS

Slides:



Advertisements
Apresentações semelhantes
Viviane Torres da Silva
Advertisements

Sistemas especialistas
Paulo Marques Hernâni Pedroso
3 Paradigmas e Linguagens de Programação
SISTEMAS ESPECIALISTAS
Capítulo 1 Introdução.
Expert Sinta.
Sistema Especialista Java/ Jess
Engenharia de Software
Introdução à Programação Lógica
Linguagens de Programação Orientadas a Objetos
Raciocínio Viviane Torres da Silva
Como projetar uma linguagem geral para marcação de regras How to Design a General Rule Markup Language Gerd Wagner.
Técnicas de Representação de Conhecimento
Sistemas Baseados em Conhecimento
Agentes Baseados em Regras de Produção
Agentes Baseados em Conhecimento
Agentes Baseados em Conhecimento
Programação em lógica e lógica
FACENS – Engenharia da Computação Inteligência Artificial
INTRODUÇÃO À PROGRAMAÇÃO
Programação Lógica: PROLOG
Jess – the Rule Engine for the Java™ Platform
Francesca Volcan Pio Maiara Heil Cancian Ricardo Bedin França
UFSC–UNIVERSIDADE FEDERAL DE SANTA CATARINA
Alunos: Benedito Jr, Douglas Bertol, Robson Costa
Protégé 3.0 Apresentação para a disciplina DAS 6607
Customer Relationship Management
Aula 2 Aspectos Preliminares
Sistemas Baseados em Regras de Produção
Introdução aos Sistemas Especialistas
Departamento de Estatística e Informática
PROGRAMAÇÃO I UNIDADE 1.
Sistemas de Produção Fatos: x, y Regras: x & y => p
JAVA Linguagem Ambiente de Desenvolvimento
Linguagens Orientadas a Objeto
Desenvolvimento de Sistemas Orientados a Aspectos
Integração com Banco de Dados
Linguagens de programação
Chamada Remota de Procedimentos
Formalismos de Representação de Conhecimento
Semântica de Linguagens de Programação
Agentes Baseados em Regras de Produção
Agentes Cognitivos Adaptativos Aula: Sistemas Baseados em Regras de Produção Flávia Barros 1.
JEOPS Java Embedded Object Production System
Sistemas Especialistas
Ir p/ primeira página PESS: A Probabilistic Expert System Generator Shell T. E. B. Mello, É.L.A. Júnior, R.M.G. Medeiros, R.P. Souza, T.L. Machado, L.M.
Sistemas Inteligentes
Sistemas Inteligentes Sistemas Baseados em Regras de Produção
Protégé-OWL e JessTab Adriano Melo Monitoria Sistemas Inteligentes Prof. Fred Freitas.
Adriano Melo sistemas inteligentes
Disciplina: Inteligência Artificial
Orientação a Objetos e Java Graduação em Ciência da Computação
Orientação a Objetos Parte I
Sistemas Baseados em Conhecimento
Representando Conhecimento em uma Linguagem Orientada a Objetos: a Solução EOOPS Abordagens de programação EOOPS: Integração objetos-regras de produção.
Reasoning Forward and Backward Chaining
Java Kickstart, day 2 Semelhanças com linguagem C.
Aula Prática 4 Monitoria IP/CC (~if669).
Regras de Produção: o Motor de Inferência JESS
Aula 1 – Profª Danielle Costa
1 Disciplina: Inteligência Artificial Curso: Sistemas de Informação Período: 7º Prof.: Fábio Martins de Oliveira Sistemas Especialistas: formas de encadeamento.
Programação Lógica com Prolog
Copyright 1998, Departamento de Informática da UFPE. Todos os direitos reservados sob a legislação em vigor. Variáveis e métodos estáticos, Passagem de.
Web Semântica Thiago José Marques Moura. Roteiro Problemática; Descrição; Arquitetura Proposta; Conclusão sobre Web Semântica; Linguagens de Anotação.
Padrões de projeto M.Sc. Sílvio Bacalá Jr..
Sistemas Baseados em Conhecimento Prof. Cláudio M. N. A. Pereira.
Módulo II Capítulo 1: Orientação a Objetos
1 Arquitetura e JSF Gustavo Wagner
Sistemas de Produção Jacques Robin CIn-UFPE. Roteiro  Definição de um sistemas de produção  Regras de produção  Inferência com regras de produção 
Transcrição da apresentação:

Regras de Produção: o Motor de Inferência JESS Prof. Fred Freitas Pós-Graduação em Informática CIn - UFPE

Componentes de um Motor de Inferência Um formalismo lógico de Representação de Conhecimento Ex: Lógica de Descrição, Frames, regras, etc. Um método ou estratégia de resolução ou mecanismo de inferência para o formalismo

Regras de Produção Representam conhecimento com pares condição-ação Se condição (ou premissa ou antecedente) ocorre então ação (resultado, conclusão ou conseqüente) deverá ocorrer. Regras de produção produzem novos fatos a partir dos fatos e regras da BC. Esses novos fatos passam a fazer parte da BC

Regras de Produção Formalismo mais simples, procedimental e popular animal(x)^estimação(x)^pequeno(x) => doméstico(x) premissas conseqüente Base de fatos e base de regras animal(Rex),estimação(Rex),pequeno(Rex) Mecanismo de inferência: São produzidos novos fatos instanciando fatos existentes nas regras (encadeamento para a frente) Estratégia de controle: resolução de conflito “Para todo x (quantificador universal implícito), se existe um fato afirmando que x é animal e outro fato afirmando que é de estimação e outro fato afirmando que é pequeno, isto implica a validade de um novo fato, o de que x é doméstico”.

Sistemas de Produção Fatos: x, y Regras: x & y => p Encadeamento para a frente (Forward chaining) Dados x e y, derive então p OPS5, CLIPS, Jess Orientado a dados: Se no ex. houvessem regras sobre hábitos dos americanos, o sistema geraria muitas conclusões inúteis em encadeamento para a frente Encadeamento para trás (Backward chaining) p é verdad? Então verificarei x e y. Prolog

Módulos de Sistemas de Produção Base de Regras ou memória permanente regras se-então e fatos conhecidos Memória de Trabalho ou temporária percepções do agente, fatos iniciais e gerados a partir da BR pelo mecanismo de inferência Mecanismo (motor) de Inferência determina o método de raciocínio utilizado (progressivo ou regressivo) Executa a busca com casamento (unificação) resolve conflitos e executa ações.

Arquitetura de Sistemas de Produção

Funcionamento de um sistema de regras de produção As regras seriam a memória duradoura Os fatos seriam a memória de trabalho Ao usarmos as regras sobre os fatos, são derivados novos fatos O ciclo se repete até que não haja mais fatos a derivar Conflito: várias regras podem ser disparadas ao mesmo tempo

Sistemas Especialistas [Friedman-Hill] Facts "Item #123 is expensive speakers" "Gold cables are expensive" "Bob is a customer" "Bob is buying item #123" List of Actions to Take "Recommend that Bob buy gold cables." Inference Engine Rules "Recommend appropriate cables when customers buy speakers" O problema é simples...

Sistemas Especialistas Facts List of Actions to Take "Recommend that Bob buy gold cables." Inference Engine For every customer, for every item in their cart, if it is speakers, for every catalog item, if the cart item is the catalog item, if the catalog item is in some price category, if it is a cable and it is in the same category, recommend that cable to that customer. Rules ... Mas a solução é cara: O (RFP)

Qualidades das Regras São fáceis de compreender (legíveis) e de modificar Independência e Localidade Flexibilidade (Expressividade) Genericidade Portabilidade Facilidade, simplicidade e fidelidade semântica Alterabilidade - > código auto-alterável Liberdade e gradualidade O 1º argumento contra a representação procedural é a obrigação de se especificar de antemão para que o conhecimento será usado [Winograd 75]. Ao contrário, a representação declarativista permite múltiplos usos, com a clara característica de menor compromisso, já que preocupa-se em definir as entidades de um domínio, ao invés de definir de imediato como elas funcionam. : Fórmulas lógicas não influenciam o funcionamento de outras partes do sistema, provocando potenciais efeitos colaterais [Watt 89]. Elas simplesmente têm a propriedade de adicionar mais predicados verdadeiros à Base de Conhecimentos, não possuindo mais nenhuma interseção ou interferência em outro componente, exceto pelo fato de que um novo predicado válido adicionado poderá causar o disparo de novos predicados.

Desvantagens Há problemas eminentemente procedimentais Eficiência Fácil funcionamento Efetividade Fluxo de Controle Controle de consistência Há problemas que são intrinsecamente funcionais ou procedurais, ou ficam melhor especificados dessa maneira. Em contrapartida, ainda não se tentou expressá-los ainda em termos de lógica, apesar de já haver pesquisa sobre métodos de inferência puramente declarativos [Chandrasekaram & Josephson 97].

O Algoritmo Rete Representa regras como dados O compilador gera máquinas de estado a partir de regras Novos fatos guiam a máquina de estado (orientado a dados) O algoritmo lembra os estados antigos Charles L. Forgy, Artificial Intelligence 19 (1982), 17-37.

O Algoritmo Rete ... o algoritmo Rete pode ser O(RF) Facts List of Actions to Take "Recommend that Bob buy gold cables." Inference Engine When a customer picks out an item, if it is speakers, recommend the appropriate cables. Rules ... o algoritmo Rete pode ser O(RF)

O Algoritmo Rete x & y => p x & y & z => q [Friedman-Hill] “rede de padrões" x? y? x? y? z? “rede conjunta" p x & y => p x & y & z => q 8 nós q

O Algoritmo Rete x & y => p x & y & z => q x? y? z? Otimização 1: Compartilhamento da rede de padrões p x & y => p x & y & z => q 6 nós q

O Algoritmo Rete x & y => p x & y & z => q x? y? z? Otimização 2: Compartilhamento na rede conjunta p x & y => p x & y & z => q 5 nós q

A Linguagem das Regras [Friedman-Hill] (defrule recommend-appropriate-cables (customer (id ?id) (cart ?cart)) (cart (id ?cart) (contents $?cnt)) (item (id ?s&:(member$ $?cnt ?s)) (is speaker)(price-category ?pc)) (not (item (id ?c&:(member$ $?cnt ?c)) (is cable) (price-category ?pc)) => (printout t "You need to buy " ?pc " cables." crlf))

Pacotes (módulos) de Regras Apesar de não queremos controlar o fluxo de processamento, às vezes precisamos de fases Em manutenção de dispositivos eletrônicos, e.g., as fases de detecção, isolamento, conserto e funcionamento Organizar regras em pacotes (módulos) que são ativados um por vez Engenharia de conhecimento

Sistemas de Produção Plugáveis Dificuldade de integrar as linguagens lógicas – LISP e Prolog- com as outras Permitir inferência a linguagens imperativas (C, Java, ...) Interoperabilidade, portabilidade e reuso Motores de inferência “plugáveis”

CLIPS: Integração C-regras "C” Language Integrated Production System) [Giarratano & Riley 98] Inclui uma linguagem interna, COOL (“C” Object Oriented Language) que representa classes como frames Características de frames: herança múltipla, atributos podem ser instâncias de outras classes, inferência direta, facetas, etc

JESS - Java Expert System Shell Integra objetos Java e Java beans a regras Projetado para servir à comunidade de orientação a objetos Milhares de usuários Incapazes de representar frames diretamente Característica imperiosa em ontologias Um atributo não pode ser instância de uma classe declarativa Pouca expressividade declarativa Solucionado com o plugin Protégé JessTab

JESS - Java Expert System Shell Rete, com resolução de conflito por saliência Componentes Base de fatos (objetos ou não) Base de conhecimento (declarativa e procedural) Motor de inferência (forward chaining e backward chaining) Pode ter lógica difusa

Frames e Herança em JESS Instanciação (deftemplate box (slot location) (multislot contents)) (assert (box(location kitchen) (contents spatula sponge frying-pan))) Herança apenas herança simples (deftemplate ANIMAL (slot color) (slot weight)) (deftemplate CAT extends ANIMAL (slot whisker-count)) ;;CAT has three slots: color, weight, and whisker-count

Manipulando JESS a partir de Java Exemplo: alterando a base de fatos a partir de um código em um projeto Java public void definaInstancia(String atomo, Object objeto) throws ReteException { Funcall f = new Funcall("definstance", rete); f.add(new Value(atomo, RU.ATOM)); f.add(new Value(objeto, RU.EXTERNAL_ADDRESS)); f.simpleExecute(f, rete.globalContext()); }

Integração com Java new Chamadas a métodos (Call) get e set Conversões de tipo import Chamadas a métodos (Call) get e set Manipulação direta das propriedades de um Bean try-catch, throw Persistência, GUI, Beans, ...

Integração com Java [Friedman-Hill] (import java.util.*) ; create a Vector, add entries (bind ?v (new Vector)) (?v addElement "foo") (?v addElement "bar") ; iterate over Vector and print entries (bind ?e (?v elements)) (while (?e hasMoreElements) do (printout t (?e nextElement) crlf))

Extensões GUI <X>Listener classes jess.awt.Canvas Manipulação de eventos em Jess jess.awt.Canvas Desenhos e pintura em Jess

Boas práticas: eficiência Durante o projeto de regras, lembrar que elas são implementadas através de uma rede Evitar predicados com atributos muito gerais e que variam com freqüência (ex: status); Construir o lado das premissas como uma consulta eficiente de banco de dados, ou seja, contendo apenas predicados necessários ao disparo de regras.