• Nenhum resultado encontrado

UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR CURSO DE CIÊNCIA DA COMPUTAÇÃO

N/A
N/A
Protected

Academic year: 2021

Share "UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR CURSO DE CIÊNCIA DA COMPUTAÇÃO"

Copied!
103
0
0

Texto

(1)

UNIVERSIDADE DO VALE DO ITAJAÍ

CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR CURSO DE CIÊNCIA DA COMPUTAÇÃO

SISTEMA DE HELP DESK UTILIZANDO RACIOCÍNIO BASEADO EM CASOS

Área de Inteligência Artificial por

José Vanderlei de Menezes

Anita Maria da Rocha Fernandes, Drª.

Orientadora

Itajaí (SC), junho de 2006

(2)

UNIVERSIDADE DO VALE DO ITAJAÍ

CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR CURSO DE CIÊNCIA DA COMPUTAÇÃO

SISTEMA DE HELP DESK UTILIZANDO RACIOCÍNIO BASEADO EM CASOS

Área de Área de Inteligência Artificial por

José Vanderlei de Menezes

Relatório apresentado à Banca Examinadora do Trabalho de Conclusão do Curso de Ciência da Computação para análise e aprovação.

Orientador: Anita Maria da Rocha Fernandes,

Drª.

(3)

SUMÁRIO

LISTA DE ABREVIATURAS...iv

LISTA DE FIGURAS...v

LISTA DE TABELAS...vi

LISTA DE EQUAÇÕES ...vii

RESUMO...viii

ABSTRACT...ix

1. INTRODUÇÃO...1

1.1. OBJETIVOS...4

1.1.1. Objetivo Geral...4

1.1.2. Objetivos Específicos...4

1.2. METODOLOGIA...5

1.3. ESTRUTURA DO TRABALHO ...6

2. FUNDAMENTAÇÃO TEÓRICA ...8

2.1. INTELIGÊNCIA ARTIFICIAL...8

2.1.1. Histórico ...8

2.1.2. Técnicas de Inteligência Artificial... 10

2.2. RACIOCÍNIO BASEADO EM CASOS... 10

2.2.1. Tipos de Problemas Resolvidos Através de RBC ... 12

2.2.2. Principais Etapas do Ciclo de Desenvolvimento de um Sistema de RBC.. 13

2.3. PESQUISA E ANÁLISE DE SOLUÇÕES SIMILARES... 26

2.3.1. O iHotel... 26

2.3.2. SistLog ... 28

2.3.3. RBC para o Problema de Suporte ao Cliente nas Empresas de Prestação de Serviço de Software: O Caso Datasul... 32

2.3.4. Avaliação Geral Sobre as Soluções Estudadas ... 34

2.4. TECNOLOGIAS UTILIZADAS NO SISTEMA... 35

2.4.1. Java ... 35

2.4.2. JSP ... 38

2.4.3. Padrão MVC ... 41

2.4.4. MySQL ... 42

2.4.5. NetBeans... 44

3. DESENVOLVIMENTO ...46

3.1. INTRODUÇÃO ... 46

3.2. SISTEMA PROPOSTO ... 46

3.3. MODELAGEM DO SISTEMA ... 48

3.3.1. Análise de Requisitos ... 48

(4)

3.4. ANÁLISE DOS DADOS ... 52

3.5. ESTRUTURAÇÃO DO RBC... 52

3.5.1. Aquisição do Conhecimento ... 53

3.5.2. Representação dos Casos ... 54

3.5.3. Método de Recuperação... 56

3.5.4. Adaptação... 58

3.6. IMPLEMENTAÇÃO DO PROTÓTIPO DO SISTEMA ... 59

3.6.1. Arquitetura do Sistema... 60

3.6.2. Módulos do Sistema ... 64

3.7. VALIDAÇÃO E TESTES ... 72

4. CONCLUSÃO ...73

REFERÊNCIAS BIBLIOGRÁFICAS ...75

A MODELAGEM DO SISTEMA...78

A.1 DIAGRAMAS DE CASOS DE USO ... 78

A.2 DIAGRAMAS DE SEQUENCIA ... 85

A.3 DIAGRAMAS ENTIDADE RELACIONAMENTO... 89

A.4 DESCRIÇÃO DAS TABELAS DE DADOS ... 91

A.5 DESCRIÇÃO DOS ATRIBUTOS DAS TABELAS ... 91

(5)

LISTA DE ABREVIATURAS

AAAI Innovative Application in Artificial Inteligence Award

ASP Active Server Pages

B2B Business to Business

B2C Business to Consumer

CAD/CAM Computer Aided Design/Computer Aided Manufacturing

CPU Central Processing Unit

EI Entidade de Informação

FO Ficha de Ocorrência

HOMER Hotline Mit Erfahrung

HTML HiperText Markup Language

IA Inteligência Artificial

IB3 Instance Based 3

IBL Instance Based Language

ID3 Induction of Decision

IDE Integrated Development Environment

IE Internet Explorer

IIS Internet Information Server

J2EE Java 2 Enterprise Edition

JDB Java Debugger

JDBC Java DataBase Connectivity

JDK Java Development Kit

