Sétima aula da disciplina Sistemas de Informação Inteligentes, lecionada no curso de Ciência da Computação da Faculdade Campo Grande.
Esta aula aborda de forma simples e clara o raciocínio baseado em casos, utilizando exemplos de fácil compreensão.
1. CIÊNCIA DA COMPUTAÇÃO - FCG
Sistemas de Informação Inteligentes
Aula 07: Raciocínio baseado em casos
Prof.º Msc. Sidney Roberto de Sousa
2. O que é?
Utilização de experiências passadas para
entender e resolver problemas novos
Um ”raciocinador” se recorda de uma situação
passada similar a atual e usa esta experiência
para resolver o problema atual
Ciência da Computação - FCG 2
3. Exemplo
”Uma anfitriã está planejando um jantar para um conjunto de pessoas que
inclui, entre outras, várias pessoas que não comem carne vermelha ou aves -
onde um destes também é alérgico a derivados de leite, vários homens que
adoram carne vermelha e batatas e, por fim, sua amiga Ana.
É época de tomates, logo ela quer utilizá-los como ingrediente principal no
jantar. Como ela é a única responsável pela organização do jantar, ela se recorda
dos seguintes fatos:
Houve uma vez, no verão, em que eu servi uma torta de tomates - feita com
muçarela, tomates, mostarda, manjericão e pimenta – como prato principal.
Nesta ocasião, os meus convidados eram vegetarianos. Esta torta foi muito
prática de fazer! E deliciosa! Porém, eu não posso servir esta torta para a
Eliana, pois ela é intolerante à lactose.
A Eliana me ensinou a adaptar algumas receitas que tinham queijo como
ingrediente, substituindo-o por tofú. Apesar disso, eu não sei se a torta de
tomates ainda seria deliciosa com esta substituição de ingredientes...”
Ciência da Computação - FCG 4
4. Exemplo
”A anfitriã decide não servir a torta de tomates e continua a planejar o seu jantar.
Como é verão, ela opta por servir peixe grelhado, julgando que este prato seria uma boa
pedida para a ocasião. Porém, agora ela se lembra de mais um fato:
Na última vez em que eu tentei servir peixe para a Ana, ela não quis comê-lo. Eu tive
que preparar uns cachorros-quentes de última hora...
A princípio, isto a sugere a não servir o peixe grelhado, mas mesmo assim ela ainda
insiste a servir este prato. Assim, ela pensa se existe ou não uma forma de servir peixe a
Ana, de uma forma que ela aprecie comê-lo:
Eu me lembro de ter visto ela comer peixe em um restaurante. Que tipo de peixe eu
devo servir a ela? O peixe que eu a servi da última vez foi preparado com a cabeça e
tudo... O peixe que ela comeu no restaurante parecia mais com um bife do que um
peixe. Eu preciso servir a ela um peixe com sabor e aparência mais próximos aos de
carne vermelha ou de aves do que a de peixe. Talvez peixe-espada dê certo. Será que a
Ana vai comer peixe-espada? Peixe-espada é mais parecido com frango e eu sei que ela
gosta de frango.”
Ciência da Computação - FCG 5
5. Exemplo
Neste exemplo, anfitriã estava prestes a escolher a
torta de tomates como prato principal, pois este prato
era um forte candidato à boa apreciação culinária de
seus convidados
Porém, sua amiga Ana – com o seu gosto mais
exigente – acaba atrapalhando indiretamente os
planos da anfitriã
Esta, por sua vez, utiliza exemplos e contra-exemplos
de uma premissa (”Ana não come peixe”) para tentar
derivar uma interpretação da premissa que resiste ao
escrutínio
Ciência da Computação - FCG 6
6. Raciocínio Baseado em Casos (CBR)
A anfitriã hipotética emprega CBR a fim de
planejar um jantar
No CBR, o ”raciocinador” se recorda de
situações anteriores similares à atual e as
utiliza para ajudar a resolver novos problemas
No exemplo anterior, os casos relembrados são
utilizados para sugerir meios de se resolver um
novo problema
Ciência da Computação - FCG 7
7. CBR é comum em nossas vidas
Ciência da Computação - FCG 8
8. CBR é comum em nossas vidas
Ciência da Computação - FCG 9
9. CBR é comum em nossas vidas
Ciência da Computação - FCG 10
10. CBR é comum em nossas vidas
Ciência da Computação - FCG 11
11. Uso da experiência
Geralmente, a segunda vez em que se tenta
resolver um determinado tipo de problema é
mais fácil do que a primeira → nos lembramos
da primeira vez e da solução aplicada
Somos mais competentes na segunda vez pois
recordamos de nossos erros os evitamos
Também somos mais competentes na segunda
vez pois nos recordamos de soluções práticas
e eficazes utilizadas no passado
Ciência da Computação - FCG 12
12. Qualidade do CBR
A qualidade de um raciocinador baseado em
casos depende de quatro coisas
Suas experiências passadas
Sua habilidade em entender situações novas em
termos destas experiências
Sua adaptabilidade na adaptação
Sua adaptabilidade na avaliação
Ciência da Computação - FCG 13
13. Processo de CBR para computação
CBR foi formalizado para raciocínio
computadorizado em um processo de 4 etapas:
Recuperação
Reuso
Revisão
Retenção
Ciência da Computação - FCG 14
14. Reuso
Mapeia-se a solução de casos anteriores para
o problema alvo
Tal operação pode exigir a adaptação da
solução do caso antigo para o caso novo
Ex.: quando a anfitriã pensava em servir
novamente torta de tomates aos seus
convidados, ela teria que substituir o queijo
muçarela por tofú → dado que Ana é
intolerante à lactose
Ciência da Computação - FCG 16
15. Revisão
Uma vez que uma solução antiga foi mapeada
à situação alvo, testa-se a nova solução no
mundo real ou em uma simulação
Caso necessário, revisa-se a nova solução
Ex.: Digamos que ao substituir a muçarela por
tofú, este último não harmoniza bem com o
sabor dos tomates, fazendo com que a torta
tenha um sabor desagradável. Assim, deve-se
revisar a receita, tomando alguma decisão a
respeito da inclusão do tofú na torta
Ciência da Computação - FCG 17
16. Retenção
Uma vez que a solução foi adaptada com
sucesso ao problema alvo, a experiência
resultante deve ser armazenada como um novo
caso na memória → vai para a base de casos
Ex.: Digamos que a anfitriã serve o seu peixe
grelhado aos seus convidados no jantar e estes
adoram o prato servido, o achando saboroso.
Assim, a anfitriã agora sabe que este prato é
uma boa pedida para se servir em um jantar
com amigos no verão
Ciência da Computação - FCG 18
17. CBR com Prolog
Considere um sistema de diagnósticos para um
consultório médico
O médico atende a vários pacientes no
decorrer do tempo, onde cada paciente
apresenta sintomas variados
Para cada paciente, o trabalho do médico é
mapear seus sintomas para um mal/doença
Assim, tendo conhecimento do mal/doença do
paciente, ele pode receitar um tratamento a
este paciente
Ciência da Computação - FCG 19
18. Base de fatos (casos)
diagnostico('olhos avermelhados', 'conjuntivite').
diagnostico('olhos avermelhados', 'gripe').
diagnostico('coriza', 'gripe').
diagnostico('dor de cabeça', 'gripe').
diagnostico('nariz escorrendo', 'gripe').
diagnostico('febre', 'infecção').
diagnostico('dor de cabeça', 'infecção').
diagnostico('nariz escorrendo', 'infecção').
Ciência da Computação - FCG 20
19. Recuperando diagnósticos
1 ?- diagnostico('olhos avermelhados', X).
X = 'conjuntivite' ;
X = 'gripe' ;
No
Ciência da Computação - FCG 21
20. Cálculo simples de diagnóstico
calcula_diagnostico([], D).
calcula_diagnostico([S|L1], D) :-
diagnostico(S, D),
calcula_diagnostico(L1, D).
Ciência da Computação - FCG 22
21. CBR com Prolog
Assim, o médico pode utilizar suas
experiências de diagnósticos para criar novos
diagnósticos
Para que o CBR funcione, cada novo
diagnóstico sucessivo deve ser adicionado à
base de fatos → feedback relevance
A partir da base de fatos, diferentes regras
podem ser criadas a fim de responder
perguntas mais complexas
Ciência da Computação - FCG 23
22. Críticas ao CBR
Alguns cientistas argumentam que o CBR é
uma abordagem que aceita evidências
”anedotais” como princípio principal de
operação
Sem experiências relevantes, a generalização
de soluções pode levar a respostas incorretas
CBR vs relevância estatística
Ciência da Computação - FCG 24
23. Vantagens do CBR
Permite ao raciocinador propor soluções a problemas
rapidamente
Permite ao raciocinador propor soluções a domínios que
ele não compreende totalmente
Fornece ao raciocinador meios para avaliar soluções
quando não se tem métodos algorítmicos para resolver o
problema alvo
Casos são particularmente úteis para utilização na
interpretação de conceitos abertos e mal definidos
Casos ajudam um raciocinador a concentrar o seu
raciocínio em partes importantes de um problema ao
apontar as características relevantes de um problema
Ciência da Computação - FCG 25
24. Bibliografia
KOLODNER, J. L. An Introduction to Case-Based Reasoning.
Artificial Intelligence Review, Vol. 6, pages 3-34, 1992.
Case-Based Reasoning. Disponível em http://tinyurl.com/2bxrmd.
Acessado em 31/10/2012.
Ciência da Computação - FCG 26