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
1
Mecanismos de Raciocínio
Indução (do particular para o geral)
Dados
Hipóte s e s
Dedução (do geral para o particular)
Abdução
(gerando explicações)
Evidê ncias
Técnicas de Inferência
2
Inferência
Processo usado num Sistema Pericial para derivar nova informação a
partir de informação conhecida  Motor de Inferência
Base de Conhecimento
Regras
Frames
Motor de Inferência
Memória de Trabalho
Factos
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
3
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
4
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
1.
E1  E2
2.
E2  E4
3.
E5  E3
4.
E4  E5
5.
E6  E1
6.
E7  E2
7.
E6
Modus Ponens
8.
9.
10.
11.
12.
13.
Técnicas de Inferência
E6
E1
E2
E4
E5
E3
E6  E1
 E1  E2
 E2  E4
 E4  E5
 E5  E3

5
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
6
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
7
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
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.
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
8
Encadeamento Directo
Base de Factos
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.
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.
Facto f6: Sistema_A=activado.
Facto f7: Sistema_C=activado.
Facto f8: Sistema_D=activado.
Facto f9: Conj_CD=operacional.
Factos
Básicos
Conclusões Intermédias
Conclusões
Finais
f1
r1
ci1=f 6
f2
f3
f4
r3
ci2=f 7
r6
f5
Técnicas de Inferência
r4
cf1=f 9
ci3=f 8
9
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
Então
Disparar Rj
Gerar/Adicionar Factos
Guardar Justificações
Técnicas de Inferência
10
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
Então
Disparar Rj
Gerar/Adicionar Factos
Guardar Justificações
Técnicas de Inferência
11
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
12
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
13
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
14
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
15
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
Regra
C130
C140
Condição
tipo de
motor é
propulsão
tipo de
motor é
jacto
Estado Conclusão Estado
da
da Regra
Condição
livre
o avião é
activa
um C130
livre
o avião é
um C140
activa
Sem Factos conhecidos:
Todas as regras estão Activas
Técnicas de Inferência
16
Estados de uma Regra
Facto conhecido: tipo de motor jacto.
Regra
C130
C140
Condição Estado da Conclusão Estado da
Condição
Regra
tipo de
o avião é
motor é
Falsa
um C130
inactiva
propulsão
tipo de
o avião é
activa
motor é Verdadeira um C140 seleccionada
jacto
Técnicas de Inferência
17
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
1. Reconhecer: identificar as regras que podem ser disparadas de
acordo com os factos da memória de trabalho
2. Resolver: se mais do que uma regra pode ser disparada,
escolher uma regra de acordo com a estratégia de resolução de
conflitos
3. Actuar: disparar a regra e adicionar a conclusão à memória de
trabalho
Técnicas de Inferência
18
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
19
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:
SE ClubeX joga_hoje
E disponho= 50 €
ENTÃO Vou_ao_futebol
Regra r2:
SE BandaY actua_hoje
E disponho = 50 €
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
20
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
21
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
22
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
R2: IF y = b AND u = d THEN q = f
R3: IF x = a AND z = c AND v = e THEN r = d
6
2, 4
1, 3, 5
1. Associa-se a cada regra uma sequência formada pelas marcas temporais
dos factos correspondentes às suas condições
Técnicas de Inferência
23
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
R2: IF y = b AND u = d THEN q = f
R3: IF x = a AND z = c AND v = e THEN r = d
6, 0, 0
4, 2, 0
5, 3, 1
2. Ordenam-se as marcas em cada sequência por valores decrescentes
3. Normaliza-se o comprimento das sequências, acrescentando zeros
Técnicas de Inferência
24
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
R3: IF x = a AND z = c AND v = e THEN r = d
R2: IF y = b AND u = d THEN q = f
6, 0, 0
5, 3, 1
4, 2, 0
Ordenamento: R1 > R3 > R2
Técnicas de Inferência
25
Esquema Genérico de Inferência
Memória de
Trabalho
Base de Regras
Processamento
da Regra
Selecção de
Regras
Regra
Conjunto de
Conflito
Resolução de
Conflitos
Técnicas de Inferência
26
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
Então
Disparar Rj
Gerar/Adicionar Factos
Guardar Justificações
Técnicas de Inferência
27
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
28
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
29
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
30
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
31
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
contains all rules ;
select rule using first come first served.
ruleset exemplo
contains all rules ;
select rule using conflict resolution.
ruleset exemplo
contains all rules ;
select rule using conflict resolution with threshold 7.
Técnicas de Inferência
32
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
33
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
contains all rules ;
when a rule misfires do true .
ruleset exemplo
contains all rules ;
when a rule misfires do fail .
ruleset exemplo
contains all rules ;
when a rule misfires do meu_misfire .
Técnicas de Inferência
34
Fluxograma Encadeamento Directo LPA-Flex
Início do motor de
inferência
Condição de fim?
Sim
Sucede
Não
Falha
Não
Consegue
seleccionar uma
regra?
Sim
Sim
Consegue disparar a
regra?
Sim
Não
Consegue recuperar a
falha?
Não
Falha
Sim
Consegue actualizar a
agenda de regras?
Não
Falha
Técnicas de Inferência
35
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:
1. Tipo de revestimento
2. Tipo de locomoção
3. Tipo de alimentação
Atendendo ao seguinte esquema de classificação construir a Base de
Conhecimento
Técnicas de Inferência
36
Esquema de Classificação
Classe
Revestimento
Pêlo
Escamas superficiais
Escamas profundas
Pele Nua
Penas
Mamífero
Réptil
Peixe
Anfíbio
Ave
Ordem
Alimentação
Carne
Peixes
Carne Apodrecida
Sementes, grão
Insectos
Vegetais
Variada
Carnívoro
Piscívoro
Necrófago
Granívoro
Insectívoro
Herbívoro
Omnívoro
Técnicas de Inferência
Locomoção
Marcha
Corrida
Salto
Reptação
Nada
Voo
37
Esquema de Classificação
Revestimento
Locomoção
Alimentação
pêlo
pêlo
pêlo
pêlo
penas
penas
marcha
marcha
salto
nada
corrida
nada, marcha
carne
variada
vegetais
peixes
sementes, grão
peixes
lobo, tigre
javali, homem
coelho
baleia
avestruz
pinguin
penas
penas
pele nua
escamas superficiais
escamas profundas
voo
voo
salto
reptação
nada
sementes, grão
carne podre
insectos
carne
peixe
pombo
abutre
rã
jibóia
truta, salmão
Técnicas de Inferência
Espécie
38
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
39
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
40
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
then
the revestimento is escamas_profundas
the classe becomes peixe.
Técnicas de Inferência
41
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
then
the revestimento is penas
the classe becomes ave.
Técnicas de Inferência
42
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
43
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
44
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
and
and
then
the
the
the
the
classe is mamifero
ordem is carnivoro
deslocamento is marcha
especie becomes {lobo , tigre}.
rule javali
if
the classe is mamifero
and
the ordem is omnivoro
and
the deslocamento is marcha
then
the especie becomes javali.
Técnicas de Inferência
45
Conjunto de Regras que definem a Espécie Animal
rule pinguin
if
the
and
the
and
[ the
or
the
then
the
classe is ave
ordem is piscivoro
deslocamento is nada
deslocamento is marcha ]
especie becomes pinguin.
rule ra
if
and
and
then
the
the
the
the
classe is anfibio
ordem is insectivoro
deslocamento is salto
especie becomes ra.
rule jiboia
if
and
and
then
the
the
the
the
classe is reptil
ordem is carnivoro
deslocamento is reptacao
especie becomes jiboia.
Técnicas de Inferência
......
46
Top-Level Acção
Acção que invoca o Sistema Pericial
action
do
and
and
and
and
and
and
run_forward ;
restart
ask attributes
invoke ruleset
invoke ruleset
invoke ruleset
write( especie
nl .
classe_animais
ordem_animais
especie_animais
)
Técnicas de Inferência
47
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
48
Encadeamento Inverso
Base de Conhecimento
Base de Factos
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
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.
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
49
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
50
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
51
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
Repetir
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
52
Encadeamento Directo vs. Inverso
Inferência para trás
Inferência para a frente
– Orientada por dados
– Orientada por objectivos
– Procura soluções que sejam
consequência dos factos
– Procura factos que suportem as
hipóteses
– Tende a ser mais eficiente
em problemas com poucas
condições possíveis
– Tende a ser mais eficiente em
problemas com muitos dados
para suporte
Técnicas de Inferência
53
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
54
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
55
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
56
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
57
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
58
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
59
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
60
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
61
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
janela
• Causas (diagnósticos) possíveis
cozinha
choveu
fuga de água na cozinha / no WC
WC
Técnicas de Inferência
hall
62
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:
R4:
Se janela da cozinha aberta
E choveu
E hall OK
Então entrou água de fora
 Conclusão final
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
63
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
– Tenta provar a hipótese
– Raciocína para trás e pergunta:
• janela da cozinha fechada ?
– Respondo: Sim
– Conclui: fuga de água na cozinha
Técnicas de Inferência
64
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
65
Relations
Sintaxe da regra de produção de encadeamento inverso
relation <nome_da_relation> (arg1, arg2, ..., argn)
if <condição_1>
[ and <condição_2> … ].
 argumentos não
