89
Técnicas de Inferência 1 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 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Embed Size (px)

Citation preview

Page 1: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 1

RaciocínioCapacidade 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

Page 2: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 2

Mecanismos de Raciocínio

Dados Hipóteses

Evidências

Indução (do particular para o geral)

Dedução (do geral para o particular)

Abdução(gerando explicações)

Page 3: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 3

Inferência Processo usado num Sistema Pericial para derivar nova informação a partir de informação conhecida Motor de Inferência

Motor de Inferência

Responsável pela modelação do Processo de Raciocínio

– Combina os factos da Memória de Trabalho com o conhecimento do domínio contido na Base de Conhecimento

– Gera conclusões

Base de Conhecim ento

Regras Fram es

M em ória de Trabalho

Factos

M otor de Inferência

Page 4: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 4

Métodos de InferênciaOs 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

Page 5: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 5

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. E6 E6 E1

9. E1 E1 E2

10. E2 E2 E4

11. E4 E4 E5

12. E5 E5 E3

13. E3

Page 6: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 6

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

Page 7: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 7

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

Page 8: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 8

Encadeamento DirectoBase 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.

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.

Page 9: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 9

Encadeamento Directo Base de Factos

Base de Conhecimento Facto f1: Bot_1=actuado. Facto f2:

Bot_2=actuado.

Regra r1: SE Bot_1=actuado E Bot_2=actuado Facto f3: Bot_4=actuado.

ENTÃO Sistema_A=activado. Facto f4: Bot_5=actuado.

Regra r2: SE Bot_3=actuado OU NÃO(Bot_4=actuado) Facto f5: Bot_8=actuado.

ENTÃO Sistema_B=activado. Facto f6: Sistema_A=activado.

Regra r3: SE Bot_5=actuado E NÃO(Bot_6=actuado) Facto f7: Sistema_C=activado.

ENTÃO Sistema_C=activado. Facto f8: Sistema_D=activado.

Regra r4: SE Bot_7=actuado OU Bot_8=actuado Facto f9: Conj_CD=operacional.

ENTÃO Sistema_D=activado.

Regra r5: SE Sistema_A=activado E Sistema_B=activado

ENTÃO Conj_AB=operacional.

Regra r6: SE Sistema_C=activado E Sistema_D=activado

ENTÃO Conj_CD=operacional.

 

r1

r3

r6

r4

f1

f2

f3

f4

ci1=f 6

ci3=f 8f5

cf1=f 9

FactosBásicos

Conclusões Intermédias ConclusõesFinais

ci2=f 7

Page 10: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 10

Algoritmo de Encadeamento DirectoFi F1Enquanto houver factos a considerar

Rj R1Enquanto houver regras a considerarSe Fi entrar nas condições de Rj

E Fi ainda não disparou Rj

EntãoSe o LHS de Rj for verdadeiroEntão

Disparar RjGerar/Adicionar FactosGuardar Justificações

Page 11: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 11

Algoritmo de Encadeamento Directocom Metaconhecimento

Fi F1Enquanto houver factos a considerar

SR conjunto de regras apropriadas para Fi {Metaconhecimento}Enquanto houver regras a considerar

Rj regra de SRSe Fi ainda não disparou RjEntão

Se o LHS de Rj for verdadeiroEntão

Disparar RjGerar/Adicionar FactosGuardar Justificações

Page 12: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 12

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.

Page 13: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 13

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.

Page 14: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 14

Encadeamento DirectoVantagens• 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

Page 15: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 15

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

Page 16: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 16

Estados de uma RegraRegra C130: Se o tipo de motor é propulsão

então o avião é um C130Regra C140: Se o tipo de motor é jacto

então o avião é um C140

Sem Factos conhecidos: Todas as regras estão Activas

Regra Condição Estado da

Condição

Conclusão Estado da Regra

C130

tipo de motor é

propulsão

livre o avião é um C130

activa

C140

tipo de motor é

jacto

livre o avião é um C140

activa

Page 17: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 17

Estados de uma Regra

Facto conhecido: tipo de motor jacto.

Regra Condição Estado da Condição

Conclusão Estado da Regra

C130

tipo de motor é

propulsão

Falsa

o avião é um C130

inactiva

C140

tipo de motor é

jacto

Verdadeira

o avião é um C140

activa seleccionada

Page 18: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 18

Resolução de ConflitosEstraté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

Page 19: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 19

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

Page 20: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 20

Estratégias de Resolução de ConflitosNão sensíveis ao contexto

– Utilizar a ordem pela qual as regras se encontram na Base de Conhecimento para escolher uma regra

ExemploRegra r1: Regra r2:

SE ClubeX joga_hoje SE BandaY actua_hoje

E disponho= 50 € E disponho = 50 €

ENTÃO Vou_ao_futebol ENTÃO Vou_ao_concerto

