Técnicas de Inferência

Slides:



Advertisements
Apresentações semelhantes
«Forte do Bom Sucesso (Lisboa) – Lápides 1, 2, 3» «nomes gravados, 21 de Agosto de 2008» «Ultramar.TerraWeb»
Advertisements

IFTO ESTRUTURA DE DADOS AULA 05 Prof. Manoel Campos da Silva Filho
UNICAMP Universidade Estadual de Campinas Centro Superior de Educação Tecnológica Divisão de Telecomunicações Propagação de Ondas e Antenas Prof.Dr. Leonardo.
INFORMAÇÕES COMPLEMENTARES
Sistemas especialistas
A busca das mulheres para alcançar seu espaço dentro das organizações
Vamos contar D U De 10 até 69 Professor Vaz Nunes 1999 (Ovar-Portugal). Nenhuns direitos reservados, excepto para fins comerciais. Por favor, não coloque.
Resolução de um Problema
Exercício do Tangram Tangram é um quebra-cabeças chinês no qual, usando 7 peças deve-se construir formas geométricas.
Nome : Resolve estas operações começando no centro de cada espiral. Nos rectângulos põe o resultado de cada operação. Comprova se no final.
©Silberschatz, Korth and Sudarshan (modificado)1Database System Concepts result := {R}; done := false; calcular F+; while (not done) do if (há um esquema.
Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 3.
Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 4.
Ludwig Krippahl, 2009 Programação para as Ciências Experimentais 2008/9 Teórica 4.
Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 3.
Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 4.
Campus Curitiba Departamento Acadêmico de Matemática Angela Olandoski Barboza UTFPR – Damat.
Curso de ADMINISTRAÇÃO
Resolução.
Análise de regressão linear simples: abordagem matricial
Relações Adriano Joaquim de O Cruz ©2002 NCE/UFRJ
EXPRESSÕES ARITMÉTICAS
EXPRESSÕES ARITMÉTICAS
Agentes Baseados em Regras de Produção
FUNÇÃO MODULAR.
Aula 4 Nomes, Vinculações, Tipos e Escopos
Sistemas Baseados em Regras de Produção
Mecânica dos Sólidos não Linear
Listas Encadeadas.
Provas de Concursos Anteriores
UML - Unified Modeling Language
Conceitos Básicos.
ESTATÍSTICA.
Renda até 2 SM.
MECÂNICA - ESTÁTICA Cabos Cap. 7.
Diagnósticos Educativos = Diagnósticos Preenchidos 100% = 1.539
UML - Unified Modeling Language
PESQUISA SOBRE PRAZO MÉDIO DA ASSISTÊNCIA NA SAÚDE SUPLEMENTAR
MECÂNICA - DINÂMICA Exercícios Cap. 13, 14 e 17. TC027 - Mecânica Geral III - Dinâmica © 2013 Curotto, C.L. - UFPR 2 Problema
Fundamentos de Engenharia de SW
1 CENTRO DE DESENVOLVIMENTO E PLANEJAMENTO REGIONAL – 2006 P Ó S-GRADUA Ç ÃO EM ECONOMIA Microeconomia I Prof.: Edson Domingues Cap í tulo II: Escolha.
CATÁLOGO GÉIA PÁG. 1 GÉIA PÁG. 2 HESTIA PÁG. 3.
PROCESSOS PRINCIPAIS Alunos - Grau de Satisfação 4971 avaliações * Questões que entraram em vigor em 2011 ** N.A. = Não Aplicável Versão: 07/02/2012 INDICADORES.
Estruturas de Dados com Jogos
Estruturas de Dados com Jogos
Estruturas de Dados com Jogos
Estruturas de Dados com Jogos
JESUS SE ENCONTRA COM SEUS PRIMEIROS SEGUIDORES
Múltiplos de um número Sonia Regina de Souza Guedes.
Plataforma Brasil – Submissão de pesquisa
Funcionários - Grau de Satisfação 2096 avaliações
PERFIL DOS BENEFICIÁRIOS E NÃO-BENEFICIÁRIOS DO PROGRAMA BOLSA FAMÍLIA EM TERMOS DE MERCADO DE TRABALHO: CONSIDERAÇÕES METODOLÓGICAS E SUBSTANTIVAS Alessandra.
Tributação da Exportação nas Empresas optantes pelo Simples Nacional
Modelagem Estatística
1/40 COMANDO DA 11ª REGIÃO MILITAR PALESTRA AOS MILITARES DA RESERVA, REFORMADOS E PENSIONISTAS - Mar 06 -
Projeto Medindo minha escola.
Introdução e Busca Cega
Semântica de Linguagens de Programação
Agentes Cognitivos Adaptativos Aula: Sistemas Baseados em Regras de Produção Flávia Barros 1.
Sistemas Especialistas
Sistemas Inteligentes
Sistemas Inteligentes Sistemas Baseados em Regras de Produção
1 Aplicações do Fecho Regular. 2 A interseção de uma linguagem livre de contexto e uma linguagem regular é uma linguagem livre de contexto livre de contexto.
CONCEITOS FUNDAMENTAIS
Olhe fixamente para a Bruxa Nariguda
Máquina de Turing Universal
3ª PESQUISA DE REMUNERAÇÃO
Equipe Bárbara Régis Lissa Lourenço Lucas Hakim Ricardo Spada Coordenador: Gabriel Pascutti.
Lição nº52 e /11/2013 Sumário: Tratamento de Dados: frequências, mediana,gráficos e dados agrupados em classes.
INTRODUÇÃO À PROGRAMAÇÃO EM LÓGICA Profa. Joseluce de Farias Cunha
Transcrição da apresentação:

Técnicas de Inferência Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões Entender como os humanos raciocinam como trabalham com a informação relativa a um dado problema Permite delinear o processo de inferência num Sistema Pericial Técnicas de Inferência

Mecanismos de Raciocínio Técnicas de Inferência

Técnicas de Inferência Processo usado num Sistema Pericial para derivar nova informação a partir de informação conhecida  Motor de Inferência Motor de Inferência Responsável pela modelação do Processo de Raciocínio Combina os factos da Memória de Trabalho com o conhecimento do domínio contido na Base de Conhecimento Gera conclusões Técnicas de Inferência

Técnicas de Inferência Métodos de Inferência Os métodos de Inferência explicitam de que forma o Motor de Inferência usa a base de conhecimento para raciocinar Encadeamento Directo (Forward Chaining ) Ou Inferência Ascendente: Orientado pelos Factos parte de um conjunto de factos usa as regras da Base de Conhecimento para deduzir novos factos Encadeamento Indirecto (Backward Chaining ) Ou Inferência Descendente: Orientado pelos Objectivos parte de um objectivo usa as regras para procurar suporte para o objectivo Técnicas de Inferência

Técnicas de Inferência Encadeamento Directo Estratégia de Raciocínio: mais usada pelo ser humano e por isso a mais vulgar nos Peritos tem por base a regra modus ponens - gera nova informação a partir do conjunto inicial de factos Exemplo Assumindo o presente conjunto de axiomas do STATE-0 quais os outros estados que se desenvolveriam usando modus ponens STATE-0 E1  E2 E2  E4 E5  E3 E4  E5 E6  E1 E7  E2 E6 Modus Ponens E6  E6  E1 E1  E1  E2 E2  E2  E4 E4  E4  E5 E5  E5  E3 E3 Técnicas de Inferência

Técnicas de Inferência Encadeamento Directo Estratégia os factos básicos originam o “disparo” de regras as regras conduzem à obtenção de conclusões intermédias as conclusões intermédias em conjunto com os factos básicos originam o “disparo” de mais regras O processo continua até que se obtenham conclusões finais (se tal for possível) e não haja mais lugar à possibilidade de disparo de novas regras Técnicas de Inferência

Técnicas de Inferência Base de Conhecimento Base de Regras Regra r1: SE Bot_1=actuado E Bot_2=actuado ENTÃO Sistema_A=activado Regra r2: SE Bot_3=actuado OU NÃO(Bot_4=actuado) ENTÃO Sistema_B=activado   Regra r3: SE Bot_5=actuado E NÃO(Bot_6=actuado) ENTÃO Sistema_C=activado Regra r4: SE Bot_7=actuado OU Bot_8=actuado ENTÃO Sistema_D=activado Regra r5: SE Sistema_A=activado E Sistema_B=activado ENTÃO Conj_AB=operacional Regra r6: SE Sistema_C=activado E Sistema_D=activado ENTÃO Conj_CD=operacional Técnicas de Inferência

Técnicas de Inferência Encadeamento Directo Base de Conhecimento Regra r1: SE Bot_1=actuado E Bot_2=actuado ENTÃO Sistema_A=activado Regra r2: SE Bot_3=actuado OU NÃO(Bot_4=actuado) ENTÃO Sistema_B=activado   Regra r3: SE Bot_5=actuado E NÃO(Bot_6=actuado) ENTÃO Sistema_C=activado Regra r4: SE Bot_7=actuado OU Bot_8=actuado ENTÃO Sistema_D=activado Regra r5: SE Sistema_A=activado E Sistema_B=activado ENTÃO Conj_AB=operacional Regra r6: SE Sistema_C=activado E Sistema_D=activado ENTÃO Conj_CD=operacional. Base de Factos Facto f1: Bot_1=actuado. Facto f2: Bot_2=actuado. Facto f3: Bot_4=actuado. Facto f4: Bot_5=actuado. Facto f5: Bot_8=actuado. Técnicas de Inferência

Técnicas de Inferência Encadeamento Directo Base de Factos Base de Conhecimento Facto f1: Bot_1=actuado. Facto f2: Bot_2=actuado. Regra r1: SE Bot_1=actuado E Bot_2=actuado Facto f3: Bot_4=actuado. ENTÃO Sistema_A=activado. Facto f4: Bot_5=actuado. Regra r2: SE Bot_3=actuado OU NÃO(Bot_4=actuado) Facto f5: Bot_8=actuado. ENTÃO Sistema_B=activado. Facto f6: Sistema_A=activado. Regra r3: SE Bot_5=actuado E NÃO(Bot_6=actuado) Facto f7: Sistema_C=activado. ENTÃO Sistema_C=activado. Facto f8: Sistema_D=activado. Regra r4: SE Bot_7=actuado OU Bot_8=actuado Facto f9: Conj_CD=operacional. ENTÃO Sistema_D=activado. Regra r5: SE Sistema_A=activado E Sistema_B=activado ENTÃO Conj_AB=operacional. Regra r6: SE Sistema_C=activado E Sistema_D=activado ENTÃO Conj_CD=operacional.   Técnicas de Inferência

Algoritmo de Encadeamento Directo Fi  F1 Enquanto houver factos a considerar Rj  R1 Enquanto houver regras a considerar Se Fi entrar nas condições de Rj E Fi ainda não disparou Rj Então Se o LHS de Rj for verdadeiro Disparar Rj Gerar/Adicionar Factos Guardar Justificações Técnicas de Inferência

Algoritmo de Encadeamento Directo com Metaconhecimento Fi  F1 Enquanto houver factos a considerar SR  conjunto de regras apropriadas para Fi {Metaconhecimento} Enquanto houver regras a considerar Rj  regra de SR Se Fi ainda não disparou Rj Então Se o LHS de Rj for verdadeiro Disparar Rj Gerar/Adicionar Factos Guardar Justificações Técnicas de Inferência

Encadeamento Directo Orientado pelos Dados (Data Driven) É adequado em aplicações onde é importante aprender o máximo possível a partir da informação disponível É preferível se é preciso verificar muitas hipóteses alternativas São mais estruturados e estáticos Os factos da Base de Factos estão armazenados em memória ou ficheiro, são obtidos através das respostas de questões postas pelo Sistema Pericial ao utilizador Exemplo   Diagnóstico e aconselhamento da terapia de um paciente, feito por um médico que consulta a ficha do paciente e observa resultados de análises ou exames efectuadas pelo paciente (factos armazenados) e vai pondo questões ao paciente sobre os sintomas e historial clínico deste. Técnicas de Inferência

Encadeamento Directo Orientado pelos Acontecimentos (Event Driven) Mais adequado para problemas menos estruturados e dinâmicos Os factos da Base de Factos estão armazenados em memória ou ficheiro podem ser obtidos através das respostas de questões postas pelo Sistema Pericial ao utilizador uma parte significativa dos factos aparece como consequência de eventos que são comunicados ao Sistema Pericial Exemplo A análise de avarias ou incidentes que estejam a ocorrer em redes eléctricas e o aconselhamento da reposição em serviço de modo a auxiliar o operador nas medidas que deverá tomar perante uma situação crítica. Técnicas de Inferência

Técnicas de Inferência Encadeamento Directo Vantagens Funciona bem em problemas que comecem pela aquisição de informação e em seguida procedam à inferência de novo conhecimento Deriva grandes quantidades de informação a partir de poucos dados (factos) É adequado para certo tipo de problemas, tais como: planeamento, monitorização, controlo e interpretação Desvantagens Não tem meios para reconhecer quais as questões que são mais relevantes Coloca todas as questões, mesmo se precisar apenas de algumas para chegar a uma conclusão Técnicas de Inferência

Técnicas de Inferência Estados de uma Regra REGRA Activa Inactiva Seleccionada Disparada Regra Seleccionada o antecedente tem valor verdadeiro Inactiva o antecedente tem valor falso Disparada regra cujas acções do consequente foram executadas Activa regra que não está Inactiva nem foi Disparada Técnicas de Inferência

Técnicas de Inferência Estados de uma Regra Regra C130: Se o tipo de motor é propulsão então o avião é um C130 Regra C140: Se o tipo de motor é jacto então o avião é um C140 Sem Factos conhecidos: Todas as regras estão Activas Técnicas de Inferência

Técnicas de Inferência Estados de uma Regra Facto conhecido: tipo de motor jacto. Técnicas de Inferência

Resolução de Conflitos Estratégia usada para escolher a sequência de disparo de regras quando mais do que uma regra pode ser concluída Algoritmo de Resolução de Conflitos Reconhecer: identificar as regras que podem ser disparadas de acordo com os factos da memória de trabalho Resolver: se mais do que uma regra pode ser disparada, escolher uma regra de acordo com a estratégia de resolução de conflitos Actuar: disparar a regra e adicionar a conclusão à memória de trabalho Técnicas de Inferência

Estratégias de Resolução de Conflitos Ordem da regra Regra com maior prioridade Regra mais específica (regra com maior número de premissas) dá prioridade a regras que processem mais informação Regra que refere o elemento mais recentemente adicionado à memória de trabalho Não dispara uma regra que já tenha sido disparada (previne ciclos) Dispara todas as regras em conflito mas coloca as suas conclusões em memórias de trabalho separadas Técnicas de Inferência

Estratégias de Resolução de Conflitos Não sensíveis ao contexto Utilizar a ordem pela qual as regras se encontram na Base de Conhecimento para escolher uma regra Exemplo Regra r1: Regra r2: SE ClubeX joga_hoje SE BandaY actua_hoje E disponho= 50 € E disponho = 50 € ENTÃO Vou_ao_futebol ENTÃO Vou_ao_concerto Utilizar valores de prioridade previamente estabelecidos – é associada uma prioridade a cada regra – dá-se preferência às regras mais prioritárias É simples de programar, mas dificulta o processo de engenharia do conhecimento Técnicas de Inferência

Resolução por Especificidade Sensíveis ao contexto Dar preferência às regras mais específicas (com mais condições) Exemplo R1: IF auscultação HAS_VALUE murmúrio_diastólico THEN doença HAS_VALUE doença_cardíaca R2: IF pressão_sistólica_sangue HAS_VALUE > 140 AND pressão_pulso HAS_VALUE > 50 AND auscultação HAS_VALUE murmúrio_diastólico OR percurssão HAS_VALUE dilatação_cardíaca THEN doença HAS_VALUE regurgitação_aórtica R2 é mais específica conduz a resultados mais fortes Principais vantagens Comportamento mais próximo do humano Extensibilidade da base de regras facilitada Técnicas de Inferência

Resolução por Actualidade Sensíveis ao contexto Dar preferência às regras que envolvem dados obtidos mais recentemente a cada facto é associada uma marca temporal que indica o “tempo” em que foi estabelecido Vantagem: seguir uma linha única de raciocínio Formato para os factos (atributos de valor único): tempo: atributo = valor Podem ocorrer diversos pares A-V na memória de trabalho representando, por exemplo, a evolução temporal do valor de uma variável, mas cada triplo T : A-V é único Técnicas de Inferência

Resolução por Actualidade Exemplo Conjunto de Factos 1: x = a. 2: y = b. 3: z = c. 4: u = d. 5: v = e. 6: w = f. Conjunto de Regras em conflito R1: IF w = f THEN p = e 6 R2: IF y = b AND u = d THEN q = f 2, 4 R3: IF x = a AND z = c AND v = e THEN r = d 1, 3, 5 Associa-se a cada regra uma sequência formada pelas marcas temporais dos factos correspondentes às suas condições Técnicas de Inferência

Resolução por Actualidade Exemplo Conjunto de Factos 1: x = a. 2: y = b. 3: z = c. 4: u = d. 5: v = e. 6: w = f. Conjunto de Regras em conflito R1: IF w = f THEN p = e 6, 0, 0 R2: IF y = b AND u = d THEN q = f 4, 2, 0 R3: IF x = a AND z = c AND v = e THEN r = d 5, 3, 1 Ordenam-se as marcas em cada sequência por valores decrescentes Normaliza-se o comprimento das sequências, acrescentando zeros Técnicas de Inferência

Resolução por Actualidade Exemplo Conjunto de Factos 1: x = a. 2: y = b. 3: z = c. 4: u = d. 5: v = e. 6: w = f. Conjunto de Regras em conflito R1: IF w = f THEN p = e 6, 0, 0 R3: IF x = a AND z = c AND v = e THEN r = d 5, 3, 1 R2: IF y = b AND u = d THEN q = f 4, 2, 0 Ordenamento: R1 > R3 > R2 Técnicas de Inferência

Esquema Genérico de Inferência Memória de Trabalho Base de Regras Selecção de Regras Conjunto de Conflito Resolução de Conflitos Regra Processamento da Regra Técnicas de Inferência

Técnicas de Inferência Algoritmo de Encadeamento Directo com Metaconhecimento e Resolução de Conflitos Fi  F1 Enquanto houver factos a considerar SR  conjunto de regras apropriadas para Fi {Metaconhecimento} SRConflit Reconhecer_Conjunto de Regras Conflito (SR) SRConf Resolver_Conjunto de Regras Conflito (SRConflit) Enquanto houver regras a considerar Rj  regra de SRConf Se Fi ainda não disparou Rj Então Se o LHS de Rj for verdadeiro Disparar Rj Gerar/Adicionar Factos Guardar Justificações Técnicas de Inferência

Encadeamento Directo em LPA-Flex O motor de inferência de encadeamento directo do Flex é implementado com regras de produção do tipo if-then – têm a designação de rules Rule estrutura usada pelo motor de inferência de Encadeamento directo do flex  permite múltiplas pré-condições e múltiplas conclusões Sintaxe de regra de produção de encadeamento directo   rule <nome_da_rule> if <condição_1> [ and <condição_2> …or ... ] then <acção_1> [ and <acção_2> … ] ; [ because <texto explicativo> ] ; [ score <número ou expressão> ] . O motor de inferência verifica as pré-condições das regras de produção  executa as acções correspondentes ás pré-condições verdadeiras Técnicas de Inferência

Técnicas de Inferência Ruleset Para invocar o motor de inferência é necessário definir um ruleset que contém, pelo menos, um conjunto inicial de regras: pode ser fornecido por enumeração ou através do nome de um grupo que contenha o conjunto dos nomes das regras desejadas se não fizer sentido agrupar as em regras em grupos, pode ser usada a definição: ruleset grupo1 contains all rules. Técnicas de Inferência

Técnicas de Inferência Ruleset (cont.) Adicionalmente podem também definir-se: acções iniciais define o conjunto inicial de regras para a actuação do motor de inferência condição de finalização método de selecção de regras especifica em cada momento quais as regras passíveis de serem tentadas método de actualização da agenda incide sobre a agenda método de tratamento de "misfires“ - regras cujas conclusões falham Técnicas de Inferência

Técnicas de Inferência Sintaxe Ruleset Os rulesets ou definições de invocação do motor de inferência de Encadeamento Directo têm uma definição genérica com o formato   ruleset <nome_do_ruleset> contains <conjunto_de_regras_inicial> ; [ initiate by doing <acção_1> [and acção_2 …] ; [ terminate when <condição_1> [and <condição_2> … ] ] ; [ select rule using <mecanismo_de_selecção_de_regras> ] ; [ update ruleset <mecanismo_de_actualização_de_agenda> ] ; [ when a rule misfires do <acção_recuper_1> [and acção_recuper_2.. …] ]. Técnicas de Inferência

Mecanismos de Selecção de Regras Utilizáveis "first come first served" : a primeira regra da agenda é a primeira a ser tentada disparar "conflict resolution" : a primeira regra escolhida é aquela que tiver maior valor do seu score "conflict resolution with threshold <número ou expressão>" : a primeira regra escolhida é a primeira encontrada que tiver um valor score maior do que o valor do "threshold“ Exemplos  ruleset exemplo ruleset exemplo contains all rules ; contains all rules ; select rule using first come first served. select rule using conflict resolution. ruleset exemplo contains all rules ; select rule using conflict resolution with threshold 7. Técnicas de Inferência

Mecanismos de Actualização da Agenda "by removing each selected rule" - quando uma regra é disparada, é retirada da agenda "by promoting each selected rule" - quando uma regra é disparada vai para o topo da agenda "by demoting each selected rule" - quando uma regra é disparada vai para o final da agenda "by cyclic rotation of rules" - a regra seguida à seleccionada vai para o topo da agenda "by removing any unsatisfied rule" - retira da agenda todas as regras cujas pré-condições não foram satisfeitas no último ciclo do motor de inferência "using rule transition network" - quando uma regra é disparada a agenda é actualizada para um conjunto de regras especificado por um group com o mesmo nome da regra que acabou de ser disparada. Técnicas de Inferência

Mecanismos de Recuperação Quando uma regra tenta ser disparada e alguma das suas acções de conclusão falha - ocorre um misfire. Opções do ruleset para esta situação são: true : o misfire não afecta o sistema fail : o misfire causa a falha do sistema <nome_da_acção_de_misfire>: esta acção, fornecida sem parâmetros na definição do ruleset, invoca uma acção definida pelo programador com um argumento que recebe o nome da regra Exemplos ruleset exemplo ruleset exemplo contains all rules ; contains all rules ; when a rule misfires do true . when a rule misfires do fail . ruleset exemplo contains all rules ; when a rule misfires do meu_misfire . Técnicas de Inferência

Fluxograma Encadeamento Directo LPA-Flex Técnicas de Inferência

Sistema Pericial Encadeamento Directo Pretende-se desenvolver um Sistema pericial que permita agrupar seres vivos de acordo com os seguintes critérios de classificação: Tipo de revestimento Tipo de locomoção Tipo de alimentação Atendendo ao seguinte esquema de classificação construir a Base de Conhecimento Técnicas de Inferência

Esquema de Classificação Classe Pêlo Mamífero Escamas superficiais Réptil Revestimento Escamas profundas Peixe Pele Nua Anfíbio Penas Ave Ordem Carne Carnívoro Peixes Piscívoro Marcha Carne Apodrecida Necrófago Corrida Alimentação Sementes, grão Granívoro Locomoção Salto Insectos Insectívoro Reptação Vegetais Herbívoro Nada Variada Omnívoro Voo Técnicas de Inferência

Esquema de Classificação Revestimento Locomoção Alimentação Espécie pêlo marcha carne lobo, tigre pêlo marcha variada javali, homem pêlo salto vegetais coelho pêlo nada peixes baleia penas corrida sementes, grão avestruz penas nada, marcha peixes pinguin penas voo sementes, grão pombo penas voo carne podre abutre pele nua salto insectos rã escamas superficiais reptação carne jibóia escamas profundas nada peixe truta, salmão Técnicas de Inferência

Técnicas de Inferência Questões Lista de atributos usados como questão no Encadeamento Directo question attributes Quais as caracteristicas que conhece do animal? ; choose some of attribute_types . group attribute_types revestimento, alimento, deslocamento. question revestimento Revestimento do corpo ? ; choose one of revest_tipos because 'O revestimento define a classe a que o animal pertence' . group revest_tipos pelo, penas, escamas_superficiais, escamas_profundas, pele_nua. Técnicas de Inferência

Técnicas de Inferência Questões question alimento Alimento ? ; choose one of alimento_tipos because 'O alimento define a ordem a que o animal pertence' . group alimento_tipos carne, peixes, carne_podre, sementes_grao, vegetais, insectos, variado. question deslocamento Deslocamento ? ; choose one of desloc_tipos . group desloc_tipos marcha, corrida, salto, reptacao, voo, nada. Técnicas de Inferência

Conjunto de Regras que definem a Classe Animal ruleset classe_animais contains classe_rules; update ruleset by removing each selected rule. group classe_rules mamifero, peixe, reptil, anfibio, ave. rule mamifero if the revestimento is pelo then the classe becomes mamifero . rule peixe if the revestimento is escamas_profundas then the classe becomes peixe. Técnicas de Inferência

Conjunto de Regras que definem a Classe Animal rule reptil if the revestimento is escamas_superficiais then the classe becomes reptil. rule anfibio if the revestimento is pele_nua then the classe becomes anfibio. rule ave if the revestimento is penas then the classe becomes ave. Técnicas de Inferência

Conjunto de Regras que definem a Ordem Animal ruleset ordem_animais contains ordem_rules; update ruleset by removing each selected rule. group ordem_rules carnivoro, piscivoro, necrofago, granivoro, insectivoro, herbivoro, omnivoro. rule carnivoro if the alimento is carne then the ordem becomes carnivoro. rule piscivoro if the alimento is peixes then the ordem becomes piscivoro. rule necrofago if the alimento is carne_podre then the ordem becomes necrofago. Técnicas de Inferência

Conjunto de Regras que definem a Ordem Animal rule granivoro if the alimento is sementes_grao then the ordem becomes granivoro. rule insectivoro if the alimento is insectos then the ordem becomes insectivoro. rule herbivoro if the alimento is vegetais then the ordem becomes herbivoro. rule omnivoro if the alimento is variado then the ordem becomes omnivoro. Técnicas de Inferência

Conjunto de Regras que definem a Espécie Animal ruleset especie_animais contains especie_rules; update ruleset by removing each selected rule. group especie_rules lobo, tigre, javali, pinguin, ra, jiboia, coelho, baleia, avestruz, pombo, abutre, truta. rule lobo if the classe is mamifero and the ordem is carnivoro and the deslocamento is marcha then the especie becomes {lobo , tigre}. rule javali and the ordem is omnivoro then the especie becomes javali. Técnicas de Inferência

Conjunto de Regras que definem a Espécie Animal rule pinguin if the classe is ave and the ordem is piscivoro and [ the deslocamento is nada or the deslocamento is marcha ] then the especie becomes pinguin. rule ra if the classe is anfibio and the ordem is insectivoro and the deslocamento is salto then the especie becomes ra. rule jiboia if the classe is reptil and the ordem is carnivoro and the deslocamento is reptacao then the especie becomes jiboia. ...... Técnicas de Inferência

Técnicas de Inferência Top-Level Acção Acção que invoca o Sistema Pericial action run_forward ; do restart and ask attributes and invoke ruleset classe_animais and invoke ruleset ordem_animais and invoke ruleset especie_animais and write( especie ) and nl . Técnicas de Inferência

Técnicas de Inferência Encadeamento Inverso O motor de inferência com encadeamento inverso é orientado aos objectivos (goal driven) Objectivo: Provar as conclusões finais (“goals”) que aparecem no lado direito das regras (RHS) As conclusões são provadas provando as condições que aparecem no lado esquerdo da regra (LHS) As condições do lado esquerdo da regra podem ser suportadas por conclusões intermédias de outras regras ou por factos básicos Base de Regras É expressa do mesmo modo que no caso do encadeamento directo, apenas a interpretação da regra é feita em sentido inverso. Técnicas de Inferência

Técnicas de Inferência Encadeamento Inverso Base de Conhecimento Regra R1: SE Bot_1=actuado E Bot_2=actuado ENTÃO Sistema_A=activado Regra R2: SE Bot_3=actuado OU NÃO(Bot_4=actuado) ENTÃO Sistema_B=activado   Regra R3: SE Bot_5=actuado E NÃO(Bot_6=actuado) ENTÃO Sistema_C=activado Regra R4: SE Bot_7=actuado OU Bot_8=actuado ENTÃO Sistema_D=activado Regra R5: SE Sistema_A=activado E Sistema_B=activado ENTÃO Conj_AB=operacional Regra R6: SE Sistema_C=activado E Sistema_D=activado ENTÃO Conj_CD=operacional. Base de Factos Facto f1: Bot_1=actuado. Facto f2: Bot_2=actuado. Facto f3: Bot_4=actuado. Facto f4: Bot_5=actuado. Facto f5: Bot_8=actuado. Técnicas de Inferência

Técnicas de Inferência Encadeamento Inverso Objectivo: provar (Conj_AB=operacional)  conclusão regra R5 Verd ? É necessário provar que Sistema_A=activado Sistema_B=activado Temos que efectuar duas chamadas recursivas ao mecanismo de prova inversa: Objectivo: provar (Sistema_A = activado)  conclusão regra r1 Verd ? provar que o botão Bot_1=actuado  suportado pelo facto f1 provar que o botão Bot_2 =actuado  suportado pelo facto f2  Sistema_A=activado  Verd Objectivo: provar (Sistema_B = activado)  conclusão regra r2 Verd ? provar que o botão Bot_3=actuado  Falso provar que o botão NÃO(Bot_4 =actuado)  Falso, contradiz facto f3 Sistema_B=activado  Falso Conj_AB=operacional  FALSO Exercício: Conj_CD=operacional ? Técnicas de Inferência

Técnicas de Inferência Encadeamento Inverso Objectivo: provar (Conj_CD=operacional)  conclusão regra r5 Verd ? É necessário provar que Sistema_C=activado Sistema_D=activado Temos que efectuar duas chamadas recursivas ao mecanismo de prova inversa: Objectivo: provar (Sistema_C = activado)  conclusão regra r3 Verd ? provar que o botão Bot_5=actuado  suportado pelo facto f4 provar que o botão NÃO(Bot_6 =actuado) Verd  Sistema_C=activado  Verd Objectivo: provar (Sistema_D = activado)  conclusão regra r4 Verd ? provar que o botão Bot_7=actuado  Falso Ou provar que o botão Bot_8 =actuado  suportado pelo facto f5 Sistema_D=activado  Verd Conj_CD=operacional  Verd Técnicas de Inferência

Algoritmo de Encadeamento Inverso Provar (G) Se G corresponde a um facto básico Então G é verdadeiro e Provar (G) tem sucesso Gerar/Adicionar Factos Guardar Justificações Senão Se há um facto F que contraria G Então G é falso e Provar (G) falhou SR  conjunto de regras que concluem G {Metaconhecimento} Repetir R  regra de SR SC  Conjunto de condições de R {LHS} Falha  falso C  condição de SC Provar (C) Se não foi possível provar C Então Falha  verdadeiro Até não existirem mais condições em SC ou Falha = verdadeiro Até não existir mais nenhuma regra em SR ou Falha = falso Se Falha = falso Então G é verdadeiro e Provar (G) teve sucesso Senão G é falso e Provar (G) falhou Técnicas de Inferência

Encadeamento Directo vs. Inverso Inferência para a frente Orientada por dados Procura soluções que sejam consequência dos factos Tende a ser mais eficiente em problemas com poucas condições possíveis Inferência para trás Orientada por objectivos Procura factos que suportem as hipóteses Tende a ser mais eficiente em problemas com muitos dados para suporte Técnicas de Inferência

Técnicas de Inferência Módulo de Explicações As explicações podem ser dirigidas aos seguintes tipos de pessoas:   Engenheiro do Conhecimento ou Implementador do Sistema identificar possíveis problemas na Base de Conhecimento: falta de condições nas regras condições em excesso, valores incorrectos ambiguidades  Perito comparar o seu raciocínio com o do Sistema Pericial, Proceder à Validação do Sistema Pericial   Utilizador por que razão faz uma dada pergunta porque não foi obtida uma dada conclusão aprender algo sobre o domínio em causa - Tutor Inteligente. Técnicas de Inferência

Principais Tipos de Explicações Explicações “Como? (How)” servem para que o Sistema Pericial justifique o caminho que seguiu para obter uma dada conclusão   Explicações “Porque não? (Why not)” servem para que o Sistema Pericial justifique a razão pela qual uma determinada conclusão não foi obtida Explicações “Porquê? (Why)” servem para que o Sistema Pericial justifique por que razão põe uma determinada questão ao utilizador. Técnicas de Inferência

Exemplos de Explicações (Como ?) Explicações Como ?  Traço do processo de encadeamento Como Conj_CD Operacional ? Pelo facto f4 (Bot_5=actuado) e verificando Bot_6=actuado é falso Pode-se concluir pela regra r3 que Sistema_C=activado (facto f7) Pelo facto f5 (Bot_8=actuado) Pode-se concluir pela regra r4 que Sistema_D=activado (facto f8) Pelo facto f7 (Sistema_C=activado) e facto f8 (Sistema_D=activado) Pode-se concluir pela regra r6 que Conj_CD=operacional (facto f9) Técnicas de Inferência

Exemplos de Explicações (Como ?) Conj_CD=operacional  Verd Como ? Outra interacção:   Conj_CD=operacional é verdadeiro pelo uso da regra r6 que implicou provar que Sistema_C=activado é verdadeiro e Sistema_D=activado é verdadeiro Sistema_C=activado é verdadeiro por uso da regra r3 que implicou provar que Bot_5=actuado é verdadeiro e Bot_6=activado é falso Bot_5=actuado é verdadeiro pelo facto f4 Bot_6=actuado é falso Sistema_D=activado é verdadeiro por uso da regra r4 que implicou provar que Bot_7=actuado é verd. ou Bot_8=activado é verdadeiro Bot_8=actuado é verdadeiro pelo facto f5.  Técnicas de Inferência

Exemplos de Explicações (Porque não ?) Conj_AB=operacional  Falso Porque não ? Conj_AB=operacional é falso porque não foi possível provar a regra r5 que implicava provar que Sistema_A=activado fosse verdadeiro e Sistema_B=activado fosse verdadeiro Sistema_B=activado é falso porque não foi possível provar a regra r2 que implicava provar que Bot_3=actuado fosse verdadeiro ou Bot_4=actuado não fosse verdadeiro Bot_3=actuado é falso Bot_4=actuado é verdadeiro pelo facto f3. Técnicas de Inferência

Exemplos de Explicações (Porquê ?) Explicações Porquê ?  O contexto de uma pergunta O Sistema Pericial pode colocar a seguinte questão: O botão Bot_4 está actuado? O utilizador pode responder colocando uma questão “Porquê?”   Se Bot_4 = actuado então podemos concluir pela regra R2 que Sistema_B=activado Como Sistema_A=activado é verdadeiro e sabendo que Sistema_B=activado podemos concluir pela regra R5 que Conj_AB=operacional. Técnicas de Inferência

Técnicas de Inferência Encadeamento Misto Usam-se alternadamente os dois mecanismos de inferência durante uma mesma sessão de resolução de problema. Existem problemas em que a procura em ambas as direcções é benéfica ou mesmo necessária Exemplo Um médico observa um conjunto de sintomas Esses sintomas (observações) conduzem-no a uma hipótese (diagnóstico inicial) Raciocínio a partir dos dados (Encadeamento Directo) Numa segunda fase a hipótese pode ser confirmada/rejeitada utilizando testes e/ou observações adicionais Raciocínio a partir das hipóteses (Encadeamento Inverso) Técnicas de Inferência

Encadeamento Misto através de Interactividade Estratégia de Raciocínio O sistema pede uma observação/facto/sintoma ao utilizador O sistema procura uma regra na BC que contém a observação no seu antecedente (encadeamento directo) O sistema tenta demonstrar a consequência/hipótese da regra encontrada anteriormente (encadeamento inverso) Para isso pode fazer perguntas adicionais ao utilizador Se conseguir demonstrar a hipótese e ela for conclusiva então está terminada a sessão, isto é conseguimos um diagnóstico Se a hipótese ainda não for conclusiva o sistema volta a raciocinar para a frente a partir da hipótese que acabou de provar Técnicas de Inferência

Representação de Conhecimento com Regras Exemplo Base de Conhecimento para análise de um problema de inundação num andar Conceptualização Sintomas possíveis cozinha Ok / Com água, hall Ok / Com água, WC Ok / Com água Outros parâmetros janela aberta/fechada, choveu/não choveu Causas (diagnósticos) possíveis choveu fuga de água na cozinha / no WC Técnicas de Inferência

Relacionamento dos Sintomas com as Causas R1: Se hall com água E cozinha Ok Então fuga de água no WC  Conclusão final R2: Se hall com água E WC Ok E cozinha com água Então problema na cozinha  Conclusão intermédia R3: Se janela da cozinha aberta E choveu E hall OK Então entrou água de fora  Conclusão final R4: Se problema na cozinha E janela da cozinha fechada ou não choveu Então fuga de água na cozinha  Conclusão final Técnicas de Inferência

Exemplo – Encadeamento Misto 1ª Iteração Sistema pede observação: Respondo: hall com água Sistema encontra a Regra R1 Se hall com água E cozinha Ok Então fuga de água no WC Tenta provar a hipótese Raciocína para trás e pergunta: cozinha Ok ? Respondo: Não A hipótese é rejeitada. Vai raciocinar de novo para a frente. Sistema encontra a Regra R2 Se hall com água E WC Ok E cozinha com água Então problema na cozinha Tenta provar a hipótese Raciocína para trás e pergunta: WC Ok ? Respondo: Sim Conclui: problema na cozinha Vai raciocinar de novo para a frente. Sistema encontra a Regra R4 Se problema na cozinha E janela da cozinha fechada ou não choveu Então fuga de água na cozinha janela da cozinha fechada ? Conclui: fuga de água na cozinha Técnicas de Inferência

Encadeamento Inverso em LPA-Flex O motor de inferência de encadeamento inverso do Flex é implementado com regras de produção do tipo if-then – relation Uma relation não é mais do que um predicado PROLOG Uma relation pode ter mais do que uma definição (como mais do que uma cláusula no caso do PROLOG), sendo tentada em backtracking O objectivo da relation é devolver um valor booleano (Verdadeiro ou Falso) consoante suceda ou falhe Técnicas de Inferência

Técnicas de Inferência Relations Sintaxe da regra de produção de encadeamento inverso   relation <nome_da_relation> (arg1, arg2, ..., argn)  argumentos não if <condição_1> existem nas rules [ and <condição_2> … ]. Usando um motor de inferência de Encadeamento Inverso só se pode tentar provar uma conclusão de cada vez Podem ser invocadas directamente (tal como as actions) Podem ter múltiplas definições Podem invocar outras relations Técnicas de Inferência

Técnicas de Inferência Relations Exemplo frame estudante. instance maria is a estudante natural is braga and status is junior and residencia is porto. relation verificar_alojamento ( S ) if S status is include in {junior, senior} and S residencia is not lisboa and echo ( ‘ é necessário reservar quarto ‘) . If echo (S, ‘não precisa de alojamento ‘) . action test ; do for every S is an instance of estudante do verificar_alojamento (S) and write (S) and nl end for. Técnicas de Inferência

Sistema Pericial Encadeamento Inverso Pretende-se desenvolver o Sistema Pericial de classificação dos seres vivos, já desenvolvido em foward chaining, usando o mecanismo de inferência backward chaining. As questões e grupos são os definidos no Sistema Pericial foward chaining À semelhança do que foi feito no SP de Encadeamento Directo, as relations são agrupadas por: Ordem Classe Espécie Técnicas de Inferência

Técnicas de Inferência Relation Classe relation check_classe ( Classe ) if one( suggest_classe( SuggestedClasse ) ) and Classe = SuggestedClasse . relation suggest_classe ( mamifero ) if the revestimento is pelo . relation suggest_classe ( ave ) if the revestimento is penas . relation suggest_classe ( peixe ) if the revestimento is escamas_profundas . relation suggest_classe ( reptil ) if the revestimento is escamas_superficiais . relation suggest_classe ( anfibio ) if the revestimento is pele_nua . Técnicas de Inferência

Técnicas de Inferência Relation Ordem relation check_ordem ( Ordem ) if one( suggest_ordem( SuggestedOrdem ) ) and Ordem = SuggestedOrdem . relation suggest_ordem ( carnivoro ) if the alimento is carne . relation suggest_ordem ( piscivoro ) if the alimento is peixes . relation suggest_ordem ( granivoro ) if the alimento is sementes_grao . relation suggest_ordem ( insectivoro ) if the alimento is insectos . ...... relation suggest_ordem ( omnivoro ) if the alimento is variado . Técnicas de Inferência

Técnicas de Inferência Relation Especie relation check_especie ( Especie ) if one ( suggest_especie( SuggestedEspecie ) ) and Especie = SuggestedEspecie . relation suggest_especie ( avestruz ) if check_classe ( ave ) and check_ordem ( granivoro ) and deslocamento is marcha . relation suggest_especie ( pinguim ) and check_ordem ( piscivoro ) and deslocamento is nada . ........ relation suggest_especie ( javali ) if check_classe ( mamifero ) and check_ordem ( omnivoro ) Técnicas de Inferência

Acção que invoca o Sistema Pericial action run_backward do restart and check_especie( Especie ) and write( Especie ) and nl . Técnicas de Inferência

Implementação do Problema: Inundação do Andar com Explicações Exemplo Base de Conhecimento para análise de um problema de inundação num andar Conceptualização Sintomas possíveis cozinha Ok / Com água, hall Ok / Com água, WC Ok / Com água Outros parâmetros janela aberta/fechada, choveu/não choveu Conclusões (diagnósticos) possíveis água entrou de fora fuga de água na cozinha / no WC Técnicas de Inferência

Relacionamento dos Sintomas com as Causas R1: Se hall com água E cozinha Ok Então fuga de água no WC  Conclusão final R2: Se hall com água E WC Ok E cozinha com água Então problema na cozinha  Conclusão intermédia R3: Se janela da cozinha aberta E choveu E hall OK Então entrou água de fora  Conclusão final R4: Se problema na cozinha E janela da cozinha fechada ou não choveu Então fuga de água na cozinha  Conclusão final Técnicas de Inferência

Questões (comuns a ambos os mecanismos de inferência) question cozinha Cozinha ? ; choose one of agua_hipoteses because 'para localizar o problema de inundacao'. question wc WC ? ; question hall Hall ? ; group agua_hipoteses ok, com_agua. Explicação Porquê ? Técnicas de Inferência

Questões (comuns a ambos os mecanismos de inferência) question janela Janela ? ; choose one of janela_hipoteses because 'Se a janela aberta e tiver chovido então água veio de fora'. group janela_hipoteses aberta, fechada. question chuva Choveu ? ; choose one of chuva_hipoteses group chuva_hipoteses sim, nao. Técnicas de Inferência

Regras (Sistema Pericial Encadeamento Directo) ruleset inundacao contains problemas_rules ; update ruleset by removing each selected rule. group problemas_rules r1, r2, r3, r4 . rule r1 if the hall is com_agua and the cozinha is ok then the diagnostico becomes fuga_agua_WC . Técnicas de Inferência

Regras (Sistema Pericial Encadeamento Directo) rule r2 if the hall is com_agua and the wc is ok and the cozinha is com_agua then the problema becomes cozinha . rule r3 if the janela is aberta and the chuva is sim and the hall is ok then the diagnostico becomes entrou_agua_de_fora . rule r4 if [ the janela is fechada or the chuva is nao ] and the problema is cozinha then the diagnostico becomes fuga_agua_cozinha . Técnicas de Inferência

Relations (Sistema Pericial Encadeamento Inverso) relation diagnostico ( fuga_agua_WC ) if the hall is com_agua and the cozinha is ok . relation diagnostico ( entrou_agua_de_fora ) if the janela is aberta and the chuva is sim . relation diagnostico ( fuga_agua_cozinha ) if the hall is com_agua and the wc is ok and [ the janela is fechada or the chuva is nao ]. action run_backward do restart and diagnostico ( Diagnostico ) and write ( Diagnostico ) and nl . Técnicas de Inferência

Acção de Selecção Mecanismo de Inferência action run( Como ) ; if Como is forward then run_forward else if Como is backward then run_backward fail end if and run_expl . Técnicas de Inferência

Técnicas de Inferência Explicações action run_expl ; do ask explic and if explic is sim then ask tipo_explic and if tipo_explic is Porque_nao then ask diag_possiv and invoke ruleset porquenao else invoke ruleset explicacao end if true and nl. Técnicas de Inferência

Técnicas de Inferência Explicações question explic Explicacao ? ; choose one of 'sim', 'nao' . question tipo_explic Tipo explicacao ? ; choose one of 'Como', 'Porque_nao' . question diag_possiv Porque nao ? ; choose one of diag_hip. group diag_hip fuga_agua_wc, fuga_agua_cozinha, entrou_agua_de_fora. Técnicas de Inferência

Técnicas de Inferência Explicações ruleset explicacao contains explic_rules ; update ruleset by removing each selected rule. group explic_rules e1, e2, e3, e4. Técnicas de Inferência

Técnicas de Inferência Explicações (Como ?) rule e1 if diagnostico is fuga_agua_WC then nl and write ('Porque: ') and nl and write ('Sabe-se que a cozinha esta ok e') and nl and write ('o Hall tem agua') and nl and write ('logo fuga de agua no WC') and nl . Técnicas de Inferência

Técnicas de Inferência Explicações (Como ?) rule e2 if diagnostico is entrou_agua_de_fora then nl and write ('Porque: ') and nl and write ('Sabe-se que a janela da cozinha esta aberta') and nl and write ('e Choveu') and nl and write ('e o Hall esta OK') and nl and write ('e a cozinha tem agua') and nl and write ('logo agua entrou de fora') and nl . Técnicas de Inferência

Técnicas de Inferência Explicações (Como ?) rule e3 if diagnostico is fuga_agua_cozinha and janela is fechada then nl and write ('Porque: ') and nl and write ('Sabe-se que a janela da cozinha esta fechada') and nl and write ('e o Hall e a cozinha tem agua') and nl and write ('e o WC OK') and nl and write ('logo fuga de agua na cozinha') and nl . Técnicas de Inferência

Técnicas de Inferência Explicações (Como ?) rule e4 if diagnostico is fuga_agua_cozinha and janela is aberta and chuva is nao then nl and write ('Porque: ') and nl and write ('Sabe-se que nao choveu') and nl and write ('e o Hall e a cozinha tem agua') and nl and write ('e o WC OK') and nl and write ('logo fuga de agua na cozinha') and nl . Técnicas de Inferência

Explicações (Porque Não ?) ruleset porquenao contains pqnao_rules ; update ruleset by removing each selected rule. group pqnao_rules x1, x2. rule x1 if diagnostico is fuga_agua_WC and diag_possiv is fuga_agua_cozinha then nl and write ('Porque: ') and nl and write ('Sabe-se que a cozinha esta ok') and nl . Técnicas de Inferência

Explicações (Porque Não ?) rule x2 if diagnostico is fuga_agua_WC and diag_possiv is entrou_agua_de_fora and janela is fechada then nl and write ('Porque: ') and nl and write ('Sabe-se que a janela da cozinha esta fechada') and nl . ........... Técnicas de Inferência