JRE Java Runtime Environment

JSP Java Server Pages

JVM Java Virtual Machine

MOP Memory Organization Packets

MVC Model View Controller

ODBC Open DataBase Connectivity

ODBMS Object-Oriented Database Management System

RBC Raciocínio Baseado em Casos

RRC Rede de Recuperação de Casos

SC Santa Catarina

TCC Trabalho de Conclusão de Curso

UML Unified Modeling Language

UNIVALI Universidade do Vale do Itajaí

XML eXtensible Markup Language

(6)

LISTA DE FIGURAS

Figura 1. Ciclo de um RBC Fonte: Adaptado de Fernandes (2003) ...14

Figura 2. Estrutura de dados da recuperação seqüencial Fonte: Wangenheim & Wangenheim (2003) ...24

Figura 3. Algoritmo de recuperação seqüencial Fonte: Wangenheim & Wangenheim (2003)...24

Figura 4. Cadastro de Notas Fonte: Miranda (2000)...30

Figura 5. Cadastro de Pesos Fonte: Miranda (2000)...30

Figura 6. Tela Resultado da Consulta Fonte: Miranda (2000)...31

Figura 7. Tela de consulta do Help Desk Fonte: Adaptado de Lagemann (1988) ...33

Figura 8. Tela com caso recuperado Fonte: Adaptado de Lagemann (1988) ...34

Figura 9. Modelo de ambiente de desenvolvimento Java Fonte: Adaptado de Saofrancisco (2006) 37 Figura 10. Fluxo de uma solicitação de um arquivo JSP. Fonte: Unicap (2001)...39

Figura 11. Exemplo de arquitetura de servlets. Fonte: Adaptado de ADTMAG (2006) ...41

Figura 12. Arquitetura do padrão MVC. Fonte: Adaptado de JAVANOROESTE (2006) ...42

Figura 13. Requisitos Funcionais...48

Figura 14. Requisitos Não-Funcionais ...49

Figura 15. Use Case do Administrador ...50

Figura 16. Use Case do Cliente...52

Figura 17. Fluxo de consulta ao RBC. ...53

Figura 18. Estrutura de um caso...55

Figura 19. Exemplo de arquitetura do sistema em um servidor Linux. Fonte: Adaptado de AKADIA (2006)...61

Figura 20. Estrutura de diretórios do NetBeans...62

Figura 21. Estrutura de pacotes...64

Figura 22. Exemplo do arquivo conf.properties Fonte: PortalJava (2005)...64

Figura 23. Tela inicial do sistema ...65

Figura 24. Tela consulta de casos parte 1...65

Figura 25. Tela lista de produtos vazia...66

Figura 26. Tela lista de produtos preenchida. ...66

Figura 27. Tela consulta de casos parte 2. ...67

Figura 28. Tela resultado da consulta...67

Figura 29. Tela de login...68

Figura 30. Tela estrutura de produto. ...69

Figura 31. Tela cadastro de problemas...70

Figura 32. Tela cadastro de estados...70

Figura 33. Tela estrutura de um caso...71

Figura 34. Diagrama de Seqüência – Consulta Caso ...86

Figura 35. Diagrama de Seqüência – Manutenção de Usuários ...87

Figura 36. Diagrama de Seqüência – Manutenção de Casos...88

Figura 37. Modelo Lógico ...89

Figura 38. Modelo Físico...90

(7)

LISTA DE TABELAS

Tabela 1. Atributos do caso e seus parâmetros. ...57

Tabela 2. Atribuição de valores para atributos do método Contagem. ...57

Tabela 3. Atribuição de valores ao atributo “Como está o nível de ruído?”. ...57

Tabela 4. Valores dos atributos dos casos. ...58

Tabela 5. Descrição das Tabelas de Dados utilizadas no Sistema. ...91

Tabela 6. Dicionário de Dados da Tabela Caso. ...91

Tabela 7. Dicionário de Dados da Tabela Caso_Problema. ...92

Tabela 8. Dicionário de Dados da Tabela Atendimentos. ...92

Tabela 9. Dicionário de Dados da Tabela Problema. ...92

Tabela 10. Dicionário de Dados da Tabela Estado. ...92

Tabela 11. Dicionário de Dados da Tabela Grupo. ...92

Tabela 12. Dicionário de Dados da Tabela Conjunto...92

Tabela 13. Dicionário de Dados da Tabela Prod_Conjunto. ...93

Tabela 14. Dicionário de Dados da Tabela Conj_Problema...93

Tabela 15. Dicionário de Dados da Tabela Produto...93

Tabela 16. Dicionário de Dados da Tabela Usuário...93

Tabela 17. Dicionário de Dados da Tabela Prob_Estado. ...93

(8)

LISTA DE EQUAÇÕES

Equação 1...19

Equação 2...21

Equação 3...22

Equação 4...22

Equação 5...22

Equação 6...23

Equação 7...23

Equação 8...23

Equação 9...23

(9)

RESUMO

MENEZES, José Vanderlei de. Sistema de Help Desk Utilizando Raciocínio Baseado em Casos.