– Utilizar valores de prioridade previamente estabelecidos – é associada uma prioridade a cada regra – dá-se preferência às regras mais prioritárias

É simples de programar, mas dificulta o processo de engenharia do conhecimento

Page 21: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 21

Resolução por EspecificidadeSensí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 > 140AND pressão_pulso HAS_VALUE > 50AND auscultação HAS_VALUE murmúrio_diastólicoOR 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

Page 22: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 22

Resolução por ActualidadeSensí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

Page 23: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 23

Resolução por ActualidadeExemploConjunto 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 6R2: IF y = b AND u = d THEN q = f 2, 4R3: IF x = a AND z = c AND v = e THEN r = d 1, 3, 5

1. Associa-se a cada regra uma sequência formada pelas marcas temporais dos factos correspondentes às suas condições

Page 24: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 24

Resolução por ActualidadeExemploConjunto de Factos

1: x = a. 2: y = b. 3: z = c. 4: u = d. 5: v = e. 6: w = f.

Conjunto de Regras em conflito

R1: IF w = f THEN p = e 6, 0, 0R2: IF y = b AND u = d THEN q = f 4, 2, 0R3: IF x = a AND z = c AND v = e THEN r = d 5, 3, 1

2. Ordenam-se as marcas em cada sequência por valores decrescentes3. Normaliza-se o comprimento das sequências, acrescentando zeros

Page 25: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 25

Resolução por ActualidadeExemploConjunto de Factos

1: x = a. 2: y = b. 3: z = c. 4: u = d. 5: v = e. 6: w = f.

Conjunto de Regras em conflito

R1: IF w = f THEN p = e 6, 0, 0R3: IF x = a AND z = c AND v = e THEN r = d 5, 3, 1R2: IF y = b AND u = d THEN q = f 4, 2, 0

Ordenamento: R1 > R3 > R2

Page 26: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 26

Esquema Genérico de Inferência

Memória de Trabalho

Base de Regras

Selecção de Regras

Conjunto de Conflito

Resolução deConflitos

Regra

Processamento da Regra

Page 27: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 27

Algoritmo de Encadeamento Directocom Metaconhecimento e Resolução de Conflitos

Fi F1Enquanto houver factos a considerar

SR conjunto de regras apropriadas para Fi {Metaconhecimento}

SRConflit Reconhecer_Conjunto de Regras Conflito (SR) SRConf Resolver_Conjunto de Regras Conflito (SRConflit)

Enquanto houver regras a considerarRj regra de SRConf

Se Fi ainda não disparou RjEntão

Se o LHS de Rj for verdadeiroEntão

Disparar RjGerar/Adicionar FactosGuardar Justificações

Page 28: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 28

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

Page 29: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 29

RulesetPara 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.

Page 30: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 30

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

Page 31: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 31

Sintaxe RulesetOs 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..

…] ].

 

Page 32: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 32

Mecanismos de Selecção de Regras Utilizáveis – "first come first served" : a primeira regra da agenda é a primeira a

ser tentada disparar – "conflict resolution" : a primeira regra escolhida é aquela que tiver

maior valor do seu score – "conflict resolution with threshold <número ou expressão>" : a primeira

regra escolhida é a primeira encontrada que tiver um valor score maior do que o valor do "threshold“

Exemplos 

ruleset exemplo ruleset exemplocontains all rules ; contains all rules ;select rule using first come first served. select rule using conflict resolution.

ruleset exemplocontains all rules ;select rule using conflict resolution with threshold 7.

Page 33: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 33

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.

Page 34: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 34

Mecanismos de RecuperaçãoQuando 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

Exemplosruleset exemplo ruleset exemplocontains all rules ; contains all rules ;when a rule misfires do true . when a rule misfires do fail .

ruleset exemplocontains all rules ;when a rule misfires do meu_misfire .

Page 35: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 35

Fluxograma Encadeamento Directo LPA-FlexInício do motor de

inferência

Condição de fim? Sucede

FalhaConsegue

seleccionar umaregra?

Consegue disparar aregra?

Consegue actualizar aagenda de regras?

Consegue recuperar afalha?

Falha

Sim

Falha

Sim

Sim

Sim

Não

Não

Não Não

Não

Sim

Page 36: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 36

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

Page 37: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 37

Esquema de Classificação Classe Pêlo Mamífero Escamas superficiais Réptil

Revestimento Escamas profundas Peixe Pele Nua Anfíbio

Penas Ave

OrdemCarne Carnívoro Peixes Piscívoro

MarchaCarne Apodrecida Necrófago Corrida

Alimentação Sementes, grão Granívoro Locomoção SaltoInsectos Insectívoro

ReptaçãoVegetais Herbívoro NadaVariada Omnívoro Voo

Page 38: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 38

