Buscar

22-Sistemas_de_Producao

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 86 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 86 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 86 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

SISTEMAS DE PRODUÇÃO 
 
 
Patrick Henry Winston 
“Artificial Intelligence” – 3ª ed. – cap. 7 
1 
REGRAS DE PRODUÇÃO 
2 
l  Inventada em 1943 por Post 
 
l  Usa regra formada por pares de condição-ação 
se condição (ou premissa ou antecedente) ocorre; 
então ação (resultado, conclusão ou consequente) ocorre 
 
l  Podem ser vistas como uma simulação do comportamento cognitivo de 
especialistas humanos 
 
l  Representam o conhecimento de forma modular 
 
l  Cada regra representa um “pedaço” de conhecimento independente 
(mas a consistência deve ser mantida) 
 
l  Exemplo: 
 se o sinal está vermelho e os carros estão parados 
 então você pode atravessar a rua 
SISTEMAS DE PRODUÇÃO 
3 
l  São sistemas baseados em regras de produção 
 
l  Características: 
l  Separam o conhecimento permanente do conhecimento temporário (base 
de regras e memória de trabalho) 
 
l  Seus módulos são estruturalmente independentes 
 
l  Sua modularidade facilita a independência funcional 
 
l  Podem utilizar uma variedade de esquemas de controle 
 
l  Regras de produção X Máquina de Turing 
l  Os sistema de produção têm o mesmo poder de uma máquina de Turing 
(i.e. podem representar tudo que é computável) 
SISTEMAS DE PRODUÇÃO 
COMPONENTES 
4 
: consiste em uma coleção de assertivas 
 
: consiste de conjunto de sentenças (regras 
de inferência) que determinam as ações (consequentes) que 
devem ser tomadas de acordo com as percepções 
(antecedentes) 
p1 ∧ p2 ∧ … ⇒ act1 ∧ act2 ∧ … 
 
: é a parte do sistema que determina o 
método de raciocínio, utiliza estratégias de busca e resolve 
conflitos 
SISTEMAS DE PRODUÇÃO 
COMPONENTES 
5 
TIPOS DE SISTEMAS DE PRODUÇÃO 
 
l  : se antecedente então consequente 
l  Todas as regras que estão habilitadas podem disparar gerando novas 
asserções na memória de trabalho 
 
 
l  : se condição então ação 
l  Exemplo: 
l  se custo < 10 então “Coloque o item na sacola” 
l  Quando mais de uma regra está habilitada, normalmente somente uma 
das ações é desejada 
l  Deve existir uma forma de resolver os conflitos entre as diferentes regras 
que estejam habilitadas em cada ciclo 
SISTEMAS DE PRODUÇÃO 
FUNCIONAMENTO GERAL 
7 
l  O sistema examina todas os antecedentes das regras baseado na 
memória de trabalho para determinar o subconjunto de 
 (aquelas que tiveram seu precedente/condições satisfeitos) 
 
l  O sistema dispara a(s) regra(s) do subconjunto que foram habilitada(s): 
 
l  Em sistemas todas as regras são disparadas 
 
l  Em sistemas este subconjunto é denominado conjunto de conflito e 
somente uma das regras é disparada 
l  A regra disparada é escolhida de acordo com uma 
 
 
l  O(s) consequente(s) da(s) regra(s) são executados 
l  Estas ações podem modificar a memória de trabalho, ou a base de regras, 
executar qualquer tarefa externa ao sistema. 
 
l  O loop de disparar regras e executar ações continua até que 
l  Nenhuma regra que pode ser habilitada ou 
l  Uma ação determine que o programa deve parar 
ZOOKEEPER: Um Sistema Dedutivo que Identifica 
Animais 
l  Características do ZOOKEEPER: 
l  Utiliza regras sem antecedentes longos 
 
l  Gera assertivas intermediárias como saídas das regras 
 
l  Combina estas assertivas e aquelas originais para produzir uma 
conclusão 
 
l  Observa hábitos e características físicas para identificar os animais 
 
l  Neste exemplo, pode distinguir quatro animais: leopardo, tigre, girafa 
e zebra. 
 
Regras do ZOOKEEPER 
Regra Z1 
 se ?x tem cabelo 
 então ?x é um mamífero 
l Regra que observa características físicas. 
 
Regra Z2 
 se ?x dá leite 
 então ?x é um mamífero 
 
l Regra que determina a classe biológica dos animais, onde Z2 
observa hábitos. 
 
Regras do ZOOKEEPER 
Regra Z3 
 se ?x é um mamífero 
 ?x come carne 
 então ?x é um carnívoro 
 
Regra Z4 
 se ?x é um mamífero 
 ?x tem dentes pontudos 
 ?x tem garras 
 ?x tem olhos pontiagudos 
 então ?x é um carnívoro 
 
l As regras determinam se o animal é carnívoro. 
 
