Reasoning
Forward and Backward Chaining
Fábio de Azevedo Soares
[email protected]
Sumário
• Introdução a Reasoning.
• Sistemas Baseados em Conhecimento.
• Forward Chaining
– Apresentação
– Exemplos
• Backward Chaining
– Apresentação
– Exemplos
• JTP API
• Conclusões
© 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);
© 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).
© LES/PUC-Rio
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
SBC :: Arquitetura Básica
Perguntas
Respostas
Core
UI/GUI
Motor de Inferência
Usuário
<- Percepção
Ação ->
BC
Agente
Ambiente
© LES/PUC-Rio
SBC :: Agentes Inteligentes
• 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.
Percepções
Sensores
Ambiente
?
Ações
Atuadores
Agente
© LES/PUC-Rio
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
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
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
SBC :: Arquitetura Básica
Perguntas
Respostas
REASONING
Core
UI/GUI
Motor de Inferência
Usuário
BC
© LES/PUC-Rio
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
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
Reasoning :: Forward Chaining
• Exemplo (01)
– Objetivo desejado: qual a cor do Bob?
– Fatos:
• Bob come moscas;
• Bob grasna.
– Base de Conhecimento
1. 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
Reasoning :: Forward Chaining
– Base de Conhecimento
1. 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
Reasoning :: Forward Chaining
• As regras inferidas também podem ser visualizadas por
meio de um grafo orientado.
grasna
Sapo
Verde
come
mosca
R1: SE X grasna e come moscas, ENTÃO X é um sapo.
R3: SE X é um sapo, ENTÃO X é verde.
© LES/PUC-Rio
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
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
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;
• M (R3).
© LES/PUC-Rio
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;
• M;
• P (R2);
© LES/PUC-Rio
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;
• M;
• P;
• Q (R1).
© LES/PUC-Rio
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
Reasoning :: Backward Chaining
• Exemplo
– Objetivo desejado: Bob pode ser verde?
– Fatos:
• Bob come moscas;
• Bob grasna.
– Base de Conhecimento
1. 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
Reasoning :: Backward Chaining
– Base de Conhecimento
1. 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.
© LES/PUC-Rio
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
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
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
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
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
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
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
SBC :: Outras Arquiteturas
Perguntas
Respostas
REASONING
Core
UI/GUI
Motor de Inferência
Usuário
Memória
de
Trabalho
BC
© LES/PUC-Rio
SBC :: Conhecimento Incremental
• SBCs podem ser dotados de um processo de aprendizagem
autônomo que alimente a BC incrementalmente.
Conhecimento
à priori
Observações
Aprendizagem
Indutiva
© LES/PUC-Rio
Hipóteses
Previsões
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
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.
© LES/PUC-Rio
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://wwwksl.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
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
Fim.
Download

Reasoning - (LES) da PUC-Rio