2. FUNDAMENTAÇÃO TEÓRICA
2.2. RACIOCÍNIO BASEADO EM CASOS
2.2.2. Principais Etapas do Ciclo de Desenvolvimento de um Sistema de RBC
O processo de desenvolvimento de um sistema de RBC é uma tarefa iterativa e não se
encaixa em uma metodologia genérica. A seguir serão descritas algumas destas etapas que são
consideradas as mais importantes segundo Fernandes (2003):
o Representação dos casos: é a representação do conhecimento processado em forma de
casos que futuramente serve para sugerir uma solução para um problema;
o Indexação: é a associação de rótulos em casos, de maneira a caracterizá-los para
posteriormente recuperá-los em uma base de conhecimento;
o Recuperação: esta etapa tem por objetivo recuperar os casos mais similares,
identificando-os através de características relevantes a solução;
o Ajuste da situação: esta etapa tem por objetivo transformar novos casos que não estejam
no formato da base no formato ideal; e
o Aprendizagem: é a acumulação de novas experiências na base de conhecimento.
A Figura 1 ilustra passo a passo cada uma das principais etapas que fazem parte do ciclo de
um RBC.
Figura 1. Ciclo de um RBC
Fonte: Adaptado de Fernandes (2003)
2.2.2.1.Representação dos Casos
Um caso é definido pela representação do conhecimento contido em uma experiência vivida
que conduz o indivíduo a alcançar seus objetivos. Todo caso é composto por Problema, que
descreve o estado do mundo real onde o caso ocorre; e Solução, que contém o estado das soluções
derivadas para o problema. Pode-se ainda visualizar o caso pela representação do espaço do
problema e pela representação do espaço da solução (LAGEMANN, 1998).
Segundo Ramalho (1999), muitos autores definem um caso como sendo uma abstração de
uma experiência, que deve estar descrita em termos de seu conteúdo e contexto. Estas
experiências precisam ser organizadas em unidades bem definidas chamadas base de
conhecimento ou memória de casos. (RAMALHO, 1999).
problema, e determinar qual a melhor forma é uma tarefa um pouco difícil, mas a forma mais
utilizada é a descrição através de atributos. Algumas aplicações requerem um conhecimento
profundo do domínio do problema, não dispensando a presença de um especialista. Muitos sistemas
de RBC usam sofisticadas representações dos casos para expressar o conhecimento, com atributos
de um caso referindo-se a outros casos. A representação dos casos é uma das mais importantes
etapas do processo de desenvolvimento de um sistema de RBC (RAMALHO, 1999).
2.2.2.1.1. Representações Atributo-Valor
É a forma mais simples utilizada para representação dos casos. É realizada por vetores
atributo-valor, sendo que um caso é representado por um conjunto de pares atributo-valor. O
conjunto de atributos pode ser fixo, ou pode variar entre casos individuais. Cada atributo geralmente
é associado a um domínio (tipo de dados), ou faixa para seus possíveis valores. Tipos básicos de
dados geralmente são utilizados neste método como: número (real ou inteiro), booleano, data,
símbolo (ordenado, não ordenado ou taxonomia), e string.
Para este tipo de representação é muito importante a escolha de atributos relevantes e com
significância preditiva no comportamento dos objetos representados. Este tipo de representação
possui muitas vantagens, dentre elas: representação simples e fácil de implementar; simplifica a
implementação de medidas de similaridade eficientes; fácil de armazenar; e sua representação é
eficiente e possível.
2.2.2.1.2. Representações Orientadas a Objetos
Assim como nas linguagens de programação, descrevem o domínio particionando-o com
relação a seus objetos. São de muita importância em domínios de aplicação muito complexos que
podem conter casos com estruturas variáveis. Neste contexto, um objeto representa uma entidade do
domínio, e os estados de um objeto podem ser modificados apenas através dos serviços que ele
fornece.
Objetos de tipos similares agrupados formam classes. Elas definem o espaço de estado, e as
operações de seu tipo que podem ser aplicadas sobre objetos da classe. Um objeto concreto de uma
classe é uma instância, que é um conjunto de dados que obedece uma estrutura e tipos de atributos
definidos em uma classe. Este tipo de representação permite uma modelagem que pode relacionar
objetos de diferentes tipos como: relações taxionômicas e relações composicionais
(WANGENHEIM & WANGENHEIM, 2003).
Segundo Wangenheim & Wangenheim (2003), as vantagens da modelagem orientada a
objetos são:
o Representação dos casos estruturada e natural;
o Representações estruturadas e relacionais podem ser representadas diretamente;
o Armazenamento mais compacto do que em representações atributo-valor; e
o Informação estrutural pode ser utilizada para a adaptação da solução.
2.2.2.1.3. Redes Semânticas
É um tipo específico de grafo utilizado para representar conhecimento na forma de um
grafo, similar a uma rede. Uma situação ou uma entidade quase sempre possui uma estrutura
composta, que é representada com nodos representando unidades conceituais e arestas dirigidas
representando relacionamentos entre estas unidades. Um tipo específico de rede semântica é a Rede
de Recuperação de Casos (RRCs).
RRCs são capazes de trabalhar com termos vagos e ambíguos podendo manipular bases de
casos de tamanho razoável de forma eficiente. As RRCs baseiam-se em princípios de Redes Neurais
para pesquisar na base de casos. Uma RRC é considerada como uma Entidade de Informação (EI),
que é uma parte atômica de um caso ou de uma consulta. Um caso-RRC consiste em um descritor
de caso único e uma série de entidades de informação.
2.2.2.1.4. Árvores k-d
A idéia básica em utilizar árvores como estrutura de recuperação e armazenamento é a de
estruturar o espaço de busca com base na densidade observada. O principal exemplo de estruturas
de árvores utilizadas em um RBC são árvores d, que são árvores de pesquisa binária
k-dimencionais. Elas representam dados estruturados de acordo com k-chaves, e são árvores de busca
binária onde em cada nível se utiliza uma chave diferente, dentre suas k chaves, sendo k os atributos
dos casos armazenados.
Em uma árvore k-d, uma busca é realizada de forma incremental para achar dentro de um
conjunto de casos o caso mais similar. Isso é feito de maneira que se construa uma árvore que
divide o espaço de busca em partes, levando-se em conta a similaridade entre os casos. As folhas da
árvore que contêm um subconjunto específico de casos não mais divididos, são chamadas de
repositório de casos.
2.2.2.2.Indexação
Para Kolodner, (1993), indexação de casos é a associação de rótulos em casos de forma a
caracterizá-los para posteriormente recuperá-los em base de casos, mas esta não é uma tarefa
simples, pois para construir uma boa coleção de índices para um conjunto de casos, é necessário se
ter em mente o que faz um índice "bom" e como escolhê-lo.
As informações são indexadas para que possam mais fácil e rapidamente serem recuperadas.
Em livros, por exemplo, há a preocupação com a correta identificação das necessidades futuras de
recuperação para melhor definir quais informações farão parte dos índices (LAGEMANN, 1998).
Os índices de um caso são tão importantes como os índices de livros em uma biblioteca. A
indexação se faz necessária para que os casos possam ser recuperados, sendo ela quem determina
quais os atributos que devem ser comparados para se avaliar a similaridade entre o caso de entrada e
os casos da base (Kolodner & Leake, 1996; Weber-Lee, 1998 apud RAMALHO, 1999).
A indexação é a essência do RBC, pois orienta a avaliação da similaridade, e determina o
que comparar entre os casos para determinar sua similaridade. Assim, um RBC além de usar índices
com os objetivos de facilidade e rapidez na recuperação, também os usa para realizar eficientemente
a atribuição de similaridade entre os casos (LAGEMANN, 1999).
Segundo Kolodner (1993) uma boa indexação deve ter as seguintes características:
o Antecipar o vocabulário que será usado na recuperação;
o Utilizar os conceitos que são normalmente usados para descrever os casos através de
características superficiais ou mais abstratas;
o Antecipar as circunstâncias nas quais a recuperação será realizada; e
A seleção de índices é o processo de identificação de descritores para um caso particular. A
comunidade de RBC tem proposto diversos gridlines para a escolha de índices (KUHNEN, 2000):
o índices devem ser preditivos;
o predições feitas devem ser úteis;
o índices devem ser abstratos o suficiente para tornar o caso útil em uma variedade de
futuras situações; e
o índices devem ser concretos o suficiente para serem facilmente reconhecíveis em futuras
situações.
Uma difícil tarefa na definição dos índices é prever que tipos de necessidade irão surgir e
que tipos de informações serão necessárias para recuperar casos em situações futuras. Muitos
esforços foram feitos para estabelecer regras gerais de vocabulário de índices em classes
particulares nas tarefas de RBC, mas esta tarefa acaba ainda sendo desenvolvida para atender os
objetivos específicos da recuperação de cada aplicativo que use RBC (LAGEMANN, 1998).
Segundo Kolodner (1993), existem muitos métodos de indexação automática, e dentre eles
estão:
o Indexação por meio de Entidades de Informação (EIs): tendem a ser preditivas ao longo
de todo domínio;
o Indexação baseada em diferenças: que seleciona índices que diferenciam um caso do
outro;
o Métodos de generalização baseados em similaridade e em explicação: produzem um
conjunto apropriado de EIs como índices para casos abstratos (protótipo) a partir de
casos que compartilham um conjunto comum de EIs, enquanto as EIs não
compartilhadas são usadas para um segundo nível de indexação dos casos específicos; e
o Método de aprendizado por indução: identificam automaticamente EIs preditivas, que
2.2.2.3.Similaridade
Segundo Wangenheim & Wangenheim (2003), a primeira idéia concebe similaridade como
uma relação entre objetos ou fatos, que existe ou não existe. A segunda idéia pressupõe a idéia de
uma similaridade maior ou menor, enquanto o terceiro enfoque postula a quantificação da extensão
desta semelhança.
Segundo Fernandes (2003), um caso será similar ao outro quando as características que
representam realmente o conteúdo e o contexto do mesmo forem semelhantes.
Uma medida de similaridade sobre um universo U é uma função do tipo ilustrado na
Equação 1.
sim(x, y): (U x U -> [0,1]) Equação 1
Existem muitas medidas de similaridade que podem ser citadas como:
o Nearest Neighbour (vizinho mais próximo): é bastante simples para determinação da
similaridade entre dois casos. A idéia básica é que as ocorrências em uma base de casos
podem também ser vistas como pontos em um espaço multidimensional. O conceito do
Nearest Neighbour é uma soma, onde cada índice tem uma importância para determinar
o vizinho mais próximo ponderando os índices. Por exemplo, o modelo de uma máquina
é considerado mais importante do que a correia do motor;
o Distância de Haming: que é definida como o número de bits divergentes em dois vetores
x e y de mesmo tamanho; e
o Medida de similaridade invariante é aquela onde todos os atributos usados no seu cálculo
são simétricos.
2.2.2.4.Recuperação
Recuperar é o processo de retornar um ou mais casos da base de casos em resultado à
comparação de um novo caso com cada um dos casos da base. Essa comparação é feita por meio de
uma avaliação de similaridade. O resultado dessa comparação é a seleção de um caso ou uma
combinação de casos que sugere uma solução para o novo caso (KOLODNER, 1993).
É importante nesta etapa que o sistema de RBC possua meios de identificar os casos que
tenham um potencial para serem mais úteis. Determinar o quanto um caso pode ser útil, requer
considerações sobre quais são os propósitos a que ele se destina e quais dos seus aspectos foram
relevantes no passado. Os procedimentos de comparação estarão habilitados para determinar quais
dimensões de um caso devem ser focadas no julgamento da similaridade (Leake, 1996 apud
RAMALHO, 1999).
Considerando que a definição dos índices retrata todos os aspectos a serem considerados na
recuperação, os algoritmos de comparação poderão usá-los para se orientar na busca, determinando
quais características devem ser focadas no julgamento da similaridade. Qualquer caso pode ser
indexado de várias formas, entretanto, o importante é que o algoritmo de comparação esteja apto a
distinguir entre os aspectos relevantes em cada caso específico (LAGEMANN, 1998).
Dada uma especificação de entrada de um problema, o sistema realiza uma pesquisa na sua
memória de casos. Se existir um caso na base idêntico ao caso de entrada (o que é raro
acontecer), o caso recuperado pode ser usado diretamente para solucionar o problema. Porém, se
isso não acontecer (o caso é apenas similar ao problema de entrada), o sistema seleciona e
recupera os casos que mais se assemelham ao caso de entrada (KUHNEN, 2000).
2.2.2.4.1. Algoritmos de Recuperação
A seguir serão descritos alguns dos principais algoritmos de recuperação.
Matching e Ranking
Realiza uma procura em locais de memória diretamente através de heurísticas match e
ranking, acessando casos que podem ser úteis. Conforme Kolodner (1993), match é um processo
que compara dois casos entre si e determina o grau de similaridade entre eles. Ranking, ordena os
casos partially-matching conforme sua utilidade, determinando qual é melhor que os outros.
As entradas de dados para os processos de match e ranking são: novo problema que o
sistema está tentando resolver, o objetivo de uso para os casos recuperados, o conjunto de casos
recuperados, índices associados com cada caso recuperado, e critério de match razoável, indicando
quando os procedimentos de Match e Ranking devem parar.
Contagem de Características
Neste método, o cálculo da similaridade consiste da contagem dos atributos do caso
armazenado na base que coincidem com os atributos do caso de entrada. A cada atributo i do caso
armazenado na base igual ao atributo i do caso de entrada, soma-se 1 ao número de atributos
coincidentes entre os dois casos. O grau de similaridade entre o novo caso e o caso armazenado na
base é dado pelo percentual do número de atributos coincidentes entre os dois casos em função do
número de atributos considerados para a comparação destes.
Nearest Neighbour Retrieval (O Vizinho mais Próximo)
Esta é uma técnica muito utilizada por ter uma fácil implementação, e o primeiro passo para
aplicá-la é identificar as características essenciais para resolução do problema, sendo as mesmas
representadas por algum sistema de coordenadas, para que a medida de distância entre os casos
existentes e um novo caso possa ser medida. Ainda pode-se considerar outros fatores além dos
selecionados, o que fará com que atributos tenham pesos diferenciados.
A similaridade entre um novo caso e um caso existente é determinada para cada atributo.
Esta medida deve ser multiplicada por um fator peso, e calculada a somatória de todos os atributos,
permitindo assim estabelecer uma medida de similaridade entre os casos.
Nenhum algoritmo de recuperação informa qual a distância que será alimentada pela
distância real. Para isto existem várias medidas de distância como: distância euclidiana, distância
euclidiana quadrada, city-bloch, chebychev, percentual, etc.
A fórmula de similaridade pelo vizinho mais próximo, segundo Fernandes (2003), é
representada como ilustrado na Equação 2.
Similaridade(N, F) = N F
iw
i n i i f( , )* 1 =Equação 2
Onde:
N = novo caso
F = caso existente
n = número de atributos
i = atributo individual variando de 1 a n
f = função de similaridade para o atributo i nos casos N e F
w = peso do atributo i.
O cálculo será aplicado para toda a base de casos para que se obtenha um ranking dos
mesmos. A similaridade normalmente varia de um intervalo entre 0 e 1, sendo 0 atribuído ao caso
sem similaridade e atribuído 1 ao caso que tiver a similaridade exata (FERNANDES, 2003).
Como saber qual algoritmo de recuperação especifica qual distância que será alimentada
pela distância real, existem várias medidas de distância que podem ser aplicadas, segundo
Fernandes (2003):
Distância Euclidiana: sendo a mais utilizada, trata somente da distância geométrica em um
espaço multidimensional. Sua fórmula pode ser representada como ilustrado na Equação 3.
distancia(x, y) =
½2
)
(x
−y
ii i
Equação 3
Distância Euclidiana Quadrada: é o quadrado da distância euclidiana padrão. O espaço vai
crescendo à medida que os objetos aparecem. Sua fórmula pode ser representada como ilustrado na
Equação 4.
distancia(x, y) = (x y
i)
2i i
− Equação 4
Distância City-block (Manhattan): é a distância média entre as dimensões. Em muitos casos
esta medida gera resultados parecidos com a distância euclidiana, mas o efeito de grandes
diferenças é minimizado aqui. Sua fórmula pode ser representada como ilustrado na Equação 5.
Distância Chebychev: indicada para casos em que seja necessário definir dois objetos como
diferentes, se os mesmos forem diferentes em qualquer dimensão. Sua fórmula pode ser
representada como ilustrado na Equação 6.
distancia(x, y) = Maximumx
i−y
iEquação 6
Distância Forte: aplicada quando a forma de incrementar ou decrementar o peso progressivo
alocado na dimensão do objeto é muito diferente. Sua fórmula pode ser representada como ilustrado
na Equação 7.
distancia(x, y) = −
½ i p i iy
x Equação 7
Distância Percentual: medida extremamente útil para dados em que a dimensão analisada for
natural. Sua fórmula pode ser representada como ilustrado na Equação 8.
distancia(x, y) =
( )
i
numberof x
i≠ y
iEquação 8
Conforme Fernandes (2003), havendo pesos diferentes para as características, a distância
entre o novo caso (N) e o caso existente (A) é dada pela fórmula representada como ilustrado na
Equação 9.
(X W ) (Y W )
d
a=
a*
x+
a*
yEquação 9
Recuperação Indutiva
Segundo Fernandes (2003), a técnica de recuperação indutiva é utilizada em ferramentas
comerciais mais poderosas, e classifica padrões entre os casos, particionando-os em conjuntos, ou
clusters. Cada conjunto possui casos similares, e um dos requisitos da indução é uma definição da
Na recuperação indutiva são construídas árvores de decisão baseadas em dados de
problemas passados. Em sistemas de RBC, a base de casos é analisada por um algoritmo que irá
classificar ou indexar os casos. Um dos mais conhecidos é o algoritmo ID3. A técnica indutiva é
bem mais rápida que as demais, executando-se os casos em que a base de casos é muito grande. O
principal problema desta técnica é que em casos inéditos não haverá recuperação de nada
(LAGEMANN, 1988).
Recuperação Seqüencial
Segundo Wangenheim & Wangenheim (2003), a Recuperação Seqüencial é a mais simples
técnica de recuperação, pois nela a medida de similaridade é calculada seqüencialmente para todos
os casos da base, permitindo a determinação dos m casos mais similares. Para a determinação de
uma relação de preferência específica para a situação, aplica-se sucessivamente o conceito de
similaridade do sistema a cada um dos casos da base de casos. Depois todos os casos são ordenados
de acordo com a sua similaridade com a consulta, sendo o resultado os m casos mais similares. Este
método é um método de aplicação universal.
TIPOS:
TipoCaso = ...
SimCaso = REGISTRO
Case : TipoCaso;
similaridade: [0..1]
FIM;
VARIAVEIS:
ListaCasoSim : VETOR [1..m] DE SimCaso
CaseBase: ARRAY [1..n] DE TipoCaso (* base de casos *)
Consulta : TipoCaso
Figura 2. Estrutura de dados da recuperação seqüencial
Fonte: Wangenheim & Wangenheim (2003)
FUNCAO SelecRel(CaseBase,Consulta, m): ListaCasoSim
INICIO
ListaCasosSim[1..m].similaridade := 0
PARA i := 1 TO n FACA
SE sim(Consulta,CaseBase[i]) > ListaCasoSim[m].similaridade
ENTAO insira CaseBase[i] em ListaCasoSim
RETORNE ListaCasoSim
FIM
Figura 3. Algoritmo de recuperação seqüencial
Fonte: Wangenheim & Wangenheim (2003)
similaridade arbitrárias, pois não utiliza nenhum tipo de indexação; e permite consultas ad-hoc
independentes do conceito de similaridade, também por não possuir indexação.
Uma das principais desvantagens deste processo, conforme Wangenheim & Wangenheim
(2003), é a má performance para bases com um grande número de casos ocasionado pelo fato do
método ser aplicado seqüencialmente. Outras desvantagens são: esforço de recuperação constante,
independentemente da complexidade da consulta e do número de casos a serem recuperados; e o
esforço de recuperação não pode ser reduzido ou limitado por conhecimento adicional, como
conhecimento de domínio.
2.2.2.5.Adaptação
Pelo fato de nenhum problema passado ser exatamente igual a um problema atual, soluções
passadas geralmente são adaptadas para solucionar novos problemas (KOLODNER, 1993).
Adaptação pode ser uma simples substituição de um atributo da solução por outro ou uma complexa
e total modificação na estrutura da solução.
A adaptação pode ser feita de várias formas (LAGEMANN, 1998):
o Pela inclusão de um novo comportamento à solução recuperada;
o Pela eliminação de um comportamento da solução recuperada; ou
o Pela substituição de parte de um comportamento.
Podem ocorrer situações onde há a presença de mais de uma das formas. A etapa de ajuste
da situação é necessária quando o usuário encontra dificuldades em apresentar o problema de
entrada nos moldes dos casos da base. Se este problema ocorre, deve-se fazer os ajustes necessários
para que se possa comparar o caso de entrada com os casos da base (Weber-Lee, 1998 apud
KUHNEN, 2000) .
2.2.2.6.Aprendizagem
Na IA, quando se fala de aprendizagem, é comum pensar no aprendizado por generalização,
tanto pela indução quanto baseado em explicações. Enquanto a memória de RBC informa sobre
similaridades entre casos e também informa sobre quando generalizações podem ser formadas. O
RBC obtém a maioria do seu aprendizado de duas maneiras (LAGEMANN, 1998):
o Pela acumulação de novos casos; e
o Pela identificação de quais índices utilizar ou não na recuperação.
Algoritmos de Aprendizagem Baseados em Instâncias: a aprendizagem baseada em
No documento
UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR CURSO DE CIÊNCIA DA COMPUTAÇÃO
(páginas 23-36)