38
Reasoning Forward and Backward Chaining Fábio de Azevedo Soares [email protected]

Reasoning Forward and Backward Chaining Fábio de Azevedo Soares [email protected]

Embed Size (px)

Citation preview

Page 1: Reasoning Forward and Backward Chaining Fábio de Azevedo Soares fazevedo@ele.puc-rio.br

ReasoningForward and Backward Chaining

Fábio de Azevedo Soares

[email protected]

Page 2: Reasoning Forward and Backward Chaining Fábio de Azevedo Soares fazevedo@ele.puc-rio.br

© LES/PUC-Rio

Sumário

• Introdução a Reasoning.

• Sistemas Baseados em Conhecimento.

• Forward Chaining– Apresentação

– Exemplos

• Backward Chaining– Apresentação

– Exemplos

• JTP API

• Conclusões

Page 3: Reasoning Forward and Backward Chaining Fábio de Azevedo Soares fazevedo@ele.puc-rio.br

© LES/PUC-Rio

Reasoning

• Em Português: argumentar, justificar, raciocinar.

• Reasoning é usar a razão para chegar à conclusão.

• É um campo multidisciplinar:– Filosofia (Qualificação);

– Psicologia (Cognição);

– Matemática (Lógica);

Page 4: Reasoning Forward and Backward Chaining Fábio de Azevedo Soares fazevedo@ele.puc-rio.br

© LES/PUC-Rio

Qual o interesse em Reasoning?

• Construção de Agentes Inteligentes.

– “A arte de criar máquinas que executam funções que exigem inteligência quando executadas por pessoas.”

– Raciocínio automatizado para usar informações armazenadas com a finalidade de responder a perguntas e chegar a novas conclusões (conhecimento):

• Sistemas Baseados em Conhecimento (Em 1969, software DENDRAL – análise estrutura molecular – primeiro sistema bem sucedido de conhecimento).

Page 5: Reasoning Forward and Backward Chaining Fábio de Azevedo Soares fazevedo@ele.puc-rio.br

Sistemas Baseados em Conhecimento (SBC)

• Definição: são programas de computador que usam o conhecimento representado explicitamente para resolver problemas.

• Baseados no seguinte pensamento:

– Quando o ser humano é mais bem sucedido do que as máquinas para resolver um problema, então, as máquinas precisam saber o que o ser humano sabe sobre o assunto.

• Utilizados há mais de 20 anos.

• Possuem como principal característica a utilização de uma Base de Conhecimento.

© LES/PUC-Rio

Page 6: Reasoning Forward and Backward Chaining Fábio de Azevedo Soares fazevedo@ele.puc-rio.br

SBC :: Arquitetura Básica

© LES/PUC-Rio

Motor de Inferência

BC

Usuário

UI/GUICore

Respostas

Perguntas

<- Percepção

Ação ->

AmbienteAgente

Page 7: Reasoning Forward and Backward Chaining Fábio de Azevedo Soares fazevedo@ele.puc-rio.br

SBC :: Agentes Inteligentes

© LES/PUC-Rio

?

Am

bie

nte

Agente

Sensores

Atuadores

Percepções

Ações

• Um agente é tudo o que pode ser considerado capaz de perceber seu ambiente por meio de sensores e de agir sobre esse ambiente por intermédio de atuadores.

Page 8: Reasoning Forward and Backward Chaining Fábio de Azevedo Soares fazevedo@ele.puc-rio.br

SBC :: Base de Conhecimento

• Contém a descrição do conhecimento necessário para a resolução do problema abordado na aplicação.

• É composta por um conjunto de representações de ações:

– Cada representação individual é chamada de sentença;

– As sentenças são expressas em uma linguagem específica, chamada linguagem de Representação de Conhecimento.

– A maioria das sentenças descreve relações de causa e efeito (SE condição, ENTÃO conclusão):

• SE temperatura está acima de 37.5°C, ENTÃO o paciente tem febre;

• SE A e B, ENTÃO C.

• Podem ser compostas por milhares de regras.

