Ciclo do RBC segundo Aamod

 
RBC

Introdução

Aplicações

Representação
de Casos

Recuperação de Casos

Similaridade

Laboratório 1:
CBR-Works

Reutilização e
Adaptação de
Casos

Laboratório 2:
CBR-Works na
Web

Bibliografia

4. Recuperação de Casos no Raciocínio Baseado em Casos

Uma das hipóteses básicas de sistemas de RBC é que problemas similares possuem soluções similares. Com base nesta hipótese, o critério a posteriori da utilidade de soluções passa a ser reduzido ao critério a priori da similaridade de descrições de problema. Esta forma de se proceder é justificada pela premissa de que, em muitas aplicações, a similaridade de definições de problemas implica a aplicabilidade da solução de um sobre outro.

A eficácia de enfoques baseados em casos depende essencialmente, portanto, da escolha de um conceito de similaridade adequado para o domínio de aplicação e a estrutura dos casos usada. Este conceito de similaridade deveria permitir a estimativa da utilidade de um caso com base na similaridade observada entre a descrição do problema atual e a contida no caso. 

No cerne da definição do conceito de similaridade é preciso, portanto, que esteja a questão da determinação da utilidade do caso escolhido para a solução da problemática atual. A solução descrita em um exemplo de caso escolhido pode ser útil para um novo problema, caso ela:

  • permita o solucionamento do problema atual de alguma forma;
  • evite a repetição de um erro anterior;
  • permita um solucionamento eficiente do problema, que seja mais rápido do que, por exemplo, utilizar uma heurística passo a passo para calcular uma solução;
  • ofereça a melhor solução para o problema de acordo com um critério de otimalidade qualquer;
  • ofereça ao usuário uma solução cuja lógica possa ser compreendida por ele.
4.1. Metas de Recuperação 

Em linguagem coloquial, similaridade é entendida como sendo a correspondência ou co-ocorrência de atributos ou características. No contexto do RBC, esta visão simplista deve ser tomada de forma mais diferenciada. 
As aplicações de sistemas de RBC e os objetivos que almejam atingir podem ser muitos e variados. Alguns exemplos são:

  • Pessoal de um Serviço de Atendimento ao Consumidor de um fabricante de impressoras pode usar um sistema de RBC de help desk para realizar o diagnóstico de um defeito descrito por um cliente, ao telefone, e indica soluções. 
  • Um viajante potencial pode usar um sistema de comércio eletrônico baseado em RBC, na Internet, para encontrar um pacote de viagem de acordo com as suas exigências. 
  • Um arquiteto pode utilizar um sistema de planejamento baseado em RBC para obter os primeiros esboços de um projeto de um prédio atendendo a um conjunto de requisitos. 
Uma vez que se pode associar idéias muito diferentes com o conceito de utilidade, é necessário que primeiro se defina de maneira clara quais são os objetivos do processo de escolha de casos em um sistema baseado em casos. Um cálculo de similaridade necessita estar sempre integrado num processo cognitivo objetivo. No julgamento de similaridade existe uma dependência dos objetivos a serem atingidos pelo processo de solução do problema. Essa dependência manifesta-se, entre outras coisas, no fato de que tipos de características de um caso relevantes ao objetivo do sistema têm um papel essencial.

Uma meta de recuperação explicitamente coloca o objeto a ser reutilizado, a finalidade de sua reutilização, a tarefa relacionada à reutilização, o ponto de vista específico e o contexto particular.

4.2. Indexação 

Para que se possa encontrar casos similares na base de casos para um problema dado, temos de definir quais atributos usaremos para realizar a comparação entre um caso e a situação presente. 
Estes atributos, utilizados para a determinação de casos adequados para comparação, são denotados índices. 

Assuma que, independentemente da representação de casos específica utilizada (veja Capítulo 4), um caso consista de um conjunto de entidades de informação. Uma entidade de informação (EI) é uma parte atômica de um caso ou descrição de problema. Por exemplo, em relação à representação de pares atributo-valor, cada atributo representa uma entidade de informação do caso. 

Podemos então diferenciar as entidades de informação no âmbito de um caso de acordo com seu uso: 

  • entidades de informação utilizadas para a recuperação, também denotadas como índices;
  • entidades de informação que provêm informação contextual ou de soluções do problema úteis ao usuário, mas que não são diretamente utilizadas para a recuperação, também chamadas de informações não-indexadas. 