Itajaí, 2006. 100, Trabalho de Conclusão de Curso (Graduação em Ciência da Computação)–Centro de Ciências Tecnológicas da Terra e do Mar, Universidade do Vale do Itajaí, Itajaí, 2006.

Um dos grandes problemas que as indústrias de máquinas enfrentam na atualidade é fazer com que o Setor de Atendimento ao Cliente tenha capacidade de realizar um atendimento rápido, seguro e eficaz, fazendo com que os clientes tenham mais confiança e satisfação ao adquirirem seus produtos. Com o objetivo de auxiliar estas empresas em seu processo de atendimento, foi desenvolvido um sistema de Help Desk onde o cliente obtém informações e tira dúvidas sobre problemas que possam ocorrer com os produtos adquiridos, com acesso on-line e disponível 24 horas por dia. Através disso diminui-se o fluxo de atendimento via telefone diretamente com os atendentes e, além disso, proporciona para a empresa um histórico de informações sobre todos os problemas encontrados em seus produtos. Este Sistema baseou-se na técnica de RBC (Raciocínio Baseado em Casos), utilizando-se para o cálculo de similaridade o método do Vizinho Mais Próximo juntamente com o de Contagem de Características. Para seu desenvolvimento foi utilizado a linguagem de script JSP (Java Server Pages) que utiliza a tecnologia e componentes Java, e como banco de dados foi utilizado o MySQL.

Palavras-chave: Help Desk. Raciocínio Baseado em Casos. Inteligência Artificial.

(10)

ABSTRACT

One of the great problems that the industries of machines face in the present time is to make with that the Sector of Attendance to the Customer has capacity to carry through a fast attendance, safe and efficient, making with that the customers have more confidence and satisfaction when acquiring its products. With the objective of assisting these companies in its process of attendance, a system of Help Desk was developed where the customer gets information and takes off doubts on problems that can occur with the acquired products, with access on-line and available 24 hours per day.

Through this the attendance flow diminishes itself saw telephone with the attendants directly and, moreover, it provides for the company a description of information on all the problems found in its products. This System was based on the RBC technique (Reasoning Based on Cases), using for the calculation of similarity the method of the Neighbor Next together with the one to Counting of Characteristics. For its development the language of script JSP was used (Java Server Pages) that it uses the technology and Java components, and as data base was used the MySQL.

Keywords: Help Desk. Case-Based Reasoning. Artificial Intelligence.

(11)

1. INTRODUÇÃO

Este projeto teve como objetivo desenvolver um sistema de Help Desk para Web que utiliza a técnica de Inteligência Artificial do Raciocínio Baseado em Casos para prover aos clientes de uma empresa da cidade de Navegantes. Através deste sistema o cliente tem um livre acesso através da Internet, 24 horas por dia para fazer consultas em uma base de conhecimento e tentar resolver seus problemas sem ter que entrar em contato pelo telefone com a empresa.

A Internet – Internetwork System (sistema de interconexão de rede de comunicação) é um dos meios de comunicação mais utilizado do mundo. Atualmente milhões de pessoas já se utilizam de seus computadores para obter informações, receber e-mail (eletronic mail – correio eletrônico), fazer investimentos e outros negócios afins que antes eram feitos com um custo muito maior e em algumas das vezes sem sucesso. Internet é muito mais do que uma rede de computadores ou serviços de informações, ela pode dar ao ser humano a liberdade de se comunicar, informar, e se divertir (KUHNEN, 2000).

O Raciocínio Baseado em Casos é uma técnica usada para encontrar soluções para um novo problema usando soluções adotadas para problemas similares já resolvidos. A idéia básica de RBC é que os humanos modificam a estratégia de solução de um novo problema baseados em conhecimento e experiências com problemas passados similares, adaptando as soluções, usando-os para explicar novas situações, criticando novas soluções, ou inferindo sobre fatos para interpretar novas situações ou criar uma solução para o problema atual (LAGEMANN, 1998).

Sistemas Help Desk, são sistemas facilitadores de informação, mas comunmente são tratados

somente como um Sistemas de Suporte Técnico. A moderna concepção de Help Desk, porém, vai

muito além do mero conceito de suporte técnico, pois a principal característica dos sistemas Help

Desk hoje é a de facilitador de “quaisquer informações” ao usuário, não importando se esta

facilitação seja de natureza técnica computacional ou não. O conteúdo desta facilitação, portanto,

pode ser dos mais variados tipos, nem mesmo importa se a tecnologia usada na modelagem do Help

Desk venha a envolver componentes inteligentes ou não. Dizemos então um sistema help desk

constitui um mecanismo computacional facilitador de informação do tipo help desk = <Pergunta,

Resposta>, onde tanto a Pergunta em apreço se refere àquela de clientes e/ou usuários quaisquer, e

a Resposta do sistema se refere a um apoio informacional bem definido em seu domínio.

(12)

O atendimento a clientes é um ponto que merece atenção especial dentro de uma indústria, seja ela de qual ramo for. São os clientes que compram os produtos e por isso necessitam de orientações sobre utilização, procedimentos de montagem, características técnicas, e principalmente reclamações e dúvidas sobre o mau funcionamento dos produtos ou sobre procedimentos de utilização aplicados de maneira errada.