© LES/PUC-Rio

Page 9: Reasoning Forward and Backward Chaining Fábio de Azevedo Soares fazevedo@ele.puc-rio.br

SBC :: Base de Conhecimento

• Diferente de uma codificação qualquer, a representação do conhecimento deve ser compreensível ao homem.

• Ser robusta o suficiente para que todas as situações possível de determinado problema sejam abordadas.

• Geralmente, tem seu conhecimento expresso sob representação lógica:

– PROLOG é a linguagem mais utilizada.

© LES/PUC-Rio

Page 10: Reasoning Forward and Backward Chaining Fábio de Azevedo Soares fazevedo@ele.puc-rio.br

SBC e Reasoning

• SBCs são dotados de duas características principais:

– Conhecimento, processável pelo homem;

– Capacidade de resolver problemas;

• O processo utilizado para a resolução de problemas é baseado na capacidade de raciocínio destes sistemas.

• Esta capacidade de raciocínio aliada a base de conhecimento determina o quão boa será a estratégia de inferência destes sistemas.

© LES/PUC-Rio

Page 11: Reasoning Forward and Backward Chaining Fábio de Azevedo Soares fazevedo@ele.puc-rio.br

SBC :: Arquitetura Básica

© LES/PUC-Rio

Motor de Inferência

BC

Usuário

UI/GUICore

Respostas

Perguntas

REASONING

Page 12: Reasoning Forward and Backward Chaining Fábio de Azevedo Soares fazevedo@ele.puc-rio.br

SBC :: Motor de Inferência

• É responsável pelo desenvolvimento do raciocínio baseado nas informações obtidas do mundo externo e no conhecimento representado na BC.

• Inferir é derivar novas sentenças a partir de sentenças antigas.

• Existem algumas estratégias (linhas de raciocínio, reasoning) que podem ser seguidas pelos SBCs (motor de inferência):

– Encadeamento progressivo ou forward chaining;

– Encadeamento regressivo ou backward chaining.

© LES/PUC-Rio

Page 13: Reasoning Forward and Backward Chaining Fábio de Azevedo Soares fazevedo@ele.puc-rio.br

Reasoning :: Forward Chaining

• Tenta chegar a uma conclusão a partir das informações fornecidas sobre a situação atual (BC + fatos):

– “o quê se pode concluir com os dados que tenho?”.

• Data oriented reasoning;

• Mesmo que não exista, explicitamente, na Base de Conhecimento o que se deseja concluir, o mecanismo de inferência procura pelos antecedentes que satisfaçam a situação atual para, então, tentar inferir outros antecedentes e conclusões.

• Em geral, cada solução (gerada) é inserida na Base de Conhecimento.

© LES/PUC-Rio

Page 14: Reasoning Forward and Backward Chaining Fábio de Azevedo Soares fazevedo@ele.puc-rio.br

Reasoning :: Forward Chaining

• Exemplo (01)

– Objetivo desejado: qual a cor do Bob?

– Fatos:

• Bob come moscas;

• Bob grasna.

– Base de Conhecimento1. SE X grasna e come moscas, ENTÃO X é um sapo.

2. SE X gorjeia E canta – ENTÃO X é um canário.

3. SE X é um sapo, ENTÃO X é verde.

4. SE X é um canário, ENTÃO X é amarelo.

– Regras inferidas:

• R1, R3

© LES/PUC-Rio

Page 15: Reasoning Forward and Backward Chaining Fábio de Azevedo Soares fazevedo@ele.puc-rio.br

Reasoning :: Forward Chaining

– Base de Conhecimento1. SE X grasna e come moscas, ENTÃO X é um sapo.

2. SE X gorjeia E canta – ENTÃO X é um canário.

3. SE X é um sapo, ENTÃO X é verde.

4. SE X é um canário, ENTÃO X é amarelo.

– Regras inferidas:

• R1, R3

• A BC é procurada e a R1 é selecionada, pois, seu antecedente combina com os fatos.

– Conseqüente “X é um sapo” é adicionado aos fatos.