l Z3 observa hábitos e Z4 observa características físicas. 
 
l Estas regras já utilizam assertivas geradas por regras anteriormente 
definidas 
Regras do ZOOKEEPER 
Regra Z5 
 se ?x é um mamífero 
 ?x tem cascos 
 então ?x é um ungulado 
 
Regra Z6 
 se ?x é um mamífero 
 ?x rumina 
 então ?x é um ungulado 
 
l As regras determinam se o animal é ungulado 
l Z5 observa características físicas e Z6 observa hábitos 
Regras do ZOOKEEPER 
Regra Z7 
 se ?x é um carnívoro 
 ?x tem cor amarela tostada 
 ?x tem manchas escuras 
 então ?x é um leopardo 
 
Regra Z8 
 se ?x é um carnívoro 
 ?x tem cor amarela tostada 
 ?x tem listas pretas 
 então ?x é um tigre 
l Regras para identificar os animais carnívoros 
Regras do ZOOKEEPER 
Regra Z9 
 se ?x é um ungulado 
 ?x tem pernas longas 
 ?x tem pescoço comprido 
 ?x tem cor amarela tostada 
 ?x tem manchas escuras 
 então ?x é uma girafa 
 
Regra Z10 
 se ?x é um ungulado 
 ?x tem cor branca 
 ?x tem listas pretas 
 então ?x é uma zebra 
l Regras para identificar os animais ungulados. 
 
Encadeamento para-frente no 
ZOOKEEPER 
l  Para identificar um animal com o ZOOKEEPER repita: 
 
para cada regra 
tente casar cada um dos antecedentes das regras com os fatos 
conhecidos 
se todos os antecedentes de regras estão casados (regra 
habilitada), 
 então execute o consequente, a menos que já exista uma 
assertiva idêntica 
repita para todas as alternativas de casamento e instanciações 
 
l  Até as regras não produzirem novas assertivas ou 
l  Até o animal ser identificado 
Memória de trabalho para o Zookeeper: exemplo 
l  Catatau tem cabelo 
 
l  Catatau rumina 
 
l  Catatau tem pernas longas 
 
l  Catatau tem cor amarela tostada 
 
l  Catatau tem pescoço comprido 
 
l  Catatau tem manchas escuras 
 
Classificar Catatau – encadeamento para-
frente 
l  Verificar que tipo de animal é Catatau 
 
l  : 
 
l  Catatau tem cabelo, logo é um mamífero (dispara Z1) 
 
l  Catatau rumina e é um mamífero, logo é um ungulado (dispara Z6) 
 
l  Catatau é um ungulado, tem pernas longas, tem cor amarela tostada, tem 
pescoço comprido e tem manchas escuras, logo é uma girafa (dispara 
Z9) 
Encadeamento para-frente 
l  O fluxo de informações se dá através de uma série de regras 
antecedente-consequente, a partir das assertivas para as conclusões 
 
 
 
 
 
 
 
 
 
 
 
 
l  Exemplo: problema de diagnosticar uma doença com base nos 
sintomas (memória de trabalho) 
Encadeamento para-trás 
l  Para identificar um animal com o ZOOKEEPER repita: 
 
para cada hipótese 
para cada regra que o consequente case com a hipótese corrente 
tente suportar cada um dos antecedentes da regra com os fatos da memória 
de trabalho ou por encadeamento para-trás por meio de outra regra 
criando uma nova hipótese. 
tenha certeza de testar todas as alternativas de casamentos e instanciações. 
se todos os antecedentes da regra são suportados, 
então conclua que a hipótese é verdadeira. 
l  Até que todas as hipóteses tenham sido testadas e nenhuma 
delas tenha sido suportada ou 
l  Até que o animal ser identificado. 
Encadeamento para-trás 
l  Devemos formular uma hipótese e usar as regras antecedente-
consequente de trás para frente para suportá-la 
 
l  Por exemplo, com a mesma base de regras o ZOOKEEPER pode 
formular a hipótese h = “Catatau é uma zebra” 
 
l  Para verificar h devemos considerar a regra Z10, que requer queCatatau 
seja um ungulado, tem cor branca e listas pretas. 
 
l  Devemos checar se Catatau é um ungulado. Como a memória de trabalho 
não suporta este fato, então formulamos h1 = “Catatau é um ungulado”. 
 
l  Podemos utilizar Z5 e Z6 para provar h1. Utilizando Z5, devemos checar se 
Catatau é um mamífero e tem cascos. 
 
l  Devemos checar se Catatau é um mamífero. Mas a memória de trabalho não 
suporta este fato. Então formulamos h2 = “Catatau é um mamífero”. 
Encadeamento para-trás 
l  Podemos utilizar Z1 e Z2 para provar h2. Utilizando Z1, a regra requer 
que Catatau tenha cabelo. 
 