Com a inclusão da informática dentro das indústrias este tipo de atendimento tem tido uma melhora constante, e dentro de uma indústria de produtos de jardinagem da cidade de Navegantes- SC, não é diferente. Foi pensando nisto que se levantou a necessidade de criação de um sistema informatizado para automatizar o acesso dos clientes às informações sobre os produtos, sem que fosse preciso ligar diretamente para o Setor de Atendimento ao Cliente.

Melhorar o atendimento ao cliente é no momento uma das maiores preocupações das corporações, e por isso a grande maioria delas decidiu colocar à disposição de seus clientes, ferramentas que facilitem esta interação. Entre as ferramentas mais utilizadas estão os sistemas de Help Desk, que são sistemas que utilizam técnicas de Inteligência Artificial (IA), por exemplo, Raciocínio Baseado em Casos (RBC), agentes, dentre outras. Estes sistemas são disponibilizados através da Internet, para que o próprio cliente possa acessar o suporte da empresa, e através de uma interface amigável e cognitiva possa descrever seu problema e tentar resolvê-lo sem ter que entrar em contato diretamente com a empresa. Este tipo de sistema diminui significativamente o suporte telefônico e conseqüentemente reduz os custos destinados ao atendimento ao cliente.

Muitos destes Help Desk são voltados para a Internet, e dentro de pouco tempo ela será o meio de comunicação mais utilizado do mundo, pois atualmente milhões de pessoas utilizam seus computadores para obter informações, receber e-mail, conversar a longa distância com custo reduzido, fazer compras, manipular suas contas bancárias, fazer investimentos no mercado externo etc., através da maior rede do mundo. A Internet pode ser vista também como um grupo de recursos de informação global, onde esses recursos são tão vastos que estão além da compreensão do ser humano (KUHNEN, 2000).

A utilização de técnicas de IA no desenvolvimento de sistemas computacionais possibilita

agregar aspectos da cognição humana na resolução de problemas que exigem conhecimentos

especialistas (RAMALHO, 1999).

(13)

Um sistema de Help Desk para Web utilizando Raciocínio Baseado em Casos envolve diferentes conceitos de diversas áreas da Ciência da computação como banco de dados, engenharia de software, redes, linguagem de programação multiplataforma e técnicas de inteligência artificial.

Os sistemas de RBC atualmente aparecem como uma solução muito aplicável a diversas áreas, e algumas destas áreas podem ser citadas, como: Call Centers, suporte técnico e Help Desk, hotelaria, suporte a decisão, suporte a vendas, e muitas outras áreas.

Tomando como base uma indústria de máquinas para jardinagem situada da cidade de Navegantes, que atende todo território nacional, foi proposto o desenvolvimento de um sistema de Help Desk inteligente voltado especificamente para o Setor de Atendimento ao Cliente, pois o atendimento atualmente é realizado através do telefone e possui um grande número de chamadas diariamente, que são atendidas de maneira lenta e às vezes incorreta, o que acarreta custos tanto para a empresa quanto para o cliente.

A grande motivação para o desenvolvimento deste sistema foi principalmente devido à necessidade de possuir um meio de comunicação rápido e de fácil acesso que possibilitasse uma conexão direta entre a indústria e o cliente final. A solução desenvolvida possibilita esta interação direta do usuário final através da utilização de um sistema de Help Desk, que permite um diagnóstico preliminar rápido sobre os principais problemas que as máquinas podem apresentar.

Uma importante vantagem da implementação deste sistema é a associação de novas tecnologias como IA e RBC, com o aproveitamento da base de dados e ferramentas de software (sistema operacional, gerenciador de banco de dados e linguagens de programação) já existentes na empresa. Outra vantagem que espera-se alcançar, é a melhoria da prestação de serviço ao cliente, o que vai possibilitar uma redução dos custos com o suporte para a indústria que atualmente tem um alto custo para manter canais de comunicações com os técnicos que atendem os clientes. Para os clientes, está proporcionando um acesso facilitado, com um tempo de retorno em muitas situações menor e sem ter que utilizar o serviço telefônico, e assim, reduzindo os custos em chamadas telefônicas.

Esta ferramenta é fundamental para que a indústria se alinhe aos avanços tecnológicos e

permita que seja referência no atendimento ao cliente à distância dentro de um cenário nacional. As

técnicas de RBC que foram empregadas permitem ao cliente além de um livre acesso através da

(14)

Web, à realização de rápidos diagnósticos sobre suas principais dúvidas referentes aos produtos adquiridos.

1.1. Objetivos

1.1.1. Objetivo Geral

O objetivo geral deste trabalho foi desenvolver um Help Desk Inteligente para Web, utilizando Raciocínio Baseado em Casos, que auxilie no atendimento dos clientes e colaboradores do Setor de Atendimento ao Cliente de uma indústria fabricante de máquinas para jardinagem, situada na cidade de Navegantes.

1.1.2. Objetivos Específicos

Os objetivos específicos deste projeto de pesquisa foram:

o Pesquisar e analisar soluções similares;

o Relacionar as vantagens e desvantagens dos sistemas pesquisados;