– A BC é, novamente, procurada e a R3 é selecionada, pois, seus antecedente (SE X é um sapo) combina com os fatos.

– Conseqüente “X é verde”é adicionado aos fatos.

© LES/PUC-Rio

Page 16: Reasoning Forward and Backward Chaining Fábio de Azevedo Soares fazevedo@ele.puc-rio.br

Reasoning :: Forward Chaining

• As regras inferidas também podem ser visualizadas por meio de um grafo orientado.

© LES/PUC-Rio

grasna

come mosca

Sapo Verde

R1: SE X grasna e come moscas, ENTÃO X é um sapo.

R3: SE X é um sapo, ENTÃO X é verde.

Page 17: Reasoning Forward and Backward Chaining Fábio de Azevedo Soares fazevedo@ele.puc-rio.br

Reasoning :: Forward Chaining

• Exemplo (02)

– Objetivo desejado: Q.

– Fatos:

• A;

• B.

– Base de Conhecimento

1. SE P, ENTÃO Q.

2. SE L e M, ENTÃO P.

3. SE B e L, ENTÃO M.

4. SE A e P, ENTÃO L.

5. SE A e B, ENTÃO L.

© LES/PUC-Rio

Page 18: Reasoning Forward and Backward Chaining Fábio de Azevedo Soares fazevedo@ele.puc-rio.br

Reasoning :: Forward Chaining

– Base de Conhecimento

1. SE P, ENTÃO Q.

2. SE L e M, ENTÃO P.

3. SE B e L, ENTÃO M.

4. SE A e P, ENTÃO L.

5. SE A e B, ENTÃO L.

– Fatos:

• A;

• B;

• L (R5).

© LES/PUC-Rio

Page 19: Reasoning Forward and Backward Chaining Fábio de Azevedo Soares fazevedo@ele.puc-rio.br

Reasoning :: Forward Chaining

© LES/PUC-Rio

– Base de Conhecimento

1. SE P, ENTÃO Q.

2. SE L e M, ENTÃO P.

3. SE B e L, ENTÃO M.

4. SE A e P, ENTÃO L.

5. SE A e B, ENTÃO L.

– Fatos:

• A;

• B;

• L;

• M (R3).

Page 20: Reasoning Forward and Backward Chaining Fábio de Azevedo Soares fazevedo@ele.puc-rio.br

Reasoning :: Forward Chaining

© LES/PUC-Rio

– Base de Conhecimento

1. SE P, ENTÃO Q.

2. SE L e M, ENTÃO P.

3. SE B e L, ENTÃO M.

4. SE A e P, ENTÃO L.

5. SE A e B, ENTÃO L.

– Fatos:

• A;

• B;

• L;

• M;

• P (R2);

Page 21: Reasoning Forward and Backward Chaining Fábio de Azevedo Soares fazevedo@ele.puc-rio.br

Reasoning :: Forward Chaining

© LES/PUC-Rio

– Base de Conhecimento

1. SE P, ENTÃO Q.

2. SE L e M, ENTÃO P.

3. SE B e L, ENTÃO M.

4. SE A e P, ENTÃO L.

5. SE A e B, ENTÃO L.

– Fatos:

• A;

• B;

• L;

• M;

• P;

• Q (R1).

Page 22: Reasoning Forward and Backward Chaining Fábio de Azevedo Soares fazevedo@ele.puc-rio.br

Reasoning :: Backward Chaining

• Parte da suposição de que cada solução é verdadeira. A partir disto, busca evidências que comprovem ser correta a solução considerada inicialmente:

– “posso concluir esta solução com os dados que tenho?”.

• Goal-driven reasoning.

• Mesmo que não exista, explicitamente, na Base de Conhecimento o que se deseja concluir, o mecanismo de inferência procura pelos consequentes que satisfaçam a situação atual para, então, tentar inferir outros antecedentes e conclusões.

© LES/PUC-Rio

Page 23: Reasoning Forward and Backward Chaining Fábio de Azevedo Soares fazevedo@ele.puc-rio.br

