Sistemas de Produção Reativos e Algoritmo de Rete



Documentos relacionados
Sistemas de Produção Sistemas Baseados em Regras

Mecanismos de Raciocínio em Regras de Produção e Algoritmo RETE

Sistemas de Produção

Universidade Estadual de Maringá Departamento de Informática Disciplina Inteligência Artificial Profa. Josiane

Regras e Encadeamentos

Banco de Dados I Módulo V: Indexação em Banco de Dados. (Aulas 4) Clodis Boscarioli

Sumário. 2 Índice Remissivo 9

CRIANDO UM MODELO ESTRUTURAL EM REVIT STRUCTURE

Banco de Dados I Unidade 3: Projeto de BD Relacional. Cláudio Baptista

Lista 2 Sistemas Inteligentes (INE5633) 2014s2

Potenciação no Conjunto dos Números Inteiros - Z

EXERCÍCIOS DE ÁLGEBRA LINEAR E GEOMETRIA ANALÍTICA (sistemas de equações lineares e outros exercícios)

HORÁRIOS PROVISÓRIOS 2016 ENSINO FUNDAMENTAL 2 6º ANO MANHÃ HORÁRIO AULA SEGUNDA-FEIRA TERÇA-FEIRA QUARTA-FEIRA QUINTA-FEIRA SEXTA-FEIRA 7:20 ÀS 8:10

Matemática 2 aula 11 COMENTÁRIOS ATIVIDADES PARA SALA COMENTÁRIOS ATIVIDADES PROPOSTAS POLINÔMIOS I. P(x) = 4x (x 1) + (x 1)

Banco de dados. Aula 22 O Comando SELECT. 1 Wedson Quintanilha da Silva -

ESTRUTURA DE DADOS ORDENANDO LISTAS

AGENDA DIÁRIA. Horário Componente Curricular Conteúdo Observação

9ª Sessão. Avaliação de hipóteses SE Variáveis. Ruth Braga

MATRIZES - PARTE Mais exemplos Multiplicação de duas matrizes AULA 26

ESTRUTURA DE DADOS ORDENANDO LISTAS

Uma solução possível para garantir, em ambiente APEX, a consistência duma estrutura ISA, total e disjuntiva.

Horário de Aulas Fundamental II

Simulado "ESCOPO PMP"

Função. Adição e subtração de arcos Duplicação de arcos

Equações Diferenciais Ordinárias

COMANDO DA AERONÁUTICA ESCOLA DE ESPECIALISTAS DE AERONÁUTICA SUBDIVISÃO DE ADMISSÃO E DE SELEÇÃO

Boletins Informativos

Bases de Dados. Algoritmos. Custo de operação. Algoritmos de selecção. Algoritmo de ordenação. Algoritmos de junção.

Tabelas Hash. informação, a partir do conhecimento de sua chave. Hashing é uma maneira de organizar dados que:

Prova de Fundamentos de Bancos de Dados 2 a Prova

Degenerescência. Marina Andretta ICMC-USP. 19 de outubro de 2016

Departamento de Ciência de Computadores - FCUP Primeiro Teste de Inteligência Artificial / Sistemas Inteligentes (Duração: 2 horas)

Encontro 5: Permutação e resolução de exercícios de contagem

Selecione o tipo da atividade (ex.: preventiva, preditiva, instalação etc). *As informações dessa coluna vêm da planilha de cadastros auxiliares.

PEA 2522 MÉTODOS DE OTIMIZAÇÃO. Otimização

Aula 11: Desvios e Laços

12 26, 62, 34, , , 65

MATA60 BANCO DE DADOS Aula 10- Indexação. Prof. Daniela Barreiro Claro

TLBD II. Continuação

ATIVIDADES EM SALA DE AULA Cálculo I -A- Humberto José Bortolossi

Redutibilidade. Mário S. Alvim Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/02)

Geometria Analítica - Aula

Modelo Relacional Normalização Diagramas E-R e Tabelas Originadas

Algoritmos Greedy. Pedro Ribeiro 2014/2015 DCC/FCUP. Pedro Ribeiro (DCC/FCUP) Algoritmos Greedy 2014/ / 40