o Compreender as metodologias utilizadas para o desenvolvimento de um RBC;

o Determinar os requisitos exigidos pelo sistema;

o Definir a forma de representação dos casos;

o Escolher o melhor método para recuperação dos casos;

o Desenvolver estratégias de adaptação dos casos;

o Analisar as variáveis necessárias;

o Realizar a modelagem conceitual do sistema;

o Escolher a ferramenta para construção da interface do sistema;

o Implementar o sistema; e

o Realizar testes e validação do sistema.

(15)

1.2. Metodologia

Para uma melhor elaboração deste trabalho, o mesmo foi dividido em etapas, e embora estas etapas não sejam baseadas em nenhuma metodologia específica, elas seguem um modelo que muito se assemelha ao espiral, de forma que a cada fase concluída a mesma pode ser revisada e avaliada.

A metodologia seguida para o desenvolvimento deste projeto baseou-se nos aspectos descritos a seguir.

O levantamento bibliográfico foi realizado através de estudos sobre conceitos de Inteligência Artificial, mais especificamente sobre Sistemas de Raciocínio Baseado em Casos e todas as etapas que envolvem esta técnica, como a representação dos casos, a indexação, recuperação, ajuste da situação e aprendizado. Também foram pesquisados alguns conceitos sobre Help Desks para web e atendimento ao cliente. Todos os estudos e pesquisas necessários para o desenvolvimento deste trabalho foram realizados através de consultas a livros, artigos, dissertações e sites da Web.

O ponto inicial foi uma seleção de materiais considerados importantes para o desenvolvimento de um projeto na área de pesquisa de IA. Tendo em mãos este material, iniciou-se então o processo de estudo e redação dos primeiros capítulos a fazer parte da documentação do TCC.

Em uma primeira etapa foi realizado um estudo sobre o problema a ser resolvido, e de que forma desenvolver uma aplicação que melhor solucionasse o caso. Para isto, foi realizada uma pesquisa sobre sistemas de Help Desks e sistemas de RBC que pudessem contribuir para a formulação e estruturação do sistema a ser desenvolvido.

Posteriormente foi planejada, através de reuniões realizadas junto à empresa, qual seria a melhor forma de aplicação do sistema, para que o mesmo tivesse um aproveitamento abrangente no auxílio aos problemas levantados, e assim foi definido um esboço para início do projeto.

Após ter uma idéia preliminar do que se precisava alcançar, foi realizado um estudo sobre as

tecnologias disponíveis para utilização no desenvolvimento do projeto, tendo em vista dois pontos

principais: aumentar o conhecimento sobre tecnologias e metodologias atualmente disponíveis, e

obter ferramentas que pudessem atender as necessidades apresentadas para o desenvolvimento do

sistema.

(16)

A análise e a modelagem conceitual foram realizadas segundo conceitos de UML (Unified Modeling Language) aplicados às características do escopo do sistema, como, portabilidade para Web, utilização de técnicas de IA, banco de dados, etc. Para melhor representação e documentação do sistema, foram utilizados os principais diagramas UML como: diagrama de casos de uso, diagrama de seqüência e diagrama de entidade relacionamento, para que facilitassem a etapa de implementação do protótipo.

A escolhas das ferramentas para implementação do sistema foi realizada principalmente através de um estudo sobre ferramentas multiplataforma que possibilitam uma maior compatibilidade para distribuição do sistema, e ferramntas freeware ou Open Source, pois além de serem muito utilizadas no mercado e atenderem os requisitos para o desenvolvimento do sistema, não houve custo de aquisição para a empresa. Da mesma maneira também foi escolhida a IDE para implementação do modelo, servidor de páginas, e modelo de implementação a ser adotado.

A última etapa realizada foi a implementação completa de um protótipo do sistema na linguagem de programação Java, mais especificamente JSP (Java Server Pages), bem como foi realizado o levantamento das informações necessárias para população da base inicial de casos, onde ficou a cargo dos técnicos da empresa a alimentação da base, bem como a criação das variáveis necessárias para alimentar a base do sistema. Na seqüência foram realizados testes de cadastros em todos os módulos bem como a validação dos primeiros resultados obtidos na consulta de casos através do módulo de suporte, onde o cliente terá o acesso.

1.3. Estrutura do Trabalho

O presente trabalho está dividido em quatro capítulos: introdução, fundamentação teórica, desenvolvimento e conclusões.

Introdução: este capítulo é composto pela introdução, que é uma descrição geral sobre o problema, sua justificativa e como resolver; pelos objetivos gerais e específicos, que definem quais as atividades que se pretende desenvolver para alcançar os objetivos; a metodologia, que descreve como cada objetivo foi alcançado; e a estrutura do trabalho que está sendo descrita;

Fundamentação teórica: este capítulo é composto por vários sub-capítulos que descrevem

a Inteligência Artificial, suas definições, características e principais técnicas envolvidas no presente

(17)

desta técnica, etapas que compreendem o ciclo de desenvolvimento de um RBC, e seus respectivos métodos;