Reasoning :: Backward Chaining

• Exemplo

– Objetivo desejado: Bob pode ser verde?

– Fatos:

• Bob come moscas;

• Bob grasna.

– Base de Conhecimento1. SE X grasna e come moscas, ENTÃO X é um sapo.

2. SE X gorjeia E canta – ENTÃO X é um canário.

3. SE X é um sapo, ENTÃO X é verde.

4. SE X é um canário, ENTÃO X é amarelo.

– Regras inferidas:

• R3, R4, R1, R2

© LES/PUC-Rio

Page 24: Reasoning Forward and Backward Chaining Fábio de Azevedo Soares fazevedo@ele.puc-rio.br

Reasoning :: Backward Chaining

© LES/PUC-Rio

– Base de Conhecimento1. SE X grasna e come moscas, ENTÃO X é um sapo.

2. SE X gorjeia E canta – ENTÃO X é um canário.

3. SE X é um sapo, ENTÃO X é verde.

4. SE X é um canário, ENTÃO X é amarelo.

– Regras inferidas:

• R3, R4, R1, R2

• Bob é verde se ele for um sapo, ou, amarelo se ele for um canário.

– Como Bob grasna e como moscas, ele é um sapo, logo, não é um canário.

Page 25: Reasoning Forward and Backward Chaining Fábio de Azevedo Soares fazevedo@ele.puc-rio.br

Reasoning :: Backward Chaining

• Exemplo (02)

– Objetivo desejado: Q.

– Fatos:

• A;

• B.

– Base de Conhecimento

1. SE P, ENTÃO Q.

2. SE L e M, ENTÃO P.

3. SE B e L, ENTÃO M.

4. SE A e P, ENTÃO L.

5. SE A e B, ENTÃO L.

© LES/PUC-Rio

Page 26: Reasoning Forward and Backward Chaining Fábio de Azevedo Soares fazevedo@ele.puc-rio.br

Reasoning :: Backward Chaining

– Base de Conhecimento

1. SE P, ENTÃO Q.

2. SE L e M, ENTÃO P.

3. SE B e L, ENTÃO M.

4. SE A e P, ENTÃO L.

5. SE A e B, ENTÃO L.

– Fatos:

• Q;

• P (R1).

© LES/PUC-Rio

Page 27: Reasoning Forward and Backward Chaining Fábio de Azevedo Soares fazevedo@ele.puc-rio.br

Reasoning :: Backward Chaining

– Base de Conhecimento

1. SE P, ENTÃO Q.

2. SE L e M, ENTÃO P.

3. SE B e L, ENTÃO M.

4. SE A e P, ENTÃO L.

5. SE A e B, ENTÃO L.

– Fatos:

• Q;

• P;

• L e M (R2).

© LES/PUC-Rio

Page 28: Reasoning Forward and Backward Chaining Fábio de Azevedo Soares fazevedo@ele.puc-rio.br

Reasoning :: Backward Chaining

– Base de Conhecimento

1. SE P, ENTÃO Q.

2. SE L e M, ENTÃO P.

3. SE B e L, ENTÃO M.

4. SE A e P, ENTÃO L.

5. SE A e B, ENTÃO L.

– Fatos:

• Q;

• P;

• L;

• M;

• A e P (R4).

© LES/PUC-Rio

Page 29: Reasoning Forward and Backward Chaining Fábio de Azevedo Soares fazevedo@ele.puc-rio.br

Reasoning :: Backward Chaining

– Base de Conhecimento

1. SE P, ENTÃO Q.

2. SE L e M, ENTÃO P.

3. SE B e L, ENTÃO M.

4. SE A e P, ENTÃO L.

5. SE A e B, ENTÃO L.

– Fatos:

• Q;

• P;

• L;

• M;

• A;

• P;

• A e B (R5);

© LES/PUC-Rio

Page 30: Reasoning Forward and Backward Chaining Fábio de Azevedo Soares fazevedo@ele.puc-rio.br

Reasoning :: Backward Chaining

