Raciocínio baseado em casos
# Raciocínio baseado em casos

O raciocínio baseado em casos (RBC) é uma abordagem que busca resolver novos problemas adaptando soluções utilizadas para resolver problemas anteriores. De entre as características do funcionamento de um sistema RBC estão:
A qualidade de um sistema RBC depende de sua experiência, ou seja, depende do número de casos relevantes que farão parte da base de casos.

## Histórico

Com um trabalho do grupo de Roger Schank em 1980, iniciaram-se os primeiros estudos sobre as técnicas baseadas em RBC na Universidade de Yale.
Em 1983, Janet Kolodner desenvolveu o primeiro sistema RBC (Cyrus), baseado no modelo de memória dinâmica de Schank, servindo de base para outros sistemas RBC.

## O ciclo de funcionamento de um sistema RBC

* Recuperação: a partir da apresentação ao sistema de um novo problema é feita a recuperação na base de casos daquele mais parecido com o problema em questão. Isto é feito a partir da identificação das características mais significantes em comum entre os casos.
* Reutilização: a partir do caso recuperado é feita a reutilização da solução associada àquele caso. Geralmente a solução do caso recuperado é transferida ao novo problema diretamente como sua solução.
* Revisão: é feita quando a solução não pode ser aplicada diretamente ao novo problema. O sistema avalia as diferenças entre os problemas (o novo e o recuperado), quais as partes do caso recuperado são semelhantes ao novo caso e podem ser transferidas adaptando assim a solução do caso recuperado da base à solução do novo caso.
* Retenção: é o processo de armazenar o novo caso e sua respectiva solução para futuras recuperações. O sistema irá decidir qual informação armazenar e de que forma.

## Desenvolvimento de um sistema de raciocínio baseado em casos

Uma vez que existe disponível uma base de dados para ser investigada, é possível investiga-la para extrair conhecimento a ser aplicado na tomada de novas decisões. A construção de um sistema de RBC a partir de uma base de dados passa pela definição de técnicas e formas de implementação de cada um dos componentes do sistema. As etapas mais importantes do processo de desenvolvimento de um sistema RBC são:
* Seleção de uma base de informações (um sistema de banco de dados) que contenha implicitamente o conhecimento necessário na solução de problemas.
* Definição de que atributos da informação são relevantes e podem ser utilizados para a solução do problema.
* Definição de índices para os casos, para que seja possível a sua recuperação quando necessário. Na indexação deve-se decidir o que armazenar em um novo caso, encontrando uma estrutura apropriada para a descrição dos conteúdos dos casos e decidir como a base de casos deve ser armazenada.
* Definição dos métodos de recuperação de casos para verificação da similaridade entre os casos contidos na base e os novos problemas.

### A aquisição de conhecimento

Uma etapa muito importante no desenvolvimento do sistema. Conforme alguns autores (Kolodner, 1993) (Leão, 1987), ela é considerada o componente crítico no desenvolvimento de sistemas de RBC.

### Representação de casos

Um caso é um pedaço contextualizado de conhecimento representando uma experiência real (Kolodner, 1993). Um caso representa um conhecimento específico, relacionado a uma situação em um determinado contexto. Os casos podem ser de diferentes formas e tamanhos, porém todos tem em comum o fato de representarem um experiência real registrada em todas as suas características relevantes ou não. Um caso possui três componentes muito importantes:
* A descrição do problema que foi resolvido: a descrição dos aspectos relevantes do problema que caracterizam uma situação particular a ser resolvida;
* A descrição da solução: a solução utilizada para o problema específico na sua descrição;
* Conclusão: a avaliação da solução utilizada para determinado problema.

### Indexação

Sistemas baseados em casos derivam o seu poder da sua habilidade para recuperar casos relevantes de uma biblioteca de casos de maneira eficiente. O fundamental para atingir este objetivo é saber como essa biblioteca deve ser indexada de maneira que o processo de recuperação seja mais preciso e eficiente.
A partir da descrição do problema, os índices devem apontar quais características do caso devem ser comparadas, determinando assim o caso que pode ser útil para se chegar a uma solução. Isto implica inserir índices nos casos no momento de sua inclusão na base de casos, para que mais tarde eles possam ser recuperados, organizar os casos de maneira que facilite a busca e recuperação e definir algoritmos de recuperação mais eficientes.
Outra tarefa destinada a indexação é a de atribuir pesos às características dos casos, para que seja possível alcançar a recuperação de casos através da utilização do chamado algoritmo de vizinhança (Nearest Neighbor) (Michie, 1994). Esta técnica consiste em definir pesos para as características mais importantes. As características mais importante normalmente são aquelas que possuem o maior número de ocorrências.

### Recuperação de casos

O processo de recuperação de casos (Riesbeck, 1999) inicia com uma descrição de problema e finaliza quando um melhor caso for encontrado. O sistema procura na base de dados, o caso mais similar com o novo problema. Para julgar qual o caso armazenado na base é similar ou igual ao novo problema, é preciso medir a similaridade (semelhança) entre eles.

### Adaptação de casos

A etapa de adaptação de casos prevê utilizar os casos recuperados na solução do novo problema. Embora existam várias técnicas de adaptação de casos, na maioria dos sistemas a adaptação é chamada Nula, pois a solução é utilizada diretamente na solução do novo problema.

## Conclusão

Os Sistemas de RBC possibilitam a utilização do conhecimento especialista no apoio a decisões administrativas, devido à compatibilidade natural desses sistemas com os sistemas de banco de dados institucionais. Eles permitem a extração, organização e reuso de conhecimento utilizado para tomada de decisões no passado, tornando explícitos os métodos utilizados e permitindo o seu aperfeiçoamento.
A utilização dessa técnica fica limitada apenas ao acesso às bases de dados completas, corretas e confiáveis que contenham entre as informações armazenadas, a descrição completa de problemas e das soluções que foram aplicadas em algum momento. Esta é a matéria prima inicial e básica para a construção de sistemas baseados em casos.