Desenvolvimento: este capítulo é composto pelas etapas de análise dos requisitos necessários para o desenvolvimento do protótipo, modelagem e estruturação da base de conhecimento criada e os principais diagramas de casos de uso e de seqüência. Também descreve como foi desenvolvido o sistema; quais as tecnologias e metodologias, e como elas foram utilizadas; como foram associadas as etapas do ciclo de vida do RBC ao projeto; a estrutura geral do sistema, instruções sobre a operação e os módulos que compõe o sistema;

Conclusões: este capítulo é composto pela etapa de testes e validações do sistema, sobre

como qual foi seu comportamento e quais objetivos foram alcançados; pela descrição de alguns

problemas enfrentados, possíveis falhas de modelagem, considerações sobre o processo de

desenvolvimento como um todo, bem como indicações para trabalhos futuros que possam vir a

serem feitos nesta área de estudos.

(18)

2. FUNDAMENTAÇÃO TEÓRICA

2.1. INTELIGÊNCIA ARTIFICIAL

A palavra inteligência vem do latim inter (entre) e legere (escolher). Portanto, inteligência significa aquilo que permite ao ser humano escolher entre uma, duas ou várias opções, ou ainda a habilidade de realizar uma determinada tarefa de forma eficiente. A palavra artificial vem do latim artificiale, e significa algo não natural (produzido pelo homem). Assim, inteligência artificial é um tipo de inteligência produzida pelo homem para dotar as máquinas de algum tipo de habilidade que simula a inteligência do mesmo (FERNANDES, 2003).

A Inteligência Artificial (IA) busca prover máquinas com a capacidade de realizar algumas atividades mentais do ser humano. Em geral são máquinas com algum recurso computacional, de variadas arquiteturas, que permitem a implementação de rotinas não necessariamente algorítmicas.

As atividades realizadas por estas máquinas podem envolver a sensopercepção (como tato, audição e visão), as capacidades intelectuais (como aprendizado de conceitos e de juízos, raciocínio dedutivo e memória), a linguagem (como as verbais e gráficas) e atenção (decisão no sentido de concentrar as atividades sobre um determinado estímulo) (NASCIMENTO JR. & YONEYAMA, 2000).

IA é o estudo de como fazer os computadores realizarem tarefas que, no momento, são feitas melhor por pessoas (Rich, 1983 apud NASCIMENTO JR. & YONEYAMA, 2000). Para Luger e Stubblefield, Inteligência Artificial é o ramo da computação preocupada com a automação de comportamento inteligente (FERNANDES, 2000).

2.1.1. Histórico

A história da Inteligência Artificial teve início na década de 40, marcada pela Segunda Guerra Mundial, com o desenvolvimento do computador para realizar o cálculo da bomba atômica, pois era necessária uma grande quantidade de cálculos precisos. O computador também foi utilizado para o planejamento de ações estratégicas de exércitos, sendo que a partir daí surgiram os jogos por computador (MÜLLER, 2005).

O primeiro esforço conjunto para estudar IA foi o encontro no Darthmouth College, em

(19)

Estados Unidos durante duas décadas: McCarthy, Minsky, Newell e Simon. Neste encontro e no livro publicado a seguir com o título de “Automata Studies”, no qual surgiu o primeiro artigo tratando redes neurais como um paradigma da arquitetura computacional, nasceram simultaneamente os dois paradigmas da Inteligência Artificial: simbólica e conexionista.

(BARRETO, 1997). Já em 1965, Zadeh propõe a base lógica difusa, também chamada de lógica nebulosa ou fuzzy logic, que lida com a avaliação de expressões lógicas contendo valores incertos (RABUSKE, 1995).

Na década de 90 “as redes neurais tiveram uma explosão exponencial de aplicações e desenvolvimento de modelos”. Surgiram centenas de propostas de novos modelos e aperfeiçoamento dos mesmos. Foram construídos os Sistemas Híbridos que permitem a construção de grandes sistemas abrangendo uma forma mais completa de representação do comportamento humano (MÜLLER, 2005).

Nos últimos anos, ocorreu uma mudança nos conteúdos e nas metodologias de investigação da IA. Hoje é comum aprimorar o trabalho em teorias existentes do que propor novas, demonstrando resultados com teoremas e experiências rigorosas em detrimento da intuição, por exemplo. De acordo com Müller (2005), os sistemas atualmente existentes permitem:

o conduzir um automóvel em uma auto-estrada;

o fazer o reconhecimento de voz (passar de voz para texto);

o fazer tradução;

o detectar avarias;

o diagnosticar doenças; e

o ganhar do campeão mundial de xadrez.

(20)

2.1.2. Técnicas de Inteligência Artificial

Os pesquisadores de IA, nos últimos anos têm se preocupado mais com a aplicação dos conceitos dela no mundo real do que com o desenvolvimento de novos teoremas. Estas novas pesquisas têm dividido a IA em muitos ramos, entre eles estão: Sistemas Especialistas, Processamento da Linguagem Natural, Redes Conexionistas, Algoritmos Genéticos, Conjuntos Difusos, Agentes Inteligentes e Raciocínio Baseado em Casos.