Fila de Prioridade. Siang Wun Song - Universidade de São Paulo - IME/USP. MAC Estruturas de Dados

Inversão. Introdução à Simulação Estocás5ca usando R INF2035 PUC- Rio, Hélio Lopes Departamento de InformáAca PUC- Rio 4/25/13

Módulo de Equações do Segundo Grau. Equações do Segundo Grau: Resultados Básicos. Nono Ano

Testes de Hipóteses Estatísticas

Programação Inteira. Fernando Nogueira Programação Inteira 1

Método Simplex. Marina Andretta ICMC-USP. 19 de outubro de 2016

Aplicações das derivadas ao estudo do gráfico de funções

Prof. Daniela Barreiro Claro

Custo de Capital. Taxa de Descontos. Mesmo significado. Custo de Capital de Terceiros - RT

- Cálculo 1 - Limites -

A fiscalidade na gestão da actividade agrícola

TABELA ENTIDADE LINHA OCORRÊNCIA DA ENTIDADE COLUNA ATRIBUTO DA ENTIDADE

1.2 OPERAÇÕES BÁSICAS EM ALGORITMOS E PROGRAMAS 18

Programação Inteira Conteúdos da Seção Programação Inteira Problema Relaxado Solução Gráfica Solução por Enumeração Algoritmo de Branch-And-Bound

AV2 - MA UMA SOLUÇÃO

SIMULADO 3 CERTIFICAÇÃO PMP

Análise de Algoritmos

MODELAGEM DE SISTEMAS

PROGRAMAÇÃO FUNÇÕES NA LINGUAGEM C

PESQUISA OPERACIONAL -PROGRAMAÇÃO LINEAR. Prof. Angelo Augusto Frozza, M.Sc.

MATEMÁTICA 32, x

Exemplo 1. Consideremos a equação diferencial. y = x 2 + y 2. (1)

Há vários algoritmos para processar junções nested-loop join block nested-loop join indexed nested-loop join merge-join hash-join

LTDA APES PROF. RANILDO LOPES SITE:

UNIVERSIDADE FEDERAL DO VALE DO SÃO FRANCISCO UNIVASF SECRETARIA DE TECNOLOGIA DA INFORMAÇÃO STI DEPARTAMENTO DE SISTEMAS DE INFORMAÇÕES

MA12 - Unidade 12. Paulo Cezar Pinto Carvalho. 28 de Abril de 2013 PROFMAT - SBM

Regras para evitar ciclagem

Administração e Optimização de BDs

Resolução de problemas com apenas restrições lineares de igualdade

Oracle Database 12c: Introdução ao SQL Ed. 2

O Laboratório de Triagem Neonatal. Roberto Vagner Puglia Ladeira Núcleo de Ações e Pesquisa em Apoio Diagnóstico da Faculdade de Medicina da UFMG

Ex. 1) Considere que a árvore seguinte corresponde a uma parte do espaço de estados de um jogo de dois agentes: f=7 f=7 f=1 f=2

CÁLCULO I Prof. Edilson Neri Júnior Prof. André Almeida

Profiler. Criando uma trace para análise de performance de um servidor SQL Server

CÁLCULO NUMÉRICO. Profa. Dra. Yara de Souza Tadano.

Otimização Aplicada à Engenharia de Processos

ENG1000 Introdução à Engenharia

Problema de designação

DESCOBRINDO AS FORMAS DA ÁGUA

Administração de. José Antônio da Cunha CEFET-RN

S U B G R U P O S D M L E D Q L : A L T E R A N D O E A P A G A N D O D A D O S E M U M A T A B E L A

AULA 07 Distribuições Discretas de Probabilidade

Sistemas de Apoio à Decisão

