Inferência
Conhecimento
Inferência
m Bibliografia:
m James
P. Ignizio, Introduction to Expert Systems,
Capítulo 6
m Lucas e Van der Gaag, Principles of Expert
Systems, Capítulo 3
Engenharia do Conhecimento
© Amílcar Cardoso
Conhecimento e Inferência- 29
Inferência
Conhecimento
Inferência como procura
m Processo de procura:
m Conjunto
de soluções potenciais
m Conjunto de restrições
m Sistemas baseados em regras:
m Encadeamento
Engenharia do Conhecimento
© Amílcar Cardoso
de regras
Conhecimento e Inferência- 30
Inferência
Conhecimento
Encadeamento
m Dois métodos básicos:
m Encadeamento
para a Frente (Forward Chaining), ou
Inferência Ascendente: Orientado pelos Factos
m Encadeamento
para Trás (Backward Chaining), ou
Inferência Descendente: Orientado pelos Objectivos
Engenharia do Conhecimento
© Amílcar Cardoso
Conhecimento e Inferência- 31
Inferência
Conhecimento
Encadeamento
m Dois métodos básicos:
m Encadeamento
para a Frente (Forward Chaining), ou
Inferência Ascendente: Orientado pelos Factos
m Partir
de um conjunto de factos
m Usar as regras para deduzir novos factos
m Encadeamento
para Trás (Backward Chaining), ou
Inferência Descendente: Orientado pelos Objectivos
Engenharia do Conhecimento
© Amílcar Cardoso
Conhecimento e Inferência- 31
Inferência
Conhecimento
Encadeamento
m Dois métodos básicos:
m Encadeamento
para a Frente (Forward Chaining), ou
Inferência Ascendente: Orientado pelos Factos
m Partir
de um conjunto de factos
m Usar as regras para deduzir novos factos
m Encadeamento
para Trás (Backward Chaining), ou
Inferência Descendente: Orientado pelos Objectivos
m Partir
de um objectivo
m Usar as regras para procurar suporte para o objectivo
Engenharia do Conhecimento
© Amílcar Cardoso
Conhecimento e Inferência- 32
Inferência
Conhecimento
Encadeamento para a Frente
Dado um conjunto de Factos, escolher uma regra cujo Antecedente
seja verdadeiro; disparar a regra; o Consequente da regra é um
novo Facto
m Prosseguir (recursivamente) com o novo conjunto de dados
m Parar quando não se pode disparar mais nenhuma regra
m
A
B
R3
R1
F
H
I
R4
C
D
E
Engenharia do Conhecimento
© Amílcar Cardoso
R2
G
R5
H
Conhecimento e Inferência- 33
Inferência
Conhecimento
Encadeamento para Trás
Dado um Objectivo, parar se existe um Facto que o suporte.
m Senão, escolher uma regra cujo Consequente possa suportar o
Objectivo
m Considerar as condições do Antecedente da regra como novos
Objectivos, e prosseguir (recursivamente)
m
A
R3
B
R1
I
R4
F
H
C
D
E
Engenharia do Conhecimento
© Amílcar Cardoso
R2
G
R5
H
Conhecimento e Inferência- 34
Inferência
Conhecimento
Encadeamento (exemplo)
m Selecção de automóvel
>3K
>3K
R1
A
1.5K
1.5Kto
to3K
3K
R2
B
<1.5K
<1.5K
R3
C
44portas
portas
R4
D
22portas
portas
R5
E
Engenharia do Conhecimento
© Amílcar Cardoso
Conhecimento e Inferência- 35
Inferência
Encadeamento para a frente
Conhecimento
(exemplo)
Utilizador:
Utilizador:Quero
Queroum
umautomóvel
automóvelde
de44portas
portasque
quecuste
custeentre
entre1,5K
1,5Kee3K;
3K;que
que
automóvel
automóveldevo
devocomprar?
comprar?
SP:
SP:Escolher
Escolherentre
entreautomóveis
automóveisBBeeDD
>3K
>3K
R1
A
1.5K
1.5Kto
to3K
3K
R2
B
<1.5K
<1.5K
R3
C
44portas
portas
R4
D
22portas
portas
R5
E
Engenharia do Conhecimento
© Amílcar Cardoso
Conhecimento e Inferência- 36
Inferência
Conhecimento
Encadeamento para trás (exemplo)
Utilizador:
Utilizador:Quero
Queroum
umautomóvel;
automóvel;qual
qualdevo
devocomprar?
comprar?
SP:
SP:(“pensando”)
(“pensando”)Vamos
Vamostentar
tentarooautomóvel
automóvelA…
A…
>3K
>3K
R1
A
1.5K
1.5Kto
to3K
3K
R2
B
<1.5K
<1.5K
R3
C
44portas
portas
R4
D
22portas
portas
R5
E
Engenharia do Conhecimento
© Amílcar Cardoso
?
Conhecimento e Inferência- 37
Inferência
Conhecimento
Encadeamento para trás (exemplo)
SP:
SP:Pode
Podegastar
gastarmais
maisde
de3K?
3K?
Utilizador:
Utilizador:Não
Não
?
>3K
>3K
R1
A
1.5K
1.5Kto
to3K
3K
R2
B
<1.5K
<1.5K
R3
C
portas
? 44portas
R4
D
22portas
portas
R5
E
Engenharia do Conhecimento
© Amílcar Cardoso
Conhecimento e Inferência- 38
Inferência
Conhecimento
Encadeamento para trás (exemplo)
SP:
SP:(“pensando”)
(“pensando”)Hum...
Hum...Vamos
Vamostentar
tentarooautomóvel
automóvelBB
>3K
>3K
R1
A
1.5K
1.5Kto
to3K
3K
R2
B
<1.5K
<1.5K
R3
C
44portas
portas
R4
D
22portas
portas
R5
E
Engenharia do Conhecimento
© Amílcar Cardoso
?
Conhecimento e Inferência- 39
Inferência
Conhecimento
Encadeamento para trás (exemplo)
SP:
SP:Pode
Podegastar
gastarentre
entre1.5
1.5ee3k?
3k?
Utilizador:
Utilizador:Sim
Sim
>3K
>3K
ES:
ES:Quer
Quer44portas?
portas?
Utilizador:
Utilizador:Sim
Sim
R1
A
1.5Kto
to3K
3K
? 1.5K
R2
B
<1.5K
<1.5K
R3
C
portas
? 44portas
R4
D
22portas
portas
R5
E
Engenharia do Conhecimento
© Amílcar Cardoso
Conhecimento e Inferência- 40
Inferência
Conhecimento
Encadeamento para trás (exemplo)
SP:
SP:Escolher
Escolherentre
entreautomóveis
automóveisBBeeDD
>3K
>3K
R1
A
1.5K
1.5Kto
to3K
3K
R2
B
<1.5K
<1.5K
R3
C
44portas
portas
R4
D
22portas
portas
R5
E
Engenharia do Conhecimento
© Amílcar Cardoso
Conhecimento e Inferência- 41
Inferência
Conhecimento
Para a frente vs. Para trás
m Inferência para a frente:
m Inferência para trás:
m
Orientada por dados
m
Orientada por objectivos
m
Procura soluções que sejam
consequência dos factos
m
Procura factos que
suportem hipóteses
m
Tende a ser mais eficiente
em problemas com poucas
condições possíveis
m
Tende a ser mais eficiente
em problemas com poucas
conclusões possíveis
Engenharia do Conhecimento
© Amílcar Cardoso
Conhecimento e Inferência- 42
Inferência
Conhecimento
Encadeamento misto
Usar alternadamente os dois mecanismos durante uma mesma
sessão de resolução de problema
m Exemplos de estratégias:
m Prioridade ao encadeamento para trás:
m
Usar encadeamento para a frente só quando não for possível
fazê-lo com encadeamento para trás
Engenharia do Conhecimento
© Amílcar Cardoso
Conhecimento e Inferência- 43
Inferência
Conhecimento
Encadeamento misto
Usar alternadamente os dois mecanismos durante uma mesma
sessão de resolução de problema
m Exemplos de estratégias:
m Prioridade ao encadeamento para trás:
m
Usar encadeamento para a frente só quando não for possível
fazê-lo com encadeamento para trás
m Prioridade ao encadeamento para a frente:
m
Usar encadeamento para trás só quando não for possível fazêlo com encadeamento para a frente
Engenharia do Conhecimento
© Amílcar Cardoso
Conhecimento e Inferência- 43
Inferência
Conhecimento
Encadeamento misto
Usar alternadamente os dois mecanismos durante uma mesma
sessão de resolução de problema
m Exemplos de estratégias:
m Prioridade ao encadeamento para trás:
m
Usar encadeamento para a frente só quando não for possível
fazê-lo com encadeamento para trás
m Prioridade ao encadeamento para a frente:
m
Usar encadeamento para trás só quando não for possível fazêlo com encadeamento para a frente
m Modo dependente da fase de resolução do problema:
m
Mudar modo de acordo com as características de cada fase
Engenharia do Conhecimento
© Amílcar Cardoso
Conhecimento e Inferência- 43
Inferência
Conhecimento
Encadeamento misto (exemplo)
Monitorização
e
Controlo
Engenharia do Conhecimento
© Amílcar Cardoso
Conhecimento e Inferência- 44
Inferência
Conhecimento
Geração de Explicações
m Explicações “How?” :
Traço do processo de encadeamento
A
B
R3
R1
R4
F
H
I
C
D
R2
G
E
R5
H
è Q: Como escolheu H?
Engenharia do Conhecimento
© Amílcar Cardoso
Conhecimento e Inferência- 45
Inferência
Conhecimento
Geração de Explicações (cont.)
A
B
R3
R1
I
R4
F
H
C
D
E
è
R2
G
R5
H
Utilizador: Como escolheu H?
è SP: H é verdade porque
foi inferido de R3, disparada porque
A é verdade porque
você o disse
F é verdade porque
foi inferido de R1, disparada porque
B é verdade porque
você o disse
C é verdade porque
você o disse
Engenharia do Conhecimento
Conhecimento e Inferência- 46
© Amílcar Cardoso
Inferência
Conhecimento
Geração de Explicações (cont.)
m Explicações “Why?”:
m o contexto de uma pergunta
A
B
R3
R1
R4
F
H
I
C
D
E
R2
G
R5
H
è Q: Pergunta-me se B é verdade, porquê?
Engenharia do Conhecimento
© Amílcar Cardoso
Conhecimento e Inferência- 47
Inferência
Conhecimento
Geração de Explicações (cont.)
A
R3
B
R1
R4
F
H
I
C
R2
D
G
R5
E
H
è Utilizador: Pergunta-me se B é verdade, porquê?
è SP: Para investigar, por R1, se F é verdade
Para investigar, por R3, se H é verdade
Esta é a hipótese que estou a explorar
Engenharia do Conhecimento
© Amílcar Cardoso
Conhecimento e Inferência- 48
Inferência
Conhecimento
Organização de Regras
m Agrupamento:
m por
conclusões com atributos similares
m Ordenamento
m ordenar
os grupos de forma a que fiquem nos
primeiros lugares aqueles cujas conclusões
estejam mais próximas dos objectivos finais
Engenharia do Conhecimento
© Amílcar Cardoso
Conhecimento e Inferência- 49
Inferência
Conhecimento
Organização de Regras
m Conjunto de Regras por organizar:
m Se
E=u1 Então B=y1
m Se
A=x1 E B=y1 Então C=z1
m Se
F=w1 Então E=u1
m Se
B=y2 E D=t2 Então C=z3
m Se
E=u2 Então B=y2
m Se
A=x2 E D=t1 Então C=z2
Engenharia do Conhecimento
© Amílcar Cardoso
Conhecimento e Inferência- 50
Inferência
Conhecimento
Organização de Regras
m Agrupamento:
Grupo B:
m Se
E=u1 Então B=y1
m Se
E=u2 Então B=y2
Grupo C:
m Se
A=x1 E B=y1 Então C=z1
m Se
A=x2 E D=t1 Então C=z2
m Se
B=y2 E D=t2 Então C=z3
Grupo E:
m Se
F=w1 Então E=u1
Engenharia do Conhecimento
© Amílcar Cardoso
Conhecimento e Inferência- 51
Inferência
Conhecimento
Organização de Regras
m Ordenamento:
m Grupo
m Se
A=x1 E B=y1 Então C=z1
m Se
A=x2 E D=t1 Então C=z2
m Se
B=y2 E D=t2 Então C=z3
m Grupo
B:
m Se
E=u1 Então B=y1
m Se
E=u2 Então B=y2
m Grupo
m Se
E:
F=w1 Então E=u1
Engenharia do Conhecimento
© Amílcar Cardoso
C:
Conhecimento e Inferência- 52
Inferência
Conhecimento
Condições e Conclusões
m Estados:
Átomos
Livres
(valor ainda não conhecido)
Especificados
(valor já conhecido)
Verdadeiros
Engenharia do Conhecimento
© Amílcar Cardoso
Falsos
Conhecimento e Inferência- 53
Inferência
Conhecimento
Estados de uma Regra
Regra
Activa
Engenharia do Conhecimento
© Amílcar Cardoso
Inactiva
Seleccionada
Disparada
Conhecimento e Inferência- 54
Inferência
Conhecimento
Estado de uma Regra
Regra
Activa
Inactiva
Seleccionada
Disparada
m Regra Seleccionada:
m O Antecedente tem valor verdadeiro
m Regra
m
Inactiva:
O Antecedente tem valor falso
Engenharia do Conhecimento
© Amílcar Cardoso
Conhecimento e Inferência- 54
Inferência
Conhecimento
Estado de uma Regra
Regra
Activa
Inactiva
Seleccionada
Disparada
m Regra Disparada:
m Regra cujas acções do Consequente foram executadas
Engenharia do Conhecimento
© Amílcar Cardoso
Conhecimento e Inferência- 55
Inferência
Conhecimento
Estado de uma Regra
Regra
Activa
Inactiva
Seleccionada
Disparada
m Regra Disparada:
m Regra cujas acções do Consequente foram executadas
m Regra
m
Activa:
Regra que não está Inactiva nem foi Disparada
Engenharia do Conhecimento
© Amílcar Cardoso
Conhecimento e Inferência- 55
Inferência
Conhecimento
Estado de uma Regra
Regra C130:
Se o tipo de motor é propulsão
Então o avião é um C130
Regra
Condição
C130
tipo de
motor é
propulsão
tipo de
motor é
jacto
C141
Regra C130:
Se o tipo de motor é propulsão
Então o avião é um C130
Estado da Conclusão Estado da
condição
Regra
livre
avião é um
activa
C130
livre
avião é um
C141
activa
m Sem factos conhecidos:
m
Engenharia do Conhecimento
© Amílcar Cardoso
Todas as regras Activas
Conhecimento e Inferência- 56
Inferência
Conhecimento
Estado de uma Regra
m Facto conhecido: o tipo de motor é jacto
Regra
Condição
C130
tipo de
motor é
propulsão
tipo de
motor é
jacto
C141
Engenharia do Conhecimento
© Amílcar Cardoso
Estado da Conclusão Estado da
condição
Regra
falsaé um
inactiva
livre
avião
activa
C130
livre
verdadeira
avião é um
activa seleccionada
C141
Conhecimento e Inferência- 57
Inferência
Conhecimento
Estado de uma Regra
m Facto conhecido: o tipo de motor é jacto
Regra
Condição
C130
tipo de
motor é
propulsão
tipo de
motor é
jacto
C141
Engenharia do Conhecimento
© Amílcar Cardoso
Estado da Conclusão Estado da
condição
Regra
falso
avião é um
inactiva
C130
verdadeiro
activa,
avião é um
seleccionada
C141
Conhecimento e Inferência- 58
Inferência
Conhecimento
Estado de uma Regra
m Se conclusão da Regra C141 executada:
Regra
Condição
C130
tipo de
motor é
propulsão
tipo de
motor é
jacto
C141
Engenharia do Conhecimento
© Amílcar Cardoso
Estado da Conclusão Estado da
condição
Regra
falso
avião é um
inactiva
C130
verdadeiro
disparada
activa,
avião é um
seleccionada
C141
Conhecimento e Inferência- 59
Inferência
Conhecimento
Estado de uma Regra
m Se conclusão da Regra C141 executada:
Regra
Condição
C130
tipo de
motor é
propulsão
tipo de
motor é
jacto
C141
Engenharia do Conhecimento
© Amílcar Cardoso
Estado da Conclusão Estado da
condição
Regra
falso
avião é um
inactiva
C130
verdadeiro
avião é um
C141
disparada
Conhecimento e Inferência - 60
Inferência
Conhecimento
Esquema genérico de inferência
Saída
Entrada
Memória
de Trabalho
Base de Regras
Selecção
Selecção
de Regras
de Regras
Processamento
Processamento
de Regra
de Regra
Conjunto
de Conflito
Regra
Resolução
Resolução
de Conflitos
de Conflitos
Engenharia do Conhecimento
© Amílcar Cardoso
Conhecimento e Inferência - 61
Inferência
Inferência Ascendente
Conhecimento
(Encadeamento para a Frente)
m Algoritmo básico (próximo do descrito no Lucas) :
procedimento Infere(base_de_regras, memória_de_trabalho)
Inicializa(base_de_regras, memória_de_trabalho, out regras_activas);
faz
conjunto_de_conflito ← Selecciona(memória_de_trabalho, regras_activas);
se conjunto_de_conflito ≠ ∅ então
regra ← ResolveConflitos(conjunto_de_conflito);
Dispara(regra , inout regras_activas, inout memória_de_trabalho);
ActualizaEstadoCndsRegras(memória_de_trabalho, inout
regras_activas)
es
até regras_activas = ∅ zaf
fim
Engenharia do Conhecimento
© Amílcar Cardoso
Conhecimento e Inferência - 62
Inferência
Conhecimento
Inferência Ascendente
m Inicialização de estruturas auxiliares:
Memória de trabalho com todos os factos
m Estado de regras e condições reflecte factos na memória de trabalho
m
procedimento Inicializa (base_de_regras, memória_de_trabalho, inout
regras_activas)
memória_de_trabalho ← RecolheFactos;
regras_activas ← base_de_regras;
paracada regra em regras_activas faz
estado(regra) ← Activa;
paracada cond em antecedente(regra) faz estado(cond) ← Livre zaf
zaf
ActualizaEstadoCndsRegras(memória_de_trabalho, inout regras_activas)
fim
Engenharia do Conhecimento
© Amílcar Cardoso
Conhecimento e Inferência - 63
Inferência
Conhecimento
Inferência Ascendente
função Selecciona(memória_de_trabalho, regras_activas)
conjunto_de_conflito ← ∅ ;
paracada regra em regras_activas faz
se estado(regra) = Activa, Seleccionada então
conjunto_de_conflito ← conjunto_de_conflito ∪ { regra } es
zaf
fim devolve(conjunto_de_conflito)
procedimento Dispara(regra, inout regras_activas)
regras_activas ← regras_ activas \ {regra}
estado(regra) ← Disparada;
atrib/val ← AtributoValor(consequente(regra));
memória_de_trabalho ← memória_de_trabalho ∪ {atrib/val}
fim
Engenharia do Conhecimento
© Amílcar Cardoso
Conhecimento e Inferência - 64
Inferência
Conhecimento
Inferência Ascendente
procedimento ActualizaEstadoCndsRegras(memória_de_trabalho,
inout regras_activas)
paracada regra em regras_activas faz
paracada cond em antecedente( regra ) faz
estado(cond) ← AvaliaCond(cond, memória_de_trabalho);
zaf ;
se avalia(antecedente(regra)) = F então
estado(regra) ← Inactiva;
regras_activas ← regras_activas \ {regra} es;
se avalia(antecedente(regra)) = V então
estado(regra) ← Activa, Seleccionada es
zaf
fim
Engenharia do Conhecimento
© Amílcar Cardoso
Conhecimento e Inferência - 65
Inferência
Conhecimento
Inferência Ascendente
m A realçar no algoritmo apresentado:
m Durante
o processamento de regras nada é perguntado
ao utilizador
m Apenas
uma regra do Conjunto de Conflito é aplicada
mO
disparo de uma regra altera a memória de trabalho,
logo, o conjunto de conflito deve ser reconsiderado em
cada ciclo
mO
processo é repetido até não existirem mais regras
aplicáveis (podem ser definidos outros critérios de terminação)
m Controlo
do processo de inferência: resolução de
conflitos
Engenharia do Conhecimento
© Amílcar Cardoso
Conhecimento e Inferência - 66
Inferência
Conhecimento
Inferência Ascendente
m Estratégias de Resolução de Conflitos:
m Não-sensíveis
ao contexto
m Utilizar a ordem pela qual as regras se encontram na BC
para escolher uma regra
m Utilizar valores de prioridade previamente estabelecidos
m Sensíveis
ao contexto
m Dar preferência às regras que envolvem dados obtidos
mais recentemente
m Dar preferência às regras mais específicas (com mais
condições)
Engenharia do Conhecimento
© Amílcar Cardoso
Conhecimento e Inferência - 67
Inferência
Inferência Ascendente
Conhecimento
Resolução por Prioridade
m é associada uma prioridade a cada regra; dá-se
preferência às regras mais prioritárias
ÉÉsimples
simplesde
deprogramar,
programar,mas
masdificulta
dificultaoo
processo
processode
deengenharia
engenhariado
doconhecimento
conhecimento
Engenharia do Conhecimento
© Amílcar Cardoso
Conhecimento e Inferência - 68
Inferência
Inferência Ascendente
Conhecimento
Resolução por Especificidade
m Dá-se preferência às regras mais específicas, ou
seja, às que têm mais condições
m
Exemplo: dadas as duas regras
R1: IF auscultação HAS-VALUE murmúrio_diastólico
R2 é
mais específica
THEN doença HAS-VALUE doença_cardíaca
A escolha de R2
conduz a resultados
mais fortes
R2: IF pressão_sistólica_sangue HAS-VALUE >140 AND
pressão_de_pulso HAS-VALUE > 50 AND
auscultação HAS-VALUE murmúrio_diastólico OR
percussão HAS-VALUE dilatação_cardíaca
THEN doença HAS-VALUE regurgitação_aórtica
Engenharia do Conhecimento
© Amílcar Cardoso
Conhecimento e Inferência - 69
Inferência
Inferência Ascendente
Conhecimento
Resolução por Especificidade
m Dá-se preferência às regras mais específicas, ou
seja, às que têm mais condições
m Principais
vantagens da estratégia:
m Comportamento
m Extensibilidade
Engenharia do Conhecimento
© Amílcar Cardoso
mais próximo do humano.
da base de regras facilitada
Conhecimento e Inferência - 70
Inferência
Inferência Ascendente
Conhecimento
Resolução por Actualidade
m Dá-se preferência às regras que, para serem aplicadas,
recorrem aos factos estabelecidos mais recentemente
mA
cada facto é associada uma marca temporal que
indica o “tempo” em que foi estabelecido
m Vantagem:
m Formato
seguir uma linha única de raciocínio
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
Engenharia do Conhecimento
© Amílcar Cardoso
Conhecimento e Inferência - 71
Inferência
Inferência Ascendente
Conhecimento
Resolução por Actualidade
m Exemplo:
m
Conjunto de factos
{ 1: x = a, 2: y = b, 3: z = c, 4: u = d, 5: v = e, 6: w = f }
m
Conjunto de conflito
1
R1: IF w = f THEN p = e
6
R2: IF y = b AND u = d THEN q = f
2 4
R3: IF x = a AND z = c AND v = e THEN r = d
1 3 5
Associa-se a cada regra uma sequência formada pelas marcas
temporais dos factos correspondentes às suas condições.
Engenharia do Conhecimento
© Amílcar Cardoso
Conhecimento e Inferência - 72
Inferência
Inferência Ascendente
Conhecimento
Resolução por Actualidade
m Exemplo:
m
Conjunto de factos
{ 1: x = a, 2: y = b, 3: z = c, 4: u = d, 5: v = e, 6: w = f }
m
Conjunto de conflito
R1: IF w = f THEN p = e
6
R2: IF y = b AND u = d THEN q = f
4 2
R3: IF x = a AND z = c AND v = e THEN r = d
5 3 1
2
Engenharia do Conhecimento
© Amílcar Cardoso
Ordenam-se as marcas em cada sequência por valores
decrescentes.
Conhecimento e Inferência - 73
Inferência
Inferência Ascendente
Conhecimento
Resolução por Actualidade
m Exemplo:
m
Conjunto de factos
{ 1: x = a, 2: y = b, 3: z = c, 4: u = d, 5: v = e, 6: w = f }
m
Conjunto de conflito
3
R1: IF w = f THEN p = e
6 0 0
R2: IF y = b AND u = d THEN q = f
4 2 0
R3: IF x = a AND z = c AND v = e THEN r = d
5 3 1
Normaliza-se o comprimento das sequências, acrescentando as
marcas “0” que forem necessárias
Ordenamento: R1 ≥ R3 ≥ R2
Engenharia do Conhecimento
© Amílcar Cardoso
Conhecimento e Inferência - 74
Inferência
Inferência Ascendente
Conhecimento
Resolução por Actualidade
m Ordenamento das regras do Conjunto de
Conflito:
¬ Associa-se a cada regra uma sequência formada pelas
marcas temporais dos factos correspondentes às suas
condições.
- Ordenam-se as marcas em cada sequência por valores
decrescentes.
® Normaliza-se o comprimento das sequências,
acrescentando as marcas “0” que forem necessárias.
Engenharia do Conhecimento
© Amílcar Cardoso
Conhecimento e Inferência - 75
Inferência
Conhecimento
Inferência Ascendente
m A realçar no algoritmo apresentado:
m Durante
o processamento de regras nada é perguntado
ao utilizador
l Isto “obriga” a uma pré-recolha exaustiva de dados
l Seria bom admitir a possibilidade de o SP pedir ao
utilizador dados adicionais
l Estes dados permitiriam mobilizar regras adicionais para
melhorar a qualidade das conclusões
Novo algoritmo:
Não assume a disponibilidade inicial de todos os dados: os valores
vão sendo pedidos à medida das necessidades.
Engenharia do Conhecimento
© Amílcar Cardoso
Conhecimento e Inferência - 76
Inferência
Conhecimento
Inferência Ascendente
m Novo algoritmo (próximo do descrito no Ignizio):
procedimento Infere( base_de_regras, memória_de_trabalho)
Inicializa(base_de_regras, memória_de_trabalho, inout regras_activas);
faz
conjunto_de_conflito ← Selecciona(memória_de_trabalho, regras_activas);
se conjunto_de_conflito ≠ ∅ então
regra ← ResolveConflitos(conjunto_de_conflito);
Dispara(regra, inout regras_activas, inout memoria_de_trabalho)
senão
atrib ← EscolheAtributo(regras_activas); input(atrib, val);
Novo
memória_de_trabalho ← memória_de_trabalho ∪ {atrib/val}
es
ActualizaEstadoCndsRegras(memória_de_trabalho, inout regras_activas)
até regras_activas = ∅ zaf
fim
Engenharia do Conhecimento
© Amílcar Cardoso
Conhecimento e Inferência - 77
Inferência
Conhecimento
Inferência Ascendente
m Inicialização de estruturas auxiliares:
Memória de trabalho com factos recolhidos do utilizador (basta 1!)
m Estado de regras e condições reflecte factos na memória de trabalho
m
procedimento Inicializa (base_de_regras, memória_de_trabalho, inout
regras_activas)
Pendente: regra activa
memória_de_trabalho ← RecolheFactosIniciais;
com pelo menos uma
regras_activas ← base_de_regras;
condição verdadeira e
outra livre
paracada regra em regras_activas faz
estado(regra) ← Activa; pendente(regra) ← F;
paracada cond em antecedente(regra) faz estado(cond) ← Livre zaf
zaf
ActualizaEstadoCndsRegras(memória_de_trabalho, inout regras_activas)
fim
Engenharia do Conhecimento
© Amílcar Cardoso
Conhecimento e Inferência - 78
Inferência
Conhecimento
Inferência Ascendente
procedimento ActualizaEstadoCndsRegras(memória_de_trabalho, inout
regras_activas,)
paracada regra em regras_activas faz
paracada cond em antecedente(regra) faz
estado(cond) ← AvaliaCond(cond, memória_de_trabalho);
se estado(cond) = V então pendente(regra) ← V es
zaf;
se avalia(antecedente(regra)) = F então
estado(regra) ← Inactiva; regras_activas ← regras_activas \ {regra};
pendente(regra) ← F es;
se avalia(antecedente(regra)) = V então
estado(regra) ← Activa, Seleccionada;
pendente(regra) ← F es
zap
Lidar com regras pendentes
fim
Engenharia do Conhecimento
© Amílcar Cardoso
Conhecimento e Inferência - 79
Inferência
Conhecimento
Inferência Ascendente
m Escolha de atributo (para questionar)
função EscolheAtributo(regras_activas)
repete
regra ← retira_uma(regras_activas)
Prioridade a atributos
de regras pendentes
até pendente(regra) = V ou não_há_mais_regras;
se pendente(regra) = F então regra ← retira_uma(regras_activas) es;
repete
cond ← retira_uma(antecedente(regra))
até estado(cond) = Livre;
atrib ← atributo(cond);
fim devolve (atrib)
Engenharia do Conhecimento
© Amílcar Cardoso
Conhecimento e Inferência - 80
Download

Inferência