Este trabalho utilizou um desses ramos, mais especificamente a técnica de Raciocínio Baseado em Casos, que é o campo de estudo da IA que se utiliza de uma grande biblioteca de casos passados para consulta e resolução de problemas atuais. Estes problemas são resolvidos através da recuperação e consulta de casos que já foram solucionados anteriormente e da conseqüente adaptação das soluções encontradas nas resoluções (FERNANDES, 2003).

2.2. RACIOCÍNIO BASEADO EM CASOS

Diariamente as pessoas se deparam com problemas variados, e sem perceber os resolvem, algumas vezes de forma rápida, outras vezes de uma forma mais lenta. Mas como estes problemas podem ser resolvidos? O que é utilizado para resolvê-los? Para resolver problemas usa-se um recurso importante que o ser humano possui, a memória. Isto permite que pessoas tomem uma decisão em relação a algum problema, baseando-se em situações semelhantes que já viveram no passado. Se no passado essa decisão foi aplicada com sucesso, então a mesma é aplicada novamente, caso contrário toma-se uma nova decisão para que no futuro se possa reutilizá-la novamente.

A resolução de um problema utilizando Raciocínio Baseado em Casos (RBC) consiste em identificar um problema atual, buscar a experiência mais semelhante em um conjunto de casos e aplicar o conhecimento dessa experiência passada na resolução do problema atual. Esse conjunto de casos representa a base de casos ou memória do sistema (RAMALHO, 1999).

RBC é uma técnica de Inteligência Artificial que resolve os novos problemas através da

recuperação e adaptação de soluções anteriores. A inspiração inicial de RBC advém da maneira

como o raciocínio humano recorda e explica as experiências passadas para solucionar novos

(21)

Segundo Wangenheim e Wangenheim (2003), Raciocínio Baseado em Casos é um enfoque para a solução de problemas e para o aprendizado baseado em experiências passadas. RBC resolve problemas ao recuperar e adaptar experiências passadas – chamadas casos – armazenadas em uma base de casos. Um novo problema é resolvido com base na adaptação de soluções de problemas similares já conhecidas.

O estudo de RBC é guiado por duas motivações primárias: a primeira, oriunda da ciência cognitiva, é o desejo de modelar o raciocínio e o aprendizado humano. A segunda, proveniente da IA, é o desejo de desenvolver tecnologias para a construção de sistemas inteligentes cada vez mais efetivos (RAMALHO, 1999).

Os seres humanos são considerados robustos resolvedores de problemas. Muitas vezes resolvem problemas difíceis apesar do conhecimento limitado e incerto. Além disso, com a experiência adquirida o desempenho deles melhora cada vez mais. Todas essas qualidades são desejáveis em um sistema de IA para o mundo real. Portanto, existem boas razões para se utilizar um RBC (Leake, 1996 apud RAMALHO, 1999):

o Aquisição do conhecimento: o conhecimento presente em um sistema de RBC fica armazenado na própria base de casos;

o Manutenção do conhecimento: um usuário do sistema pode ser habilitado para adicionar novos casos na base de casos sem a intervenção do especialista;

o Eficiência crescente na resolução de problemas: a reutilização de soluções anteriores ajuda a incrementar a eficiência na resolução de problemas. O RBC armazena tanto as soluções bem sucedidas como as que não obtiveram sucesso. Isto faz com que eventuais insucessos sejam evitados;

o Qualidade crescente das soluções: quando os princípios de um domínio não são bem conhecidos, regras não são a melhor solução. Nessa situação, as soluções sugeridas pelos casos refletem o que realmente aconteceu em uma determinada circunstância; e

o Aceitação do usuário: um dos pontos chaves para o sucesso de um sistema de IA é a

aceitação do usuário. Os sistemas de RBC podem comprovar o seu raciocínio

apresentando ao usuário os casos armazenados na base. Este é um dos grandes

problemas enfrentados por outras técnicas de IA como as Redes Neurais.

(22)

A origem da técnica de RBC é atribuída a uma pesquisa na área da ciência cognitiva desenvolvida por Schank e Abelson em 1977. Neste trabalho eles afirmaram que todo o conhecimento é armazenado no cérebro como um script. Estes scripts compõem uma memória conceitual, descrevendo informações sobre eventos típicos como um almoço em um restaurante ou uma consulta médica. Porém, experimentos com fatos mostraram que somente os scripts não representavam o conhecimento armazenado na memória. Era comum as pessoas misturarem fatos parecidos como consulta médica e consulta dentária no momento da lembrança (LAGEMANN, 1998).

O primeiro sistema que pode ser considerado como um RBC foi o CYRUS, desenvolvido por Janet Kolodner. Esse sistema foi baseado no modelo de memória dinâmica de Schank e na teoria dos MOP’s (Memory Organization Packets) para aprendizagem e solução de problemas (FERNANDES, 2003).

Outras bases para RBC e outros conjuntos de modelos foram desenvolvidos por Bruce Porter e seu grupo. Inicialmente, eram endereçados os problemas de aprendizado de máquina e de conceitos aprendidos para classificação de tarefas. Essa linha de desenvolvimento deu origem ao sistema PROTOS que enfatiza a integração do domínio geral de conhecimento e especifica o conhecimento de casos dentro de uma estrutura de representação unificada (KUHNEN, 2000).