Tomemos por exemplo uma agência de viagens vendendo pacotes de viagem pela Internet. O seu sistema poderá utilizar a categoria dos hotéis, o seu país e o tipo de férias desejado (aventura, cultural, descanso) como entidades de informação indexadas. Num sistema de help desk, os sintomas do problema podem ser usados como índices, enquanto o diagnóstico e a terapia são informações não-indexadas.

4.3. Metodologias de Indexação

No RBC temos de utilizar esruturas de indexação que nos permitam indexar um caso por 30 ou mais chaves secundárias e nenhuma chave primária e realizar a recuperação com base em um subconjunto dessas chaves. Técnicas mais comuns como árvores-B, árvores-B+ ou tabelas de hash são inadequadas para uma aplicação assim. Uma das estruturas de indexação que mais tem sido utilizada é a Árvore k-d. Uma árvore k-d é:

  • Árvore binária para indexação multichave. Também chamada Árvore de Pesquisa Binária Multidimensional.
  • Foi "redescoberta" pela Inteligência Artificial no início da década de 1990 como mecanismo de indexação de casos em Raciocínio Baseado em Casos. 
  • Sistemas de RBC muito conhecidos como PATDEX (PATtern Directed EXpert System - o antecessor do CBR-Works e uma componente da bancada de IA MOLTKE [1][2]) e INRECA utilizaram esta técnica.
Estrutura
  • Uma árvore k-d é uma árvore onde k é o número de chaves para cada registro. Assim, chamamos uma árvore com três chaves de árvore 3-d (tridimensional), etc. 

  •  
  • Cada registro em uma árvore k-d possui, além dos dados e ponteiros, um conjunto ordenado de k valores de chaves (v0,...,vk-1).

  •  
  • Associado a cada nodo P está um discriminador DISC(P), que é utilizado para especificar qual chave da k-tupla v0,...,vk-1 será utilizada neste nodo para tomar uma decisão de ramificação.

  • Geralmente o discriminador é função da profundidade do nodo (resto da divisão da profundidade pelo número de chaves). 
     
  • O filho à esquerda é chamado loson(P) e o à direita hison(P)

  •  
  • Caminhamento e Inserção (nas folhas) são realizados seguindo-se a seguinte regra de decisão (dados Q = chaves do registro procurado ou registro a ser incluído e P = nodo):

  • SE Kj(Q) < Kj(P) ENTÃO o registro Q está em loson(P)
    SE Kj(Q) > Kj(P) ENTÃO o registro Q está em hison(P)
     

  • Se dois valores de chave são iguais, a decisão é tomada com base nos demais valores de chave na seguinte ordem (superchave):

  • Sj(P) = Kj(P),Kj+1(P),...,Kk-1(P),K0(P),...,Kj-1(P)
     
  • Se incluirmos o conjunto de registros com 3 chaves abaixo em uma árvore 3-d teremos a árvore mostrada abaixo: 
  • A primeira decisão de ramificação (raiz) é tomada com base na chave primária (8), no nível 1 com base na segunda chave e no nível 2 com base na terceira chave. No nível 3 voltamos a usar a chave 0 como critério de decisão.
Vantagens
  • Árvores k-d podem ser utilizadas diretamente para todos os 3 tipos de pesquisa: simples, com limites e booleana. 
  • O tempo médio de acesso a um registro não é pior do que o da árvore binária. Todas as características de tempo de pesquisa, complexidade, etc da árvore binária valem, no que diz respeito à pesquisa, também para a árvore k-d: O(1,4 log2 n). 
  • Inserção (não balanceada) de um nodo requer também tempo O(log2 n). 
  • Flexibilidade: Aplicável a qualquer tipo de aplicação onde se queira fazer recuperação de chaves secundárias ou recuperação multichaves.
Desvantagens
  • Gera árvores de profundidade extremamente grande. 

  • Solução: Pode ser resolvido através da paginação.
  • Inserção balanceada é extremamente cara. 
  • Rebalanceamento (apos várias inserções ou exclusões)

  • também extremamente caro.
Resumo
  • Boa técnica de indexação para arquivos somente com ou com muitas chaves secundárias (Ex.: bases de casos em CBR).
  • Boa técnica para aplicações onde há poucas modificações. 
  • Utilização da árvore k-d como árvore de índices com paginação é sugerida para implementações em disco.

  • Sugestão para facilitar buscas booleanas: pelo menos uma subárvore com k níveis em cada página.
  • Material da Aula em PDF
  •  
    The Cyclops Project
    German-Brazilian Cooperation Programme on IT
    CNPq GMD DLR