Esquema de ClassificaçãoRevestimento Locomoção Alimentação Espéciepêlo marcha carne lobo, tigrepêlo marcha variada javali,

homempêlo salto vegetais coelhopêlo nada peixes baleiapenas corrida sementes, grão avestruzpenas nada, marcha peixes pinguin

penas voo sementes, grão pombo

penas voo carne podre abutrepele nua salto insectos rãescamas superficiais reptação carne jibóiaescamas profundas nada peixe truta, salmão

Page 39: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 39

QuestõesLista 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.

Page 40: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 40

Questõesquestion 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.

Page 41: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 41

Conjunto de Regras que definem a Classe Animal

ruleset classe_animais contains classe_rules; update ruleset by removing each selected rule.

group classe_rules mamifero, peixe, reptil, anfibio, ave.

rule mamifero if the revestimento is pelo then the classe becomes mamifero .

rule peixe if the revestimento is escamas_profundas then the classe becomes peixe.

Page 42: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 42

Conjunto de Regras que definem a Classe Animal

rule reptil

if the revestimento is escamas_superficiais

then the classe becomes reptil.

rule anfibio

if the revestimento is pele_nua

then the classe becomes anfibio.

rule ave

if the revestimento is penas

then the classe becomes ave.

Page 43: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 43

Conjunto de Regras que definem a Ordem Animalruleset 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.

Page 44: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 44

Conjunto de Regras que definem a Ordem Animalrule 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.

Page 45: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 45

Conjunto de Regras que definem a Espécie Animalruleset especie_animais contains especie_rules; update ruleset by removing each selected rule.

group especie_rules lobo, tigre, javali, pinguin, ra, jiboia, coelho, baleia,

avestruz, pombo, abutre, truta.

rule lobo if the classe is mamifero and the ordem is carnivoro and the deslocamento is marcha then the especie becomes {lobo , tigre}.

rule javali if the classe is mamifero and the ordem is omnivoro and the deslocamento is marcha then the especie becomes javali.

Page 46: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 46

Conjunto de Regras que definem a Espécie Animal

rule pinguin if the classe is ave and the ordem is piscivoro and [ the deslocamento is nada or the deslocamento is marcha ] then the especie becomes pinguin.

rule ra if the classe is anfibio and the ordem is insectivoro and the deslocamento is salto then the especie becomes ra.

rule jiboia if the classe is reptil and the ordem is carnivoro and the deslocamento is reptacao then the especie becomes jiboia. ......

Page 47: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 47

Top-Level Acção

Acção que invoca o Sistema Pericial

action run_forward ;

do restart

and ask attributes

and invoke ruleset classe_animais

and invoke ruleset ordem_animais

and invoke ruleset especie_animais

and write( especie )

and nl .

Page 48: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 48

Encadeamento InversoO 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.

Page 49: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 49

Encadeamento Inverso 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.

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.

Page 50: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 50

Encadeamento InversoObjectivo: 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 FALSOExercício: Conj_CD=operacional ?

Page 51: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 51

Encadeamento InversoObjectivo: 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

Page 52: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 52

Algoritmo de Encadeamento InversoProvar (G)Se G corresponde a um facto básicoEntão G é verdadeiro e Provar (G) tem sucesso

Gerar/Adicionar FactosGuardar Justificações

Senão Se há um facto F que contraria GEntão G é falso e Provar (G) falhouSR conjunto de regras que concluem G {Metaconhecimento}Repetir

R regra de SRSC Conjunto de condições de R {LHS}Falha falsoRepetir

C condição de SCProvar (C)Se não foi possível provar CEntão Falha verdadeiro

Até não existirem mais condições em SC ou Falha = verdadeiroAté não existir mais nenhuma regra em SR ou Falha = falsoSe Falha = falsoEntão G é verdadeiro e Provar (G) teve sucessoSenão G é falso e Provar (G) falhou

Page 53: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 53

Encadeamento Directo vs. Inverso

Inferência para a frente

– Orientada por dados

– Procura soluções que sejam consequência dos factos

– Tende a ser mais eficiente em problemas com poucas condições possíveis

Inferência para trás

– Orientada por objectivos

– Procura factos que suportem as hipóteses

– Tende a ser mais eficiente em problemas com muitos dados para suporte

Page 54: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 54

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.

Page 55: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 55

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.

Page 56: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 56

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)

Page 57: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 57

Exemplos de Explicações (Como ?) Conj_CD=operacional Verd Como ?

Outra interacção: 

Conj_CD=operacional é verdadeiro pelo uso da regra r6 que implicouprovar que Sistema_C=activado é verdadeiro

e Sistema_D=activado é verdadeiroSistema_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 f4Bot_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. 

Page 58: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 58

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.

Page 59: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 59

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=activadoComo Sistema_A=activado é verdadeiro e sabendo que Sistema_B=activado podemos concluir