existem nas rules
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
66
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 ‘) .
relation verificar_alojamento ( S )
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
67
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
68
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
69
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
70
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 )
if check_classe ( ave )
and check_ordem ( piscivoro )
and deslocamento is nada .
........
relation suggest_especie ( javali )
if check_classe ( mamifero )
and check_ordem ( omnivoro )
and deslocamento is marcha .
Técnicas de Inferência
71
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
72
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
janela aberta/fechada, choveu/não choveu
• Conclusões (diagnósticos) possíveis
cozinha
água entrou de fora
fuga de água na cozinha / no WC
WC
Técnicas de Inferência
hall
73
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:
R4:
Se janela da cozinha aberta
E choveu
E hall OK
Então entrou água de fora
 Conclusão final
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
74
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 ? ;
choose one of agua_hipoteses
because 'para localizar o problema de inundacao'.
Explicação Porquê ?
question hall
Hall ? ;
choose one of agua_hipoteses
because 'para localizar o problema de inundacao'.
group agua_hipoteses
ok, com_agua.
Técnicas de Inferência
75
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
because 'Se a janela aberta e tiver chovido então água veio de fora'.
group chuva_hipoteses
sim, nao.
Técnicas de Inferência
76
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
77
Regras (Sistema Pericial Encadeamento Directo)
rule r2
if
and
and
then
the hall is com_agua
the wc is ok
the cozinha is com_agua
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
78
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
action run_backward
and the wc is ok
do restart
and [ the janela is fechada
and diagnostico ( Diagnostico )
or the chuva is nao ].
and write ( Diagnostico )
and nl .
Técnicas de Inferência
79
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
else
fail
end if
end if
and run_expl .
Técnicas de Inferência
80
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
else
true
end if
and nl.
Técnicas de Inferência
81
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
82
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
83
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
84
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
85
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
86
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
87
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
88
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
89
Download

Regra