– Base de Conhecimento

1. SE P, ENTÃO Q.

2. SE L e M, ENTÃO P.

3. SE B e L, ENTÃO M.

4. SE A e P, ENTÃO L.

5. SE A e B, ENTÃO L.

– Fatos:

• Q;

• P;

• L;

• M;

• A;

• P;

• B;

• R3; R2; R1.

© LES/PUC-Rio

Page 31: Reasoning Forward and Backward Chaining Fábio de Azevedo Soares fazevedo@ele.puc-rio.br

Reasoning :: FC x BC

Forward Chaining Backward Chaining

Presente-Futuro Presente-Passado

Data-driven Goal-driven

Busca em largura Busca em profundidade

Antecedentes determinam a busca

Conseqüentes determinam a busca

Planejamento, Monitoramento, Controle

Diagnóstico

Determinam soluções que derivam dos fatos

Determinam fatos que comprovam as soluções

© LES/PUC-Rio

Page 32: Reasoning Forward and Backward Chaining Fábio de Azevedo Soares fazevedo@ele.puc-rio.br

SBC :: Outras Arquiteturas

© LES/PUC-Rio

Motor de Inferência

BC

Usuário

UI/GUICore

Respostas

Perguntas

REASONING

Memória de

Trabalho

Page 33: Reasoning Forward and Backward Chaining Fábio de Azevedo Soares fazevedo@ele.puc-rio.br

SBC :: Conhecimento Incremental

© LES/PUC-Rio

Conhecimento à priori

• SBCs podem ser dotados de um processo de aprendizagem autônomo que alimente a BC incrementalmente.

Page 34: Reasoning Forward and Backward Chaining Fábio de Azevedo Soares fazevedo@ele.puc-rio.br

SBC :: Aplicações

• SBCs são aplicados nos mais variados ramos. Entretanto, as heurísticas utilizadas podem ser classificadas da seguinte forma:

– Interpretação: análise de dados para determinação do seu significado;

– Classificação: identificação de uma classe dado um conjunto de sintomas/observações;

– Monitoramento: observação contínua do comportamento de um sistema a fim de realizar ações quando alguma falha ocorre;

– Planejamento: determinação de uma seqüência de ações que devem ser realizadas para alcançar algum objetivo.

© LES/PUC-Rio

Page 35: Reasoning Forward and Backward Chaining Fábio de Azevedo Soares fazevedo@ele.puc-rio.br

© LES/PUC-Rio

JTP: Reasoning System OO API

• Desenvolvida pelo Knowledge Systems Laboratory of Computer Science Department in Stanford University.

• Em linguagem Java.

• JTP utiliza uma arquitetura muito simples e genérica de reasoning.

• Implementa backward chaining e forward chaining.

• Reasoner é o principal componente desta arquitetura.

Page 36: Reasoning Forward and Backward Chaining Fábio de Azevedo Soares fazevedo@ele.puc-rio.br

Bibliografia

• ALVARES, L. O. Motor de Inferência para Sistemas Especialistas baseados em Regras de Produção. Informática, UFRGS.

• API JTP Web site. Disponível em http://www-ksl.stanford.edu/software/jtp/, Atualizado em 22/01/2008. Acesso em 18/08/2008.

• DIVERIO, T.; MENEZES, P. Teoria da Computação: máquinas universais e computabilidade. 2.ed. Porto Alegre: Sagra-Luzzatto, 2000.

© LES/PUC-Rio

Page 37: Reasoning Forward and Backward Chaining Fábio de Azevedo Soares fazevedo@ele.puc-rio.br

Bibliografia

• PY, M. X. Sistemas Especialistas: uma introdução. Instituto de Informática, UFRGS.

• RUSSEL, S.; NORVIG, P. Inteligência Artificial. 2. ed. Rio de Janeiro: Elsevier, 2004.

© LES/PUC-Rio

Page 38: Reasoning Forward and Backward Chaining Fábio de Azevedo Soares fazevedo@ele.puc-rio.br

Fim.