• Nenhum resultado encontrado

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

i

w

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

i

i 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

)

2

i 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

i

Equaçã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 i

y

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

i

Equaçã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

*

y

Equaçã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

Documentos relacionados