O paradigma de Raciocínio baseado em Casos cobre uma variedade de métodos diferentes para organizar, recuperar, utilizar e indexar o conhecimento retido em casos anteriores. Estes métodos incluem a identificação da situação do problema, a pesquisa de casos anteriores similares ao novo caso, a utilização do caso mais similar para sugerir uma solução para o novo problema, a avaliação da solução proposta, e a atualização do sistema através da aprendizagem da experiência.
Os casos podem ser mantidos como experiências concretas, ou um conjunto de casos similares devem dar origem a um caso generalizado. Podem ser armazenados como unidades de conhecimento separadas, ou divididas em subunidades e distribuídas dentro da estrutura de conhecimento. Os casos podem ainda ser indexados dentro de uma estrutura de índices plana ou hierárquica.
A solução de um caso anterior pode ser aplicada diretamente ao problema atual, ou modificada de acordo com as diferenças entre os dois casos. A seleção de casos, adaptação de soluções, e aprendizagem a partir de uma experiência pode ser guiada e suportada por um modelo de conhecimento geral de domínio, através de conhecimento mais compilado e raso, ou ser baseada apenas numa similaridade aparente e sintática.
Os métodos de Raciocínio baseado em Casos podem ser puramente autossuficientes e automáticos, ou podem interagir com o utilizador para apoio e orientação das suas ações. Alguns métodos assumem uma quantidade significativa de casos amplamente distribuídos na sua base de casos, enquanto outros se baseiam em conjuntos mais limitados de casos típicos. Os casos anteriores podem ser recuperados e avaliados sequencialmente ou em paralelo.
Assim, um ciclo geral de Raciocínio baseado em Casos pode ser descrito através dos quatro processos seguintes, conhecidos como “os quatro REs” (Aamodt e Plaza, 1994; Beddoe e Petrovic, 2006; Beddoe et al., 2009):
Recuperar o caso (ou casos) mais similar(es). A recuperação de casos implica: identificar um problema, o que pode envolver a simples observação das suas características mas também abordagens mais elaboradas de modo a tentar perceber o problema dentro do seu contexto; retornar um conjunto de casos suficientemente similares com o novo caso, de acordo com uma similaridade mínima; e selecionar o melhor caso deste conjunto de casos.
115
Reutilizar a informação e o conhecimento do caso recuperado para resolver o problema. A reutilização da solução do caso recuperado foca-se em dois aspetos: as diferenças entre o caso passado e o caso atual; e na identificação de partes do caso recuperado que possam ser transferidas para o novo caso, o que pode ser realizado através de uma cópia direta ou através de adaptação da solução para o novo caso.
Rever a solução proposta. A fase de revisão consiste em aplicar a solução sugerida pela fase de reutilização num ambiente de execução, avaliar o resultado obtido, e aprender a partir do sucesso (passagem à próxima fase) ou efetuar uma reparação da solução através da utilização de conhecimento específico do domínio do problema.
Reter as partes da experiência que se revelarem úteis para resoluções futuras de problemas. A aprendizagem a partir do sucesso ou falha da solução proposta é desencadeada através do resultado da avaliação e possível reparação. A fase de retenção envolve selecionar qual a informação que é importante guardar, de que forma retê-la, como indexar o caso para uma recuperação futura, e como integrar o novo caso na estrutura de memória.
116
A Figura 6.3 ilustra o ciclo de funcionamento do Raciocínio baseado em Casos, onde uma descrição inicial de um problema define um novo caso, que é usado para recuperar um caso da base de casos. O caso recuperado é combinado com o novo caso, através da reutilização, para dar origem a uma solução sugerida para o problema inicial. Através do processo de revisão, a solução é testada, por exemplo, através da aplicação num ambiente de execução, e possivelmente reparada se falhar. Durante o processo de retenção, a experiência útil é retida para reutilização futura, e a base de casos é atualizada com o novo caso aprendido, ou através da modificação de alguns casos existentes.
A tarefa de recuperação de casos começa com uma descrição parcial do problema, e termina quando é encontrado o caso mais similar na base de casos. As suas subtarefas são referidas como Identificação, Correspondência, e Seleção, executadas nesta ordem. A Identificação surge basicamente com um conjunto de características relevantes para o problema. O objetivo da Correspondência é retornar um conjunto de casos que são suficientemente similares com o novo caso, dada uma similaridade mínima. A Seleção, tal como nome indica, pretende selecionar o melhor caso do conjunto existente.
Identificar um problema pode envolver a simples observação das suas características de entrada, mas muitas vezes, e particularmente para métodos de conhecimento intensivo, aplicam-se abordagens mais elaboradas, nas quais são realizadas tentativas para “perceber” o problema no seu contexto. Perceber um problema envolve a filtragem das características ruidosas do problema, de modo a inferir outras relevantes ao problema, para verificar se os valores das características fazem sentido no contexto, para gerar expectativas para outras características, etc. Estas outras características podem ser inferidas através do uso de um modelo de conhecimento geral, ou através da recuperação de descrições similares ao problema, a partir da base de casos, e usar características desse caso como características esperadas.
A tarefa de encontrar uma boa correspondência é tipicamente dividida em duas subtarefas: um processo inicial de correspondência que recupera um conjunto plausível de casos candidatos e um processo mais elaborado de seleção do melhor caso do conjunto. O processo de encontrar um conjunto de casos é realizado através do uso das características do problema como índices para a base de casos de uma forma direta ou indireta. A literatura refere três formas de recuperação de casos (Aamodt e Plaza, 1994): através do uso direto dos apontadores dos índices das características do problema, através da pesquisa numa estrutura de índices, ou através da pesquisa num modelo de conhecimento geral de domínio. Os casos podem ser recuperados apenas a partir das características de entrada,
117 ou também a partir das características inferidas das entradas. Os casos que correspondem a todas as características de entrada são bons candidatos para a correspondência, mas, dependendo da estratégia seguida, os casos que correspondem a uma certa porção das características do problema (de entrada ou inferidas) também podem ser recuperados. É necessária uma forma de aceder ao nível de similaridade. Uma medida de similaridade é definida normalmente por uma fórmula para calcular a similaridade entre casos prévios e o novo caso (Burke et al., 2003). Os casos anteriores mais similares são recuperados para o novo caso. O desenvolvimento desta medida de similaridade para problemas complexos do mundo real tem sido identificado como um dos maiores desafios de investigação nesta área.
Na Seleção, é selecionado o melhor caso a partir do conjunto de casos similares. Este processo pode ser efetuado durante o processo de correspondência inicial, mas muitas vezes é retornado um conjunto de casos, ao invés de um único caso. O caso mais similar é normalmente determinado através da avaliação mais profunda do nível de correspondência inicial. O processo de seleção gera tipicamente consequências e expectativas para cada caso recuperado, e tenta avaliar as consequências e justificar as expectativas. Isto pode ser realizado através da utilização do modelo de conhecimento geral de domínio do sistema, ou questionando o utilizador para confirmar ou para introduzir informação adicional. Os casos são eventualmente classificados recorrendo a alguns critérios métricos ou de classificação.
A reutilização da solução do caso recuperado foca-se em dois aspetos: as diferenças entre o caso passado e o caso atual, e na identificação de partes do caso recuperado que possam ser transferidas para o novo caso. Em tarefas de classificação simples, as diferenças são ignoradas (as diferenças são consideradas não relevantes enquanto as similaridades são consideradas relevantes) e a solução do caso recuperado é transferida para o novo caso como a sua solução. Este é um tipo trivial de reutilização. No entanto, outras abordagens têm em consideração as diferenças entre os dois casos, sendo que a parte reutilizada não pode ser diretamente transferida para o novo caso, pois requer um processo de adaptação que tem em conta essas diferenças.
A literatura refere duas formas de reutilizar casos passados:
Reutilizar a solução do caso passado, onde a solução passada não é diretamente a solução para o novo caso, mas existe algum conhecimento que permite transformar a antiga solução na solução para o novo caso.
Reutilizar o método passado que constrói a solução, onde é observada a forma como o problema foi resolvido no caso recuperado.
118
O caso recuperado detém informação sobre o método usado para a resolução do problema incluindo uma justificação sobre os operadores usados, sub-objetivos considerados, alternativas geradas, falhas, etc. O método recuperado é então reutilizado para o novo problema no novo contexto.
Quando uma solução, gerada pela fase de Reutilização, não é correta, surge uma oportunidade de aprender através da falha. Esta fase é chamada de fase de revisão e consiste em avaliar a solução do caso gerada pela reutilização. Se esta solução for bem- sucedida, é realizada a aprendizagem a partir do sucesso (passagem à próxima fase), senão é efetuada uma reparação da solução através da utilização de conhecimento específico do domínio do problema.
A avaliação aplica a solução proposta num ambiente de execução e avalia o resultado. Este é normalmente um passo fora do sistema de Raciocínio baseado em Casos, uma vez que requer a execução do problema numa aplicação. Os resultados desta execução podem demorar algum tempo a surgir, dependendo do tipo de aplicação. A solução pode ainda ser aplicada num programa de simulação que é capaz de gerar a solução correta.
A reparação de casos envolve a deteção dos erros da solução atual e a recuperação ou geração das explicações para esses erros. As explicações são usadas de modo a ser possível modificar a solução dum modo em que as falhas detetadas anteriormente não ocorram. A solução revista pode ser retida diretamente, ou pode ser avaliada e reparada novamente.
Finalmente, a fase de retenção permite incorporar no conhecimento existente o que é útil reter da resolução do novo problema. A aprendizagem a partir do sucesso ou falha da solução proposta é desencadeada através do resultado da avaliação e possível reparação. Esta fase envolve selecionar a informação a reter do caso, de que forma deve ser retida, como indexar o caso para uma recuperação futura em casos similares, e como integrar o novo caso na estrutura de memória.
No Raciocínio baseado em Casos, a base de casos é sempre atualizada, independentemente da forma como o problema foi resolvido. Se foi resolvido através do uso de um caso anterior, o novo caso pode ser construído com base neste. Se o problema foi resolvido por outros métodos, incluindo a requisição de informação ao utilizador, é necessário construir um novo caso completo para ser armazenado. Em qualquer das
119 situações, é necessário tomar uma decisão sobre o que usar como fonte de aprendizagem. Podem também ser incluídas no novo caso justificações acerca das soluções seguidas.
O problema de indexação é um problema central, bastante focado no Raciocínio baseado em Casos, e consiste em decidir quais os tipos de índices a usar em futuras recuperações de casos, bem como definir a estrutura do espaço de pesquisa dos índices. Os índices diretos evitam o segundo passo, mas requerem de qualquer forma o problema de identificar o tipo de índices a usar. Uma solução trivial para este problema é o uso de todas as características de entrada como índices.
O último passo da atualização da base de conhecimento é realizado através da integração do novo caso. Se não foi construído nenhum novo caso, nem nenhum conjunto de índices de raiz, a tarefa de integração corresponde ao passo principal do processo de retenção. Através da modificação dos índices dos casos existentes, os sistemas de Raciocínio baseado em Casos podem aprender para se tornarem melhores avaliadores de similaridade de casos. A afinação dos índices existentes é uma parte importante da aprendizagem, uma vez que a importância de um índice para um caso particular é ajustada devido ao sucesso ou falha da utilização de um caso passado para a resolução do problema. Para as características que se revelaram relevantes no âmbito da recuperação de um caso bem-sucedido, a associação com o caso é fortalecida, enquanto é enfraquecida para características que levaram a um caso mal sucedido.
Um sistema de Raciocínio baseado em Casos é bastante dependente da estrutura e conteúdo da sua base de casos. Desde que um problema é resolvido, através da utilização da experiência passada adequada para a resolução do novo problema, o processo de recuperação precisa de ser eficaz e razoavelmente eficiente. Adicionalmente, uma vez que a experiência de um problema solucionado tem de ser retida na base de casos, essa integração de um novo caso em memória deve ser igualmente eficaz e eficiente. No Raciocínio baseado em Casos existe o problema da representação de casos que consiste principalmente em decidir como a base de casos deve ser organizada e indexada para uma recuperação e reutilização eficaz. Uma dificuldade adicional refere-se à forma de integrar a estrutura da base de casos num modelo de conhecimento geral de domínio, na medida em que tal conhecimento é incorporado.
120