pela regra R5 que Conj_AB=operacional.

Page 60: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 60

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áriaExemplo

–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)

Page 61: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 61

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

Page 62: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 62

Representação de Conhecimento com RegrasExemplo

Base de Conhecimento para análise de um problema de inundação num andar

Conceptualização

• Sintomas possíveis

cozinha Ok / Com água, hall Ok / Com água, WC Ok / Com água

• Outros parâmetros

janela aberta/fechada, choveu/não choveu

• Causas (diagnósticos) possíveis

choveu

fuga de água na cozinha / no WC

janela

cozinha

WC hall

Page 63: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 63

Relacionamento dos Sintomas com as CausasR1: Se hall com água E cozinha Ok Então fuga de água no WC Conclusão final

R2: Se hall com água E WC Ok E cozinha com água Então problema na cozinha Conclusão intermédia

R3: Se janela da cozinha aberta E choveu

E hall OK Então entrou água de fora Conclusão final

R4: Se problema na cozinha E janela da cozinha fechada

ou não choveu Então fuga de água na cozinha Conclusão final

Page 64: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 64

Exemplo – Encadeamento Misto

• 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

1ª Iteração

Page 65: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 65

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

Page 66: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 66

RelationsSintaxe da regra de produção de encadeamento inverso relation <nome_da_relation> (arg1, arg2, ..., argn) argumentos não if <condição_1> existem nas rules[ and <condição_2> … ].

Usando um motor de inferência de Encadeamento Inverso só sepode 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

Page 67: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 67

RelationsExemploframe 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.

Page 68: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 68

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

Page 69: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 69

Relation Classerelation 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 .

Page 70: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 70

Relation Ordemrelation 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 .

Page 71: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 71

Relation Especierelation 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 .

Page 72: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 72

Acção que invoca o Sistema Pericial

action run_backward

do restart

and check_especie( Especie )

and write( Especie )

and nl .

Page 73: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 73

Implementação do Problema:Inundação do Andar com Explicações Exemplo

Base de Conhecimento para análise de um problema de inundação num andar

Conceptualização

• Sintomas possíveis

cozinha Ok / Com água, hall Ok / Com água, WC Ok / Com água

• Outros parâmetros

janela aberta/fechada, choveu/não choveu

• Conclusões (diagnósticos) possíveis

água entrou de fora

fuga de água na cozinha / no WC

janela

cozinha

WC hall

Page 74: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 74

Relacionamento dos Sintomas com as CausasR1: Se hall com água E cozinha Ok Então fuga de água no WC Conclusão final

R2: Se hall com água E WC Ok E cozinha com água Então problema na cozinha Conclusão intermédia

R3: Se janela da cozinha aberta E choveu

E hall OK Então entrou água de fora Conclusão final

R4: Se problema na cozinha E janela da cozinha fechada

ou não choveu Então fuga de água na cozinha Conclusão final

Page 75: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 75

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'.

question hall Hall ? ; choose one of agua_hipoteses because 'para localizar o problema de inundacao'.

group agua_hipoteses ok, com_agua.

Explicação Porquê ?

Page 76: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 76

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.

Page 77: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 77

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 .

Page 78: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 78

Regras (Sistema Pericial Encadeamento Directo)rule r2 if the hall is com_agua and the wc is ok and the cozinha is com_agua then the problema becomes cozinha .

rule r3 if the janela is aberta and the chuva is sim and the hall is ok then the diagnostico becomes entrou_agua_de_fora .

rule r4 if [ the janela is fechada or the chuva is nao ] and the problema is cozinha then the diagnostico becomes fuga_agua_cozinha .

Page 79: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 79

Relations (Sistema Pericial Encadeamento Inverso)

action run_backward

do restart

and diagnostico ( Diagnostico )

and write ( Diagnostico )

and nl .

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 abertaand the chuva is sim .

relation diagnostico ( fuga_agua_cozinha ) if the hall is com_agua and the wc is ok and [ the janela is fechada or the chuva is nao ].

Page 80: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 80

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 .

Page 81: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 81

Explicaçõesaction 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.

Page 82: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 82

Explicaçõesquestion 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_hipfuga_agua_wc, fuga_agua_cozinha, entrou_agua_de_fora.

Page 83: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 83

Explicaçõesruleset explicacao

contains explic_rules ;

update ruleset by removing each selected rule.

group explic_rules

e1, e2, e3, e4.

Page 84: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 84

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 .

Page 85: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 85

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 .

Page 86: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 86

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 .

Page 87: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 87

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 .

Page 88: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 88

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 .

Page 89: Técnicas de Inferência 1 Raciocínio Capacidade humana em trabalhar com conhecimento, factos e estratégias de resolução de problemas por forma a obter conclusões

Técnicas de Inferência 89

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 .

...........