l  De acordo com a memória de trabalho, Catatau tem cabelo, então h2 é 
verdadeira. Catatau é um mamífero. Voltamos então para a regra Z5. 
 
l  Z5 requer que Catatau seja um mamífero e tenha cascos para ser um 
ungulado, mas a memória de trabalho não suporta este fato. 
 
l  Então, não podemos utilizar Z5 para provar h1. Vamos tentar Z6, que 
requer que Catatau seja um mamífero e rumine para ser um ungulado. 
 
l  Acabamos de provar h2 = “Catatau é um mamífero”. De acordo com a 
memória de trabalho, Catatau rumina. Então h1 é verdadeira. Catatau é 
um ungulado. Voltamos para a regra Z10. 
Encadeamento para-trás 
l  Z10 requer que Catatau seja um ungulado, tenha cor branca e listas pretas, 
para ser uma zebra (h). 
 
l  Os fatos “tem cor branca” e “tem listas pretas” não fazem parte da memória 
de trabalho e nenhuma regra da base de regras tem este fato como 
consequente. 
 
l  Então concluímos que h não pode ser provada, e uma nova hipótese deve ser 
formulada e testada. 
 
l  Encadeamento para-trás é utilizado quando um objetivo é 
especificado e devemos encontrar uma forma de alcançá-lo 
 
l  Ex: Se existe uma epidemia de certa doença, podemos supor que o indivíduo 
tem a doença e tentar determinar se o diagnóstico está correto baseados 
nas informações disponíveis. 
Qual direção escolher? 
l  Uma comparação entre o número de antecedentes e 
consequentes das regras da base pode ajudar a determinar a 
direção do encadeamento 
l  Se, na média, as regras tem mais antecedentes do que consequentes, uma 
hipótese pode levar a muitas outras hipóteses, então é melhor fazer 
encadeamento para-frente. 
l  Se, ao contrário, as regras tem mais consequentes do que antecedentes, 
cada fato determina muitos novos fatos ou ações, então é melhor usar 
encadeamento para-trás 
 
l  Se nenhum dos dois é dominante, então o objetivo do sistema 
pode ajudar na decisão de qual direção usar no encadeamento 
l  Se o propósito do sistema é encontrar até onde a informações da 
memória de trabalho pode nos conduzir, é melhor usar encadeamento 
para-frente 
l  Se o objetivo é encontrar se uma das possíveis conclusões é verdadeira, é 
melhor usar encadeamento para-trás 
SISTEMAS DE PRODUÇÃO 
O ALGORITMO DE RETE E UM EXEMPLO DE SISTEMA 
REATIVO 
 
 
Patrick Henry Winston 
“Artificial Intelligence” – 3ª edição – cap. 7 
 
 
 
23 
Fase de Casamento (match) 
24 
l  Fase que tem custo computacional muito alto com encadeamento 
para frente: 
l  Examina todos os antecedentes de cada regra para determinar o subconjunto 
de regras no qual os antecedentes são satisfeitos pelo conteúdo atual da 
memória de trabalho; 
 
l  Faz unificações das variáveis das regras com o conteúdo da memória de 
trabalho para verificar se os antecedentes das regras são satisfeitos; 
 
l  Alguns melhoramentos podem ser feitos para diminuir este custo. 
Diminuindo o custo da fase de casamento (match) 
25 
l  Dentre as regras que estavam habilitadas no último ciclo, 
somente aquelas que estão relacionadas a fatos que foram 
retirados da MT podem não estar habilitadas no ciclo atual. 
 
l  Dentre as regras que tiveram seus antecedentes parcialmente 
satisfeitos no último ciclo, somente as regras possuem 
antecedentes relacionados com a informação que pode ter 
sido acrescentada à MT podem ser habilitadas em um novo 
ciclo. 
 
l  As unificações podem ser retidas de um ciclo para outro, 
examinando-se apenas aquelas referentes às modificações 
feitas na MT pelo último ciclo. 
Exemplo da fase de casamento 
Cavalos de corrida 
26 
l  Conteúdo da MT: 
l  Comet é-um cavalo 
l  Pracer é-um cavalo 
l  Comet é-pai-de Dasher 
l  Comet é-pai-de Pracer 
l  Pracer é rápido 
l  Dasher é-pai-de Thunder 
l  Thunder é rápido 
l  Thunder é-um cavalo 
l  Dasher é-um cavalo 
Exemplo da fase de casamento 
Cavalos de corrida 
27 
l  Regra para estabelecer se um cavalo é valioso: 
 
 se ?x é-um cavalo e 
 ?x é-pai-de ?y e 
 ?y é rápido 
 então ?x é valioso 
 