SOLUÇÕES. Fichas de Trabalho de Apoio. FT Apoio 7 ; ; 5.1. [ 30, [ ); 5.2. [, 2[ ; 8.6. FT Apoio 8. 2 e 1; 3.2. por exemplo: 3 ou.

Busca Competitiva. Inteligência Artificial. Até aqui... Jogos vs. busca. Decisões ótimas em jogos 9/22/2010

Métodos de Ordenação Parte 3

HORÁRIO DE PROVAS 1º semestre 2012

Listas. CIC/UFRGS INF Fundamentos de Algoritmos 2006/1

Acesso ao Sistema Usuário: MASTER Senha : MASTER (maiúsculo ou minúsculo)

ORIENTAÇÕES PARA ELABORAÇÃO DE RELATÓRIO DE CONCLUSÃO DE ESTÁGIO

Processamento da Consulta. Processamento da Consulta

SEXO POPULAÇÃO AMOSTRA

Notas sobre a Fórmula de Taylor e o estudo de extremos

Transcrição:

Sistemas de Produção Reativos e Algoritmo de Rete Profa. Josiane Patrick Henry Winston Artificial Intelligence 3ª edição cap. 7 agosto/2008 1

Sistemas de Produção Reativos As regras são da forma: Se condição então ação A ação pode inserir uma nova asserção na MT, ou apagar uma asserção eistente, ou eecutar algum outro procedimento. Três fases: Casamento Resolução de conflitos e Eecução

BAGGER: Um Sistema Reativo Objetivo: empacotar gêneros alimentícios em uma mercearia BAGGER: decide onde cada item deve ir (em qual sacola) BAGGER foi projetado para fazer 4 passos: Checar: analisa o que o cliente selecionou, verifica se algum item está faltando e sugere o item para o cliente. Empacotar itens grandes: tomando cuidado para colocar as garrafas grandes primeiro. Empacotar itens médios: tomando cuidado para colocar os item congelados em sacolas térmicas. Empacotar itens pequenos

BAGGER: Um Sistema Reativo Conteúdo da MT Suponha que a MT tenha o seguinte conhecimento sobre os itens que devem ser empacotados: item tipo de embalagem tamanho congelado? Pão saco plástico médio não macarrão inst. pote pequeno não Granola caia grande não Sorvete pote médio sim Batata Chips saco plástico médio não Pepsi garrafa grande não

BAGGER: Um Sistema Reativo Regras A memória de trabalho contém a asserção que identifica o passo Cada regra de BAGGER identifica o passo B1 é disparada somente quando o passo é checar B1 Se Passo = checar empacotar(batata-chips) não eiste empacotar(pepsi) então pergunte ao cliente se ele gostaria de uma garrafa de Pepsi, em caso de aceite, inserir( empacotar(pepsi) ) B2 muda o passo para empacotar-itens-grandes B2 Se Passo = checar então apagar (Passo = checar) inserir (Passo = empacotar-itens-grandes) B2 pode evitar que B1 faça o seu trabalho? Não se a estratégia de resolução de conflitos ordenar as regras

BAGGER: Um Sistema Reativo Regras B3 e B4 são regras para empacotar-itens-grandes B3 Se Passo = empacotar-itens-grandes empacotar() tamanho() = grande embalagem() = garrafa sacola-corrente(s) quantidade-itens(s) < 6 então apagar( empacotar() ) inserir( em(, S) ) B4 Se Passo = empacotar-itens-grandes empacotar() tamanho() = grande sacola-corrente(s) quantidade-itens(s) < 6 então apagar( empacotar() ) inserir( em(, S) )

BAGGER: Um Sistema Reativo Regras B5 muda de sacola B5 Se Passo = empacotar-itens-grandes empacotar() tamanho() = grande pegar(sacola-vazia) então apagar( sacola-corrente(s) ) inserir( sacola-corrente(sacola-vazia) ) B6 muda o passo para empacotar-itens-médios B6 Se Passo = empacotar-itens-grandes então apagar(passo = empacotar itens grandes) inserir(passo = empacotar-itens-médios)

BAGGER: Um Sistema Reativo Regras B7 e B8 são regras para empacotar-itens-médios B7 Se Passo = empacotar-itens-médios empacotar() tamanho() = médio congelado() pegar(sacola-térmica) então apagar( empacotar() ) inserir( em(, Sacola-térmica) ) B8 Se Passo = empacotar-itens-médios empacotar() tamanho() = médio sacola-corrente(s) ( vazia(s) ou para todo pertencente a relação em(, S), tamanho() = médio ) quantidade-itens(s) < 12 então apagar( empacotar() ) inserir( em(, S) )

BAGGER: Um Sistema Reativo Regras B9 muda de sacola B9 Se Passo = empacotar-itens-médios empacotar() tamanho() = médio pegar(sacola-vazia) então apagar( sacola-corrente(s) ) inserir( sacola-corrente(sacola-vazia) ) B10 muda o passo para empacotar-itens-pequenos B10 Se Passo = empacotar-itens-médios então apagar(passo = empacotar-itens-médios) inserir(passo = empacotar-itens-pequenos)

BAGGER: Um Sistema Reativo Regras B11 empacota itens pequenos B11 Se Passo = empacotar-itens-pequenos empacotar() tamanho() = pequeno sacola-corrente(s) ( vazia(s) ou para todo pertencente a relação em(, S), tamanho() = pequeno) quantidade-itens(sacola-corrente) < 18 então apagar( empacotar() ) inserir( em(, S) ) B12 muda de sacola B12 Se Passo = empacotar-itens-pequenos empacotar() tamanho() = pequeno pegar(sacola-vazia) então apagar( sacola-corrente(s) ) inserir( sacola-corrente(sacola-vazia) )

BAGGER: Um Sistema Reativo Regras B13 termina o empacotamento B13 Se Passo = empacotar-itens-pequenos então apagar(passo = empacotar-itens-pequenos) inserir(passo = terminado)

BAGGER: Um Sistema Reativo Conteúdo da MT Suponha que a MT tenha o seguinte conhecimento sobre os o passo, a sacola corrente e sobre os itens que devem ser empacotados: Passo = checar sacola-corrente(s1) empacotar(pão) empacotar(macarrão-instantâneo) empacotar(granola) empacotar(sorvete) empacotar(batata-chips)

BAGGER: Um Sistema Reativo Funcionamento 1º Ciclo: Regras habilitadas: B1 e B2 Regras disparadas: B1 (pela ordem) sugerir ao cliente Nova MT: (supondo que o cliente aceitou a sugestão da Pepsi) Passo = checar sacola-corrente(s1) empacotar(pão) empacotar(macarrão-instantâneo) empacotar(granola) empacotar(sorvete) empacotar(batata-chips) empacotar(pepsi)

BAGGER: Um Sistema Reativo Funcionamento 2º Ciclo: Regras habilitadas: B2 Regras disparadas: B2 mudar o passo Nova MT: sacola-corrente(s1) empacotar(pão) empacotar(macarrão-instantâneo) empacotar(granola) empacotar(sorvete) empacotar(batata-chips) empacotar(pepsi) Passo = empacotar-itens-grandes

BAGGER: Um Sistema Reativo Funcionamento 3º Ciclo: Regras habilitadas: B3, B4, B5 e B6 Regras disparadas: B3 (pela ordem) empacotar garrafas primeiro Unificação = {/pepsi} Nova MT: sacola-corrente(s1) empacotar(pão) empacotar(macarrão-instantâneo) empacotar(granola) empacotar(sorvete) empacotar(batata-chips) Passo = empacotar-itens-grandes em(pepsi, s1)

BAGGER: Um Sistema Reativo Funcionamento 4º Ciclo: Regras habilitadas: B4, B5 e B6 Regras disparadas: B4 (pela ordem) empacotar outros itens grandes Unificação = {/granola} Nova MT: sacola-corrente(s1) empacotar(pão) empacotar(macarrão-instantâneo) empacotar(sorvete) empacotar(batata-chips) Passo = empacotar-itens-grandes em(pepsi, s1) em(granola, s1)

BAGGER: Um Sistema Reativo Funcionamento 5º Ciclo: Regras habilitadas: B6 Regras disparadas: B6 mudar o passo Nova MT: sacola-corrente(s1) empacotar(pão) empacotar(macarrão-instantâneo) empacotar(sorvete) empacotar(batata-chips) em(pepsi, s1) em(granola, s1) Passo = empacotar-itens-médios

BAGGER: Um Sistema Reativo Funcionamento 6º Ciclo: Regras habilitadas: B7, B8, B9, B10 Regras disparadas: B7 (pela ordem) empacotar itens congelados primeiro Unificação {/sorvete, Sacola-térmica/st1} Nova MT: sacola-corrente(s1) empacotar(pão) empacotar(macarrão-instantâneo) empacotar(batata-chips) em(pepsi, s1) em(granola, s1) Passo = empacotar-itens-médios em(sorvete, st1)

BAGGER: Um Sistema Reativo Funcionamento 7º Ciclo: Regras habilitadas: B9, B10 Regras disparadas: B9 (pela ordem) mudar de sacola Unificação {/pão, S/s1, Sacola-vazia/s2} Nova MT: empacotar(pão) empacotar(macarrão-instantâneo) empacotar(batata-chips) em(pepsi, s1) em(granola, s1) Passo = empacotar-itens-médios em(sorvete, st1) sacola-corrente(s2)

BAGGER: Um Sistema Reativo Funcionamento 8º Ciclo: Regras habilitadas: B8, B9, B10 Regras disparadas: B8 (pela ordem) empacotar outros itens médios Unificação {/pão, S/s2} Nova MT: empacotar(macarrão-instantâneo) empacotar(batata-chips) em(pepsi, s1) em(granola, s1) Passo = empacotar-itens-médios em(sorvete, st1) sacola-corrente(s2) em(pão, s2)

BAGGER: Um Sistema Reativo Funcionamento 9º Ciclo: Regras habilitadas: B8, B9, B10 Regras disparadas: B8 (pela ordem) empacotar outros itens médios Unificação {/batata-chips, S/s2} Nova MT: empacotar(macarrão-instantâneo) em(pepsi, s1) em(granola, s1) Passo = empacotar-itens-médios em(sorvete, st1) sacola-corrente(s2) em(pão, s2) em(batata-chips, s2)

BAGGER: Um Sistema Reativo Funcionamento 10º Ciclo: Regras habilitadas: B10 Regras disparadas: B10 mudar o passo Nova MT: empacotar(macarrão-instantâneo) em(pepsi, s1) em(granola, s1) em(sorvete, st1) sacola-corrente(s2) em(pão, s2) em(batata-chips, s2) Passo = empacotar-itens-pequenos

BAGGER: Um Sistema Reativo Funcionamento 11º Ciclo: Regras habilitadas: B12, B13 Regras disparadas: B12 (pela ordem) mudar a sacola Unificação = {/macarrão-instantâneo, Sacola-vazia/s3, S/s2} Nova MT: empacotar(macarrão-instantâneo) em(pepsi, s1) em(granola, s1) em(sorvete, st1) em(pão, s2) em(batata-chips, s2) Passo = empacotar-itens-pequenos sacola-corrente(s3)

BAGGER: Um Sistema Reativo Funcionamento 12º Ciclo: Regras habilitadas: B11, B12, B13 Regras disparadas: B11 (pela ordem) empacotar itens pequenos Unificação = {/macarrão-instantâneo, S/s3} Nova MT: em(pepsi, s1) em(granola, s1) em(sorvete, st1) em(pão, s2) em(batata-chips, s2) Passo = empacotar-itens-pequenos sacola-corrente(s3) em(macarrão-instantâneo, s3)

BAGGER: Um Sistema Reativo Funcionamento 13º Ciclo: Regras habilitadas: B13 Regras disparadas: B13 - terminar Nova MT: em(pepsi, s1) em(granola, s1) em(sorvete, st1) em(pão, s2) em(batata-chips, s2) sacola-corrente(s3) em(macarrão-instantâneo, s3) Passo = terminado

BAGGER: Um Sistema Reativo Funcionamento 14º Ciclo: Regras habilitadas: nenhuma Regras disparadas: nenhuma MT Final: em(pepsi, s1) em(granola, s1) em(sorvete, st1) em(pão, s2) em(batata-chips, s2) sacola-corrente(s3) em(macarrão-instantâneo, s3) Passo = terminado

Fase de Casamento (match) Casamento O sistema, em cada ciclo, computa o subconjunto de regras no qual os antecedentes são satisfeitos pelo conteúdo atual da memória de trabalho

Eemplo da fase de casamento Cavalos de corrida Conteúdo da MT: é-um cavalo é-um cavalo é-pai-de é-pai-de é rápido é-pai-de Thunder Thunder é rápido Thunder é-um cavalo é-um cavalo Regra para estabelecer se um cavalo é valioso: se? é-um cavalo? é-pai-de?y?y é rápido então? é valioso

Eemplo da fase de casamento com encadeamento para frente? é-um cavalo Thunder

Eemplo da fase de casamento com encadeamento para frente? é-um cavalo Thunder? é-pai-de?y y y

Eemplo da fase de casamento com encadeamento para frente? é-um cavalo Thunder? é-pai-de?y y y?y é rápido

Eemplo da fase de casamento com encadeamento para frente? é-um cavalo Thunder? é-pai-de?y y y?y é rápido y

Eemplo da fase de casamento com encadeamento para frente? é-um cavalo Thunder? é-pai-de?y y y?y é rápido y

Eemplo da fase de casamento com encadeamento para frente? é-um cavalo Thunder? é-pai-de?y y y?y é rápido y

Eemplo da fase de casamento com encadeamento para frente? é-um cavalo Thunder? é-pai-de?y y y y Thunder?y é rápido y

Eemplo da fase de casamento com encadeamento para frente? é-um cavalo Thunder? é-pai-de?y y y y Thunder?y é rápido y y Thunder

Eemplo da fase de casamento como operações relacionais Vamos pensar na MT como uma relação: Primeira Segunda Terceira É-um Cavalo É-um Cavalo É-pai-de É-pai-de É Rápido É-pai-de Thunder Thunder É Rápido Thunder É-um Cavalo É-um Cavalo

Eemplo da fase de casamento como operações relacionais Para determinar os valores de? e?y para a regra dos cavalos valiosos Vamos determinar quais os registros da relação que casam com o primeiro antecedente da regra (? é-um cavalo) Isso implica em selecionar os registros nos quais a segunda coluna é igual a é-um e a terceira coluna é igual a cavalo ou SELECT * FROM MT WHERE segunda = é-um AND terceira = cavalo Temos como resultado: Primeira Segunda Terceira É-um Cavalo É-um Cavalo Thunder É-um Cavalo É-um Cavalo

Eemplo da fase de casamento como operações relacionais Queremos saber quais valores casam com?, desta forma estamos interessados nos valores da primeira coluna Isto implica em fazer uma projeção sobre a primeira coluna da relação resultante da seleção SELECT primeira FROM MT Primeira Renomeando ==> Thunder A1 Thunder Poderíamos ter feito diretamente: SELECT primeira FROM MT WHERE segunda= é-um AND terceira= cavalo

Eemplo da fase de casamento como operações relacionais Vamos determinar quais os registros da relação que casam com o segundo antecedente da regra (? é-pai-de?y) SELECT primeira, terceira FROM MT WHERE segunda = é-paide Temos como resultado: A2 Thunder

Eemplo da fase de casamento como operações relacionais Vamos determinar quais os registros da relação que casam com o terceiro antecedente da regra (?y é rápido) SELECT primeira FROM MT WHERE segunda = é AND terceira= rápido Temos como resultado: A3 Thunder

Eemplo da fase de casamento como operações relacionais Agora temos as seguinte relações: A1 Thunder A2 Thunder A3 Thunder E queremos saber quais os valores de? que satisfazem o primeiro e o segundo antecedentes Isto é equivalente a um JOIN entre a relação A1 e A2, resultando em: B1 Thunder

Eemplo da fase de casamento como operações relacionais Agora temos as seguinte relações: B1 Thunder A3 Thunder E queremos saber quais os valores de? que satisfazem o segundo e terceiro antecedentes Isto é equivalente a um JOIN entre a relação A3 e B1, resultando em: B2 Thunder

Eemplo da fase de casamento como operações relacionais Como o consequente da regra diz respeito somente a?: B2 Isto significa que tanto quanto são valiosos. Em sistemas dedutivos, as duas instanciações de? podem ser usadas Em sistemas reativos, o procedimento de resolução de conflitos selecionará uma ação

Fase de casamento como operações relacionais Problema: este procedimento ocupa muita computação Se a regra tem n antecedentes, precisamos de: n selects, n projects para produzir as relações A + n-1 joins e n-1 projects para produzir as relações B Se eistir m regras, a cada nova asserção, teremos: mn selects, m(2n-1) projects, m(n-1) joins que são caros Solução: Algoritmo de Rete Os JOINs são eecutados entre uma linha de uma relação e a outra relação, o que diminui o custo de JOINs grandes

Fase de casamento: Algoritmo de Rete Inventado por Dr. Charles Forgy em 1979 Duas partes: Tempo de Compilação Descreve como gerar uma rede de discriminação para as regras da base que possa auiliar a fase de casamento A rede de discriminação é utilizada com um filtro de dados Tempo de Eecução A rede é utilizada para unificar a memória de trabalho com as regras da base de forma mais eficiente

Fase de casamento: Algoritmo de Rete Construção da Rede de Rete Para cada antecedente que aparece no conjunto de regras, crie uma operação de SELECT que eamina novas asserções Para cada regra Para cada antecedente Crie um nó alfa e anee a ele a operação de SELECT correspondente (já criada) Para cada nó alfa eceto o primeiro Crie um nó beta e anee a operação de JOIN correspondente Se o nó beta é o primeiro anee a ele o primeiro e segundo nós alfa Caso contrário, anee ao nó beta o nó alfa correspondente e o nó beta anterior Anee uma a operação de PROJECT correspondente ao nó beta final

SELECT primeira FROM MT WHERE segunda = é-um AND terceira = cavalo SELECT primeira, terceira FROM MT WHERE segunda = é-pai-de SELECT primeira FROM MT WHERE segunda = é AND terceira = rápido A1 A2 A3 B12 Rede de rete para o problema dos cavalos valiosos B23

Fase de casamento: Algoritmo de Rete Uso da Rede de Rete como filtro Para cada asserção, filtre a asserção pelas operações de SELECT, passando a asserção através da rede para os nós alfa associados Para cada nó alfa que recebe uma asserção, use a operação de JOIN passando a asserção através da rede para o nó beta associado Para cada nó beta que recebe uma nova asserção, use a operação de JOIN para propagar as mudanças através da rede para os outros nós beta associados a ele Para cada regra, use a operação de PROJECT para isolar o valor associado à variável correspondente ao consequente da regra

SELECT primeira FROM MT WHERE segunda = é-um AND terceira = cavalo SELECT primeira, terceira FROM MT WHERE segunda = é-pai-de SELECT primeira FROM MT WHERE segunda = é AND terceira = rápido é-um cavalo A1 A2 A3 B12 Funcionamento da Rede de rete para o problema dos cavalos valiosos B23

SELECT primeira FROM MT WHERE segunda = é-um AND terceira = cavalo SELECT primeira, terceira FROM MT WHERE segunda = é-pai-de SELECT primeira FROM MT WHERE segunda = é AND terceira = rápido é-um cavalo A1 A2 A3 B12 Funcionamento da Rede de rete para o problema dos cavalos valiosos B23

SELECT primeira FROM MT WHERE segunda = é-um AND terceira = cavalo SELECT primeira, terceira FROM MT WHERE segunda = é-pai-de SELECT primeira FROM MT WHERE segunda = é AND terceira = rápido é-pai-de A1 A2 A3 B12 Funcionamento da Rede de rete para o problema dos cavalos valiosos B23

SELECT primeira FROM MT WHERE segunda = é-um AND terceira = cavalo SELECT primeira, terceira FROM MT WHERE segunda = é-pai-de SELECT primeira FROM MT WHERE segunda = é AND terceira = rápido é-pai-de A1 A2 A3 B12 Funcionamento da Rede de rete para o problema dos cavalos valiosos B23

SELECT primeira FROM MT WHERE segunda = é-um AND terceira = cavalo SELECT primeira, terceira FROM MT WHERE segunda = é-pai-de SELECT primeira FROM MT WHERE segunda = é AND terceira = rápido é rápido A1 A2 A3 B12 Funcionamento da Rede de rete para o problema dos cavalos valiosos B23

SELECT primeira FROM MT WHERE segunda = é-um AND terceira = cavalo SELECT primeira, terceira FROM MT WHERE segunda = é-pai-de SELECT primeira FROM MT WHERE segunda = é AND terceira = rápido é-pai-de Thunder A1 A2 A3 Thunder B12 Funcionamento da Rede de rete para o problema dos cavalos valiosos B23

SELECT primeira FROM MT WHERE segunda = é-um AND terceira = cavalo SELECT primeira, terceira FROM MT WHERE segunda = é-pai-de SELECT primeira FROM MT WHERE segunda = é AND terceira = rápido Thunder é rápido A1 A2 A3 Thunder Thunder B12 Funcionamento da Rede de rete para o problema dos cavalos valiosos B23

SELECT primeira FROM MT WHERE segunda = é-um AND terceira = cavalo SELECT primeira, terceira FROM MT WHERE segunda = é-pai-de SELECT primeira FROM MT WHERE segunda = é AND terceira = rápido Thunder é-um cavalo A1 A2 A3 Thunder Thunder Thunder B12 Funcionamento da Rede de rete para o problema dos cavalos valiosos B23

SELECT primeira FROM MT WHERE segunda = é-um AND terceira = cavalo SELECT primeira, terceira FROM MT WHERE segunda = é-pai-de SELECT primeira FROM MT WHERE segunda = é AND terceira = rápido é-um cavalo A1 A2 A3 Thunder Thunder Thunder Thunder B12 Funcionamento da Rede de rete para o problema dos cavalos valiosos B23 Thunder

SELECT primeira FROM MT WHERE segunda = é-um AND terceira = cavalo SELECT primeira, terceira FROM MT WHERE segunda = é-pai-de SELECT primeira FROM MT WHERE segunda = é AND terceira = rápido é-um cavalo A1 A2 A3 Thunder Thunder Thunder Thunder B12 Funcionamento da Rede de rete para o problema dos cavalos valiosos B23 Thunder

Algoritmo de Rete

Fase de Resolução de conflitos Estratégias para resolução de conflitos entre as regras disparadas Ordenação das regras: Ordenar as regras em uma lista de prioridade, eecutar aquela com maior prioridade Ordenação de tamanho: eecutar a regra tem o maior número de antecedentes Ordenação de dados: Ordenar as asserções por prioridade, eecutar a regra que casa com a asserção de maior prioridade Refração: não eecutar a mesma regra com os mesmos argumentos duas vezes Recência: dar preferência as regras que se referem a elementos da MT criados recentemente (simula o foco de atenção do discurso) Especificidade: dar preferência as regras que são mais específicas Outras

Eercício Mostre os quatro (4) primeiros ciclos de operação do sistema de produção a seguir (se possível) listando: i) o Ciclo; ii) as Regras satisfeitas; ii) a Regra escolhida em cada ciclo e iv) a nova memória de trabalho.?,?y e?z são variáveis e os outros termos são constantes. A estratégia de resolução de conflitos: Escolher a regra com o maior número de precondições Nenhuma regra pode ser usada mais de uma vez com o mesmo conjunto de variáveis atribuídas Se ainda houver conflito entre as regras, a última regra satisfeita deve ser aplicada. P() significa que P() não pode estar na MT

Eercício Regras: (R1) IF P(?,?y) Q(?, a,?z) Q(?z, a,?z) THEN assert R(?) retract Q(?, a,?z) (R2) IF R(?) Q(?,?y,?z) THEN retract R(?) (R3) IF P(f(?),?y)??y Q(f(?w),?w, f(?z))?y?z THEN print SUCCESS! (R4) IF R(?) THEN assert Q(f(?),?, f(?)) Memoria de Trabalho inicial: P(f(1), 2) Q(f(1), a, f(1)) R(f(1)) P(3, f(4)) Q(4, a, 3) P(4, 4)