2.2.1. Tipos de Problemas Resolvidos Através de RBC

Sistemas de RBC já estão presentes em diversos tipos de aplicações como suporte ao consumidor, controle de qualidade, manutenção de aeronaves, planejamento de processos, apoio à decisão, roteamento de mensagens, Help Desks computadorizados, predições, pesquisas jurisprudências etc (Lee, 1998 apud KUHNEN, 2000).

A utilização de RBC fornece uma abordagem diferente de banco de dados, tornando-se uma

ferramenta ideal para a tarefa de diagnóstico. Em um RBC uma consulta a uma base de

conhecimento avalia ao máximo todos os casos, para escolher os mais similares em relação ao

contexto do problema (caso) atual. No procedimento de diagnóstico médico, leva-se em conta um

conjunto de sintomas e de resultados de exames que serão os dados de entrada do sistema de acordo

com o domínio escolhido (SILVA, 2000).

(23)

Independente do tipo de aplicação, os sistemas de RBC resolvem problemas utilizando o mesmo princípio: comparam o caso de entrada com os casos armazenados na memória (base de casos). A pesquisa pelos casos mais semelhantes é realizada por algoritmos que calculam o grau de similaridade entre o caso de entrada e os casos da base. Se esta pesquisa retornar um caso idêntico ao caso de entrada, o caso encontrado pode ser usado diretamente para resolver o problema. Porém, se o caso recuperado não for idêntico ao caso de entrada, talvez seja necessário que o usuário (ou o próprio sistema) faça uma adaptação da solução encontrada para resolver o problema. Quando é apropriado, novos casos podem ser acrescentados à base de casos para expandir o conhecimento do sistema (Buta, 1997 apud RAMALHO, 1999).

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.

(24)

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).

Existem muitas formas de representação de casos que podem ser utilizadas em um RBC,

(25)

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

(26)

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 k-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.

(27)

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

o Ser suficientemente concreto para facilitar a reorganização em futuras situações.

(28)

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

são então usadas como índice.

(29)

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).

(30)

É 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.

(31)

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) =

in=1 f(

N

i,

F

i)*

w

i

Equação 2

Onde:

N = novo caso

F = caso existente

(32)

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) = ( x

y

i)2 ½

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.

distancia(x, y) = y

(33)

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) = Maximum x

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

y

i

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

característica do novo caso. Casos que possuem descrição similar e referem-se a problemas

(34)

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)

Segundo Wangenheim & Wangenheim (2003), este processo possui vantagens tais como: o

(35)

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):

(36)

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 instâncias (IBL – Instance Based Language) pode ser usada para selecionar casos para classificação em RBC, ter uma única entrada – seqüência de instâncias. O IBL utiliza uma metodologia que possui uma descrição conceitual, uma classificação e instâncias similares com classificações similares (KUHNEN, 2000).

Os componentes do IBL são:

o função de similaridade – calcula a similaridade entre a instância de treinamento ‘i’ e as instâncias na descrição conceitual;

o função de classificação – usa o valor da similaridade e o registro de classificação na descrição conceitual para classificar ‘i’; e

o atualizador da descrição conceitual – mantém um registro da performance das classificações e decide quais instâncias irão ser incluídas na descrição conceitual.

Algoritmo IB3 (Instance Based 3): o IB3 aceita uma instância se sua precisão de classificação for significativamente maior que a freqüência observada da classe. Utiliza um intervalo de confiança de proporção para determinar quanto uma instância é aceitável, medíocre ou com ruído (KUHNEN, 2000). No IB3 são utilizados dois intervalos de confiança:

o precisão de classificação; e

o freqüências relativas observadas da classe.

2.3. Pesquisa e Análise de Soluções Similares

Para que fosse possível o desenvolvimento do sistema proposto foram pesquisados outros

sistemas de RBC, a fim de se obter um maior conhecimento sobre este tipo de ferramenta e utilizar

os conceitos já aplicados, e que deram certo para que se enquadrem na solução proposta este

projeto. Abaixo segue uma descrição resumida sobre o problema que foi resolvido, características e

métodos aplicados em cada uma das ferramentas estudas.

Referências

Documentos relacionados

[r]

É importante esclarecer que, com a divulgação dos resultados do desempenho educacional do estado do Rio de Janeiro em 2010, referente ao ano de 2009, no IDEB, no qual

O fortalecimento da escola pública requer a criação de uma cultura de participação para todos os seus segmentos, e a melhoria das condições efetivas para

Não obstante a reconhecida necessidade desses serviços, tem-se observado graves falhas na gestão dos contratos de fornecimento de mão de obra terceirizada, bem

intitulado “O Plano de Desenvolvimento da Educação: razões, princípios e programas” (BRASIL, 2007d), o PDE tem a intenção de “ser mais do que a tradução..

[r]

Além desta verificação, via SIAPE, o servidor assina Termo de Responsabilidade e Compromisso (anexo do formulário de requerimento) constando que não é custeado

De acordo com o Consed (2011), o cursista deve ter em mente os pressupostos básicos que sustentam a formulação do Progestão, tanto do ponto de vista do gerenciamento