Exemplo da fase de casamento com 
encadeamento para frente 
28 
x Comet Pracer x Thunder x Dasher x 
y Dasher 
x Comet 
y Pracer 
x Comet 
y Thunder 
x Dasher 
y Pracer 
x Comet 
y Thunder 
x Dasher 
x x 
x ?y é rápido 
?x é-pai-de ?y 
?x é-um cavalo 
Exemplo da fase de casamento como operações 
relacionais 
29 
l  Vamos pensar na MT como uma relação: 
Primeira Segunda Terceira
Comet É-um Cavalo
Pracer É-um Cavalo
Comet É-pai-de Dasher
Comet É-pai-de Pracer
Pracer É Rápido
Dasher É-pai-de Thunder
Thunder É Rápido
Thunder É-um Cavalo
Dasher É-um Cavalo
Exemplo da fase de casamento como operações 
relacionais 
30 
l  Para determinar os valores de ?x e ?y para a regra dos cavalos 
valiosos 
l  Vamos determinar quais os registros da relação que casam com o 
primeiro antecedente da regra (?x é-um cavalo). 
l  Isso implica em selecionar os registros nos quais a segunda coluna é igual 
a é-um e a terceira coluna é igual a cavalo ou 
 
l  Temos como resultado: 
Primeira Segunda Terceira
É-um Cavalo
É-um Cavalo
É-um Cavalo
É-um Cavalo
Comet
Pracer
Thunder
Dasher
Exemplo da fase de casamento como operações 
relacionais 
31 
l  Queremos saber quais valores casam com ?x, desta forma 
estamos interessados nos valores da primeira coluna. 
l  Isto implica em fazer uma projeção sobre a primeira coluna da 
relação resultante da seleção: 
 
 
 
 
 
l  Poderíamos ter feito diretamente: 
 
Primeira
Renomeando ==>
Comet
Pracer
Thunder
Dasher
A1 X
Comet
Pracer
Thunder
Dasher
Exemplo da fase de casamento como operações 
relacionais 
32 
l  Vamos determinar quais os registros da relação que casam com 
o segundo antecedente da regra (?x é-pai-de ?y) 
l  Temos como resultado: 
A2 X Y
Comet Dasher
Comet Pracer
Dasher Thunder
Exemplo da fase de casamento como operações 
relacionais 
33 
l  Vamos determinar quais os registros da relação que casam com 
o terceiro antecedente da regra (?y é rápido)
l  Temos como resultado: 
A3 Y
Pracer
Thunder
Exemplo da fase de casamento como operações 
relacionais 
34 
l  Agora temos as seguinte relações: 
 
 
 
 
l  E queremos saber quais os valores de ?x que satisfazem o 
primeiro e o segundo antecedentes 
l  Isto é equivalente a um JOIN entre a relação A1 e A2, resultando em: 
A1 X
Comet
Pracer
Thunder
Dasher
A2 X Y
Comet Dasher
Comet Pracer
Dasher Thunder
A3 Y
Pracer
Thunder
B1 X Y
Comet Dasher
Comet Pracer
Dasher Thunder
Exemplo da fase de casamento como operações 
relacionais 
35 
l  Agora temos as seguinte relações: 
 
 
 
 
l  E queremos saber quais os valores de ?y que satisfazem o 
segundo e terceiro antecedentes 
l  Isto é equivalente a um JOIN entre a relação A3 e B1, resultando em: 
B1 X Y
Comet Dasher
Comet Pracer
Dasher Thunder
A3 Y
Pracer
Thunder
B2 X Y
Comet Pracer
Dasher Thunder
Exemplo da fase de casamento comooperações 
relacionais 
36 
l  Como o consequente da regra diz respeito somente a ?x: 
 
 
 
 
l  Isto significa que tanto Comet quanto Dasher são valiosos. 
 
 
 
 
B2 X
Comet
Dasher
Fase de casamento como operações relacionais 
37 
l  : este procedimento ocupa muita computação. 
l  Se a regra tem n antecedentes, precisamos de: 
l  n SELECTS, n PROJECTS para produzir as relações A e 
l  n-1 JOINS e n-1 PROJECTS para produzir as relações B. 
l  Se existir m regras, a cada nova asserção, teremos: 
l  mn SELECTS, m(2n-1) PROJECTS, m(n-1) JOINS – que são caros. 
 
: Algoritmo de Rete 
l  Os JOINs são executados entre uma linha de uma relação e a outra 
relação, o que diminui o custo de JOINs grandes. 
Algoritmo de Rete 
38 
l  Inventado por Dr. Charles Forgy em 1979. 
 
l  Duas partes: 
: 
l  Descreve como gerar uma rede de discriminação para as regras da base 
que possa auxiliar a fase de casamento. 
 
l  A rede de discriminação é utilizada com um “filtro de dados”. 
 
: 
l  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 
39 
Para cada antecedente que aparece no conjunto de regras, crie uma 
operação de SELECT que examina novas asserções 
Para cada regra 
 Para cada antecedente 
 Crie um nó alfa e anexe a ele a operação de SELECT 
 correspondente (já criada) 
 Para cada nó alfa exceto o primeiro 
 Crie um nó beta e anexe a operação de JOIN correspondente 
 Se o nó beta é o primeiro anexe a ele o primeiro e segundo nós 
 alfa 
 senão, anexe ao nó beta o nó alfa correspondente e o nó beta 
 anterior 
Anexe uma a operação de PROJECT correspondente ao nó beta final 
40 
Fase de casamento: Algoritmo de Rete - Uso da 
rede de Rete como filtro 
41 
¨  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 
42 
43 
44 
45 
46 
47 
48 
49 
50 
Exemplo de rede de Rete para mais de uma 
regra 
51 
l  Considere a seguinte Base de Regras: 
 
R1 Se A(x) e B(x) e C(y) 
 Então adicione D(x) à MT 
 
R2 Se A(x) e D(x) e B(y) 
 Então adicione E(x) à MT 
 
R3 Se A(x) e B(x) e E(x) 
 Então remova A(x) da MT 
52 
AB
B
AB C
A1 A2 A3 
Join 
A=B 
Join 
A4 
C D
AB
Join 
A=D 
AD
Join 
A5 
E
AD B
AD
R2 
Add E 
ABE
ABE
R3 
Del A 
Join 
AB=E 
Exemplo de uma rede 
de Rete para uma 
base de regras com 
três regras 
R1 
Add D 
Exemplo de MT para a Rede de Rete 
53 
A(1) 
A(2) 
B(2) 
B(3) 
B(4) 
C(5) 
54 
AB
B
2
A
1
2
AB C
A1 A2 A3 
Join 
A=B 
Join 
A4 
C D
AB
2 Join 
A=D 
AD
Join 
A5 
E
AD B
AD
ABE
ABE
Join 
AB=E 
Exemplo de uma rede 
de Rete para uma 
base de regras com 
três regras 
R1 
Add D 
R2 
Add E 
R3 
Del A 
55 
AB
2
B
2
3
4
A
1
2
AB C
2 5
A1 A2 A3 
Join 
A=B 
Join 
R1 
Add D 
A4 
C
5
D
AB
2 Join 
A=D 
AD
Join 
A5 
E
AD B
AD
ABE
ABE
Join 
AB=E 
Exemplo de uma rede 
de Rete para uma 
base de regras com 
três regras 
R2 
Add E 
R3 
Del A 
56 
AB
2
B
2
3
4
A
1
2
AB C
2 5
A1 A2 A3 
Join 
A=B 
Join 
R1 
Add D 
A4 
C
5
D
2
AB
2 Join 
A=D 
AD
2
Join 
A5 
E
AD B
2 2
2 3
2 4
AD
2
ABE
ABE
Join 
AB=E 
Exemplo de uma rede 
de Rete para uma 
base de regras com 
três regras 
R2 
Add E 
R3 
Del A 
57 
AB
2
B
2
3
4
A
1
2
AB C
2 5
A1 A2 A3 
Join 
A=B 
Join 
R1 
Add D 
A4 
C
5
D
2
AB
2 Join 
A=D 
AD
2
Join 
A5 
E
2
AD B
2 2
2 3
2 4
AD
2
ABE
2
ABE
2
Join 
AB=E 
Exemplo de uma rede 
de Rete para uma 
base de regras com 
três regras 
R2 
Add E 
R3 
Del A 
58 
AB
B
2
3
4
A
1
AB C
A1 A2 A3 
Join 
A=B 
Join 
R1 
Add D 
A4 
C
5
D
2
AB
Join 
A=D 
AD
Join 
A5 
E
2
AD B
AD
ABE
ABE
Join 
AB=E 
Exemplo de uma rede 
de Rete para uma 
base de regras com 
três regras 
R2 
Add E 
R3 
Del A 
Sistemas de produção reativos 
59 
l  As regras são da forma: se condição então ação 
l  A ação pode inserir uma nova asserção na MT, ou apagar uma 
asserção existente, ou executar algum outro procedimento. 
l  Três fases: 
l  Casamento 
e 
l  Execução 
FASE DE RESOLUÇÃO DE CONFLITOS 
60 
l  Possíveis estratégias para resolução de conflitos entre as regras 
disparadas: 
 
: Ordenar as regras em uma lista de prioridade, 
executar aquela com maior prioridade; 
 
: executar a regra tem o maior número de 
antecedentes; 
 
: Ordenar as asserções por prioridade, executar a 
regra que casa com a asserção de maior prioridade; 
 
: não executar a mesma regra com os mesmos argumentos duas 
vezes; 
 
: dar preferência as regras que se referem a elementos da MT 
criados recentemente (simula o foco de atenção do discurso); 
 
: dar preferência as regras que são mais específicas; 
BAGGER: Um Sistema Reativo 
61 
: empacotar gêneros alimentícios em uma mercearia. 
l  BAGGER: decide onde cada item deve ir (em qual sacola). 
l  BAGGER foi projetado para fazer 4 passos: 
: analisa o que o cliente selecionou, verifica se algum item está 
faltando e sugere o item para o cliente. 
: tomando cuidado para colocar as 
garrafas grandes primeiro. 
: tomando cuidado para colocar os item 
congelados em sacolas térmicas. 
. 
BAGGER: UM SISTEMA REATIVO 
CONTEÚDO DA MT 
62 
l  Suponha que a MT tenha o seguinte conhecimento sobre os itens 
que devem ser empacotados: 
 
 ? 
pão saco plástico médio não 
macarrão inst. pote pequeno não 
granola caixa 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 
 
63 
l  A memória de trabalho contém a asserção que identifica o passo. 
l  Cada regra de BAGGER identifica o passo. 
l  B1 é disparada somente quando o passo é checar: 
 
B1 se passo = checar 
 empacotar(batata-chips) 
 não existe empacotar(pepsi) 
 então pergunte ao cliente se ele gostaria de uma garrafa 
 de Pepsi, em caso de aceite, 
 inserir(empacotar(pepsi)) 
 
l  B2 muda o passo para empacotar-itens-grandes: 
 
B2 se passo = checar 
 então apagar (Passo = checar) 
 inserir (Passo = empacotar-itens-grandes) 
 
l  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 
64 
l  B3 e B4 são regras para empacotar-itens-grandes: 
 
B3 se passo = empacotar-itens-grandes 
 empacotar(X) 
 tamanho(X) = grande 
 embalagem(X) = garrafa 
 sacola-corrente(S) 
 quantidade-itens(S) < 6 
 então apagar(empacotar(X)) 
 inserir(em(X, S)) 
 
 
B4 se passo = empacotar-itens-grandes 
 empacotar(X)tamanho(X) = grande 
 sacola-corrente(S) 
 quantidade-itens(S) < 6 
 então apagar(empacotar(X)) 
 inserir(em(X, S)) 
BAGGER: Um Sistema Reativo 
Regras 
65 
l  B5 muda de sacola: 
 
B5 se passo = empacotar-itens-grandes 
 empacotar(X) 
 tamanho(X) = grande 
 pegar(Sacola-vazia) 
 então apagar(sacola-corrente(S)) 
 inserir(sacola-corrente(Sacola-vazia)) 
 
l  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 
66 
l  B7 e B8 são regras para empacotar-itens-médios: 
 
B7 se passo = empacotar-itens-médios 
 empacotar(X) 
 tamanho(X) = médio 
 congelado(X) 
 pegar(Sacola-térmica) 
 então apagar(empacotar(X)) 
 inserir(em(X, Sacola-térmica)) 
 
B8 se passo = empacotar-itens-médios 
 empacotar(X) 
 tamanho(X) = médio 
 sacola-corrente(S) 
 ( vazia(S) ou 
 para todo X pertencente a relação em(X, S), 
 tamanho(X) = médio) 
 quantidade-itens(S) < 12 
 então apagar(empacotar(X)) 
 inserir(em(X, S)) 
BAGGER: Um Sistema Reativo 
Regras 
67 
l  B9 muda de sacola: 
 
B9 se passo = empacotar-itens-médios 
 empacotar(X) 
 tamanho(X) = médio 
 pegar(Sacola-vazia) 
 então apagar(sacola-corrente(S)) 
 inserir(sacola-corrente(Sacola-vazia)) 
 
l  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 
68 
l  B11 empacota itens pequenos: 
 
B11 se passo = empacotar-itens-pequenos 
 empacotar(X) 
 tamanho(X) = pequeno 
 sacola-corrente(S) 
 (vazia(S) ou 
 para todo X pertencente a relação em(X, S), 
 tamanho(X) = pequeno) 
 quantidade-itens(Sacola-corrente) < 18 
 então apagar(empacotar(X)) 
 inserir(em(X, S)) 
l  B12 muda de sacola: 
 
B12 se passo = empacotar-itens-pequenos 
 empacotar(X) 
 tamanho(X) = pequeno 
 pegar(Sacola-vazia) 
 então apagar(sacola-corrente(S)) 
 inserir(sacola-corrente(Sacola-vazia)) 
BAGGER: Um Sistema Reativo 
Regras 
69 
l  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 
70 
l  Suponha que a MT tenha o seguinte conhecimento sobre os o 
passo, a sacola corrente e sobre os itens que devem ser 
empacotados: 
 
l  Passo = checar 
l  sacola-corrente(s1) 
l  empacotar(pão) 
l  empacotar(macarrão-instantâneo) 
l  empacotar(granola) 
l  empacotar(sorvete) 
l  empacotar(batata-chips) 
l  A estratégia de resolução de conflitos é disparar a regra de 
menor numeração. 
BAGGER: Um Sistema Reativo 
Funcionamento 
71 
l  1º Ciclo: 
l  Regras habilitadas: B1 e B2 
l  Regras disparadas: B1 (pela ordem) – sugerir ao cliente. 
l  Nova MT: (supondo que o cliente aceitou a sugestão da Pepsi) 
l  Passo = checar 
l  sacola-corrente(s1) 
l  empacotar(pão) 
l  empacotar(macarrão-instantâneo) 
l  empacotar(granola) 
l  empacotar(sorvete) 
l  empacotar(batata-chips) 
l  empacotar(pepsi) 
BAGGER: Um Sistema Reativo 
Funcionamento 
72 
l  2º Ciclo: 
l  Regras habilitadas: B2 
l  Regras disparadas: B2 – mudar o passo 
l  Nova MT: 
l  sacola-corrente(s1) 
l  empacotar(pão) 
l  empacotar(macarrão-instantâneo) 
l  empacotar(granola) 
l  empacotar(sorvete) 
l  empacotar(batata-chips) 
l  empacotar(pepsi) 
l  Passo = empacotar-itens-grandes 
BAGGER: Um Sistema Reativo 
Funcionamento 
73 
l  3º Ciclo: 
l  Regras habilitadas: B3, B4, B5 e B6 
l  Regras disparadas: B3 (pela ordem) – empacotar garrafas primeiro. 
l  Unificação = {X/pepsi} 
l  Nova MT: 
l  sacola-corrente(s1) 
l  empacotar(pão) 
l  empacotar(macarrão-instantâneo) 
l  empacotar(granola) 
l  empacotar(sorvete) 
l  empacotar(batata-chips) 
l  Passo = empacotar-itens-grandes 
l  em(pepsi, s1) 
BAGGER: Um Sistema Reativo 
Funcionamento 
74 
l  4º Ciclo: 
l  Regras habilitadas: B4, B5 e B6 
l  Regras disparadas: B4 (pela ordem) – empacotar outros itens grandes. 
l  Unificação = {X/granola} 
l  Nova MT: 
l  sacola-corrente(s1) 
l  empacotar(pão) 
l  empacotar(macarrão-instantâneo) 
l  empacotar(sorvete) 
l  empacotar(batata-chips) 
l  Passo = empacotar-itens-grandes 
l  em(pepsi, s1) 
l  em(granola, s1) 
BAGGER: Um Sistema Reativo 
Funcionamento 
75 
l  5º Ciclo: 
l  Regras habilitadas: B6 
l  Regras disparadas: B6 – mudar o passo. 
l  Nova MT: 
l  sacola-corrente(s1) 
l  empacotar(pão) 
l  empacotar(macarrão-instantâneo) 
l  empacotar(sorvete) 
l  empacotar(batata-chips) 
l  em(pepsi, s1) 
l  em(granola, s1) 
l  Passo = empacotar-itens-médios 
BAGGER: Um Sistema Reativo 
Funcionamento 
76 
l  6º Ciclo: 
l  Regras habilitadas: B7, B8, B9, B10 
l  Regras disparadas: B7 (pela ordem) – empacotar itens congelados 
primeiro. 
l  Unificação {X/sorvete, Sacola-térmica/st1} 
l  Nova MT: 
l  sacola-corrente(s1) 
l  empacotar(pão) 
l  empacotar(macarrão-instantâneo) 
l  empacotar(batata-chips) 
l  em(pepsi, s1) 
l  em(granola, s1) 
l  Passo = empacotar-itens-médios 
l  em(sorvete, st1) 
BAGGER: Um Sistema Reativo 
Funcionamento 
77 
l  7º Ciclo: 
l  Regras habilitadas: B9, B10 
l  Regras disparadas: B9 (pela ordem) – mudar de sacola. 
l  Unificação {X/pão, S/s1, Sacola-vazia/s2} 
l  Nova MT: 
l  empacotar(pão) 
l  empacotar(macarrão-instantâneo) 
l  empacotar(batata-chips) 
l  em(pepsi, s1) 
l  em(granola, s1) 
l  Passo = empacotar-itens-médios 
l  em(sorvete, st1) 
l  sacola-corrente(s2) 
BAGGER: Um Sistema Reativo 
Funcionamento 
78 
l  8º Ciclo: 
l  Regras habilitadas: B8, B9, B10 
l  Regras disparadas: B8 (pela ordem) – empacotar outros itens. médios 
l  Unificação {X/pão, S/s2} 
l  Nova MT: 
l  empacotar(macarrão-instantâneo) 
l  empacotar(batata-chips) 
l  em(pepsi, s1) 
l  em(granola, s1) 
l  Passo = empacotar-itens-médios 
l  em(sorvete, st1) 
l  sacola-corrente(s2) 
l  em(pão, s2) 
BAGGER: Um Sistema Reativo 
Funcionamento 
79 
l  9º Ciclo: 
l  Regras habilitadas: B8, B9, B10 
l  Regras disparadas: B8 (pela ordem) – empacotar outros itens médios. 
l  Unificação {X/batata-chips, S/s2} 
l  Nova MT: 
l  empacotar(macarrão-instantâneo) 
l  em(pepsi, s1) 
l  em(granola, s1) 
l  Passo = empacotar-itens-médios 
l  em(sorvete, st1) 
l  sacola-corrente(s2) 
l  em(pão, s2) 
l  em(batata-chips, s2) 
BAGGER: Um Sistema Reativo 
Funcionamento 
80 
l  10º Ciclo: 
l  Regras habilitadas: B10 
l  Regras disparadas: B10 – mudar o passo. 
l  Nova MT: 
l  empacotar(macarrão-instantâneo) 
l  em(pepsi, s1) 
l  em(granola, s1) 
l  em(sorvete, st1) 
l  sacola-corrente(s2) 
l  em(pão, s2) 
l  em(batata-chips, s2) 
l  Passo = empacotar-itens-pequenos 
BAGGER: Um Sistema Reativo 
Funcionamento 
81 
l  11º Ciclo: 
l  Regras habilitadas: B12, B13 
l  Regras disparadas: B12 (pela ordem) – mudar a sacola. 
l  Unificação = {X/macarrão-instantâneo, Sacola-vazia/s3, S/s2} 
l  Nova MT: 
l  empacotar(macarrão-instantâneo) 
l  em(pepsi, s1) 
l  em(granola, s1) 
l  em(sorvete, st1) 
l  em(pão, s2) 
l  em(batata-chips, s2) 
l  Passo = empacotar-itens-pequenos 
l  sacola-corrente(s3) 
BAGGER: Um Sistema Reativo 
Funcionamento 
82 
l  12º Ciclo: 
l  Regras habilitadas: B11, B12, B13l  Regras disparadas: B11 (pela ordem) – empacotar itens pequenos. 
l  Unificação = {X/macarrão-instantâneo, S/s3} 
l  Nova MT: 
l  em(pepsi, s1) 
l  em(granola, s1) 
l  em(sorvete, st1) 
l  em(pão, s2) 
l  em(batata-chips, s2) 
l  Passo = empacotar-itens-pequenos 
l  sacola-corrente(s3) 
l  em(macarrão-instantâneo, s3) 
BAGGER: Um Sistema Reativo 
Funcionamento 
83 
l  13º Ciclo: 
l  Regras habilitadas: B13 
l  Regras disparadas: B13 - terminar. 
l  Nova MT: 
l  em(pepsi, s1) 
l  em(granola, s1) 
l  em(sorvete, st1) 
l  em(pão, s2) 
l  em(batata-chips, s2) 
l  sacola-corrente(s3) 
l  em(macarrão-instantâneo, s3) 
l  Passo = terminado 
BAGGER: Um Sistema Reativo 
Funcionamento 
84 
l  14º Ciclo: 
l  Regras habilitadas: nenhuma. 
l  Regras disparadas: nenhuma. 
l  MT Final: 
l  em(pepsi, s1) 
l  em(granola, s1) 
l  em(sorvete, st1) 
l  em(pão, s2) 
l  em(batata-chips, s2) 
l  sacola-corrente(s3) 
l  em(macarrão-instantâneo, s3) 
l  Passo = terminado 
Exercício 
85 
l  Mostre os quatro (4) primeiros ciclos de operação do sistema de 
produção a seguir (se possível) listando: 
l  i) o Ciclo; ii) as Regras satisfeitas; ii) a Regra escolhida em cada ciclo e 
iv) a nova memória de trabalho. 
l  ?x, ?y e ?z são variáveis e os outros termos são constantes. 
l  A estratégia de resolução de conflitos: 
l  Escolher a regra com o maior número de precondições 
l  Nenhuma regra pode ser usada mais de uma vez com o mesmo conjunto 
de variáveis atribuídas 
l  Se ainda houver conflito entre as regras, a última regra satisfeita deve 
ser aplicada. 
l  ¬P(x) significa que P(x) não pode estar na MT 
Exercício 
86 
l  Regras: 
 
(R1) IF P(?x, ?y) Q(?x, a, ∧ ?z) ∧ ¬Q(?z, a, ?z) 
 THEN assert R(?x) 
 retract Q(?x, a, ?z) 
 
(R2) IF R(?x) ∧ Q(?x, ?y, ?z) 
 THEN retract R(?x) 
 
(R3) IF P(f(?x), ?y) ∧ ?x ≤ ?y ∧ Q(f(?w), ?w, f(?z)) ∧ ?y ≤ ?z 
 THEN print SUCCESS! 
 
(R4) IF R(?x) 
 THEN assert Q(f(?x), ?x, f(?x)) 
 
l  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)

Continue navegando