UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR
CURSO DE CIÊNCIA DA COMPUTAÇÃO
DESENVOLVIMENTO DE UM SISTEMA BASEADO NO CONHECIMEN TO PARA AUXÍLIO NA ESCOLHA DE AUTOMÓVEIS
Área de Inteligência Artificial
por
Valdir Antônio Luiz Junior
Raimundo Celeste Ghizoni Teive, Doutor Orientador
São José (SC), junho de 2007
UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR
CURSO DE CIÊNCIA DA COMPUTAÇÃO
DESENVOLVIMENTO DE UM SISTEMA BASEADO NO CONHECIMEN TO PARA AUXÍLIO NA ESCOLHA DE AUTOMÓVEIS
Área de Inteligência Artificial
por
Valdir Antônio Luiz Junior 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: Raimundo C. G. Teive, Doutor
São José (SC), junho de 2007
ii
DEDICATÓRIA
Dedico este trabalho aos meus pais, que sempre me apoiaram e estiveram ao meu lado.
iii
AGRADECIMENTOS
Á minha família, Valdir meu pai, Maria Salete minha mãe, Márcio meu irmão e Elaine
minha irmã, pela paciência, compreensão e apoio durante toda esta jornada.
Ao professor Raimundo Teive, que desde o início acreditou no trabalho, me orientou da
melhor maneira possível e enriqueceu esta obra com seu conhecimento.
À MG corretora de seguros, pela sua importante contribuição, através da disponibilização do
cálculo de seguro de cento e vinte e cinco modelos de automóveis.
A todos os meus amigos, que me apoiaram nos momentos mais difíceis, sempre me
encorajando a seguir em frente.
Agradeço a Deus, por permitir minha constante evolução através de novos desafios.
Por fim, agradeço a todos que de alguma forma, direta ou indireta, contribuíram para a
realização deste trabalho.
iv
SUMÁRIO
LISTA DE ABREVIATURAS................................................................vii
LISTA DE FIGURAS ............................................................................viii
LISTA DE TABELAS..............................................................................ix
LISTA DE EQUAÇÕES...........................................................................x
RESUMO ..................................................................................................xi ABSTRACT .............................................................................................xii
1 INTRODUÇÃO...................................................................................13 1.1 PROBLEMATIZAÇÃO ................................................................................... 13 1.1.1 Formulação do Problema............................................................................... 14 1.1.2 Solução Proposta............................................................................................. 14 1.2 OBJETIVOS ...................................................................................................... 15 1.2.1 Objetivo Geral ................................................................................................. 15 1.2.2 Objetivos Específicos ...................................................................................... 15 1.2.3 Escopo e delimitação do trabalho.................................................................. 15 1.3 METODOLOGIA.............................................................................................. 16 1.4 ESTRUTURA DO TRABALHO ..................................................................... 17
2 FUNDAMENTAÇÃO TEÓRICA .....................................................18 2.1 TEORIA DA DECISÃO MULTICRITÉRIO .................... ............................ 18 2.1.1 Métodos Multicritério..................................................................................... 18 2.1.2 Apoio a Decisão Utilizando Metodologia Multicritério............................... 20 2.2 INTELIGÊNCIA ARTIFICIAL ............................ .......................................... 22 2.3 CONCLUSÃO.................................................................................................... 24
3 SISTEMAS BASEADOS NO CONHECIMENTO..........................25 3.1 INTRODUÇÃO ................................................................................................. 25 3.2 SISTEMAS ESPECIALISTAS ........................................................................ 26 3.2.1 Um Breve Histórico......................................................................................... 26 3.2.2 Conceitos e Características ............................................................................ 26 3.2.3 Sistemas especialistas e programas convencionais ...................................... 30 3.2.4 Sistemas especialistas e especialista humano ............................................... 32 3.2.5 Utilização de sistemas especialistas ............................................................... 33 3.2.6 Etapas de desenvolvimento ............................................................................ 34 3.3 RACIOCÍNIO BASEADO EM CASOS.......................................................... 36 3.3.1 Um breve histórico.......................................................................................... 36 3.3.2 Conceitos e características ............................................................................. 37 3.3.3 RBC e sistemas especialistas baseado em regras ......................................... 39 3.3.4 RBC e raciocínio humano .............................................................................. 40 3.3.5 Vantagens em utilizar RBC............................................................................ 40
v
3.4 CONCLUSÃO.................................................................................................... 41
4 SISTEMA PROPOSTO......................................................................42 4.1 DESCRIÇÃO GERAL...................................................................................... 42 4.2 SISTEMA ESPECIALISTA............................................................................. 44 4.3 RACIOCÍNIO BASEADO EM CASOS.......................................................... 46 4.4 AQUISIÇÃO DO CONHECIMENTO............................................................ 48 4.5 REPRESENTAÇÃO DO CONHECIMENTO............................................... 50 4.5.1 Representação do conhecimento do RBC..................................................... 50 4.5.2 Representação do conhecimento do SE ........................................................ 51 4.6 LEVANTAMENTO DOS REQUISITOS ....................................................... 52 4.6.1 Requisitos Funcionais ..................................................................................... 53 4.6.2 Requisitos Não Funcionais .............................................................................53 4.6.3 Regras de Negócio ........................................................................................... 53 4.7 MODELAGEM DO SISTEMA........................................................................ 53 4.7.1 Diagramas de Casos de Uso ........................................................................... 54 4.7.2 Diagramas de Pacotes ..................................................................................... 58 4.7.3 Diagrama de Atividade................................................................................... 59 4.7.4 Diagramas de Seqüência................................................................................. 60 4.7.5 Prototipação de Interfaces ............................................................................. 63 4.8 SOFTWARES UTILIZADOS.......................................................................... 70
5 VALIDAÇÃO DO SISTEMA............................................................72 5.1 TESTE 1 ............................................................................................................. 72 5.2 TESTE 2 ............................................................................................................. 74 5.3 TESTE 3 ............................................................................................................. 76 5.4 TESTE 4 ............................................................................................................. 78 5.5 CONCLUSÃO.................................................................................................... 80
6 CONCLUSÕES...................................................................................81
REFERÊNCIAS BIBLIOGRÁFICAS ..................................................83 GLOSSÁRIO ...........................................................................................86
A REGRAS DO SISTEMA ESPECIALISTA......................................88 A.1 REGRAS PARA O TAMANHO DO PORTA-MALAS................................ 88 A.2 REGRAS PARA POTÊNCIA .......................................................................... 90 A.3 REGRAS PARA COEFICIENTE DO SEGURO .......................................... 90 A.4 REGRAS PARA O CONSUMO ...................................................................... 91
B CASO DU USO UC01 – LOGAR NO SISTEMA ............................93 C CASO DE USO UC02 – REALIZAR PESQUISA...........................95 D CASO DE USO UC03 – VISUALIZAR DETALHE .......................96 E CASO DE USO UC04 – INSERIR CASO NA BASE ......................97
vi
F CASO DE USO UC05 – ATUALIZAR CASO NA BASE...............99 G CASO DE USO UC06 – EXCLUIR CASO DA BASE ..................101
vii
LISTA DE ABREVIATURAS
ABS Antilock Braking System IA Inteligência Artificial RBC Raciocínio Baseado em Casos SE Sistema Especialista TCC Trabalho de Conclusão de Curso UNIVALI Universidade do Vale do Itajaí
viii
LISTA DE FIGURAS
Figura 1. Processo de Apoio a Decisão Utilizando-se Metodologia Multicritério. ...........................20 Figura 2. Árvore de Pontos de Vista Para Escolha de Automóvel.....................................................22 Figura 3. Sistemas especialistas são sistemas baseados no conhecimento. .......................................27 Figura 4. Arquitetura de um sistema especialista típico.....................................................................29 Figura 5. Fases de desenvolvimento para construção de um sistema especialista.............................35 Figura 6. Modelo básico de raciocínio baseado em casos..................................................................38 Figura 7. Estrutura básica do sistema híbrido proposto. ....................................................................43 Figura 8. Árvore de decisão para o tamanho do porta-malas.............................................................45 Figura 9. Trecho de código da base de regras para o tamanho do porta-malas. ................................46 Figura 10. Exemplo de caso do sistema. ............................................................................................48 Figura 11. Diagrama de Casos de Uso do Controle de Acesso..........................................................54 Figura 12. Diagrama de Casos de Uso da Pesquisa. ..........................................................................55 Figura 13. Diagrama do Caso de Uso Realizar Pesquisa. ..................................................................56 Figura 14. Diagrama do Caso de Uso Visualizar Detalhe..................................................................56 Figura 15. Diagrama de Casos de Uso da Administração..................................................................57 Figura 16. Diagrama do Caso de Uso Inserir Caso na Base. .............................................................57 Figura 17. Diagrama do Caso de Uso Atualizar Caso na Base. .........................................................58 Figura 18. Diagrama do Caso de Uso Excluir Caso da Base. ............................................................58 Figura 19. Diagrama de Pacotes.........................................................................................................59 Figura 20. Diagrama do Caso de Uso Realizar Pesquisa. ..................................................................60 Figura 21. Diagrama de Seqüência da Pesquisa.................................................................................61 Figura 22. Diagrama do Caso de Uso Realizar Pesquisa. ..................................................................62 Figura 23. Diagrama do Caso de Uso Realizar Pesquisa. ..................................................................63 Figura 24. Tela de Login. ...................................................................................................................64 Figura 25. Tela de Pesquisa................................................................................................................65 Figura 26. Tela Resultado da Pesquisa...............................................................................................67 Figura 27. Tela de Detalhe. ................................................................................................................68 Figura 28. Administração...................................................................................................................69
ix
LISTA DE TABELAS
Tabela 1. Comparação entre SE e programas convencionais.............................................................31 Tabela 2. Vantagens de SE em relação e um especialista humano ....................................................32 Tabela 3. Desvantagens de SE em relação e um especialista humano...............................................33 Tabela 4. Áreas de aplicação de sistemas especialistas .....................................................................34 Tabela 5. Categorias genéricas de aplicações de sistemas especialistas ............................................34 Tabela 6. Conjunto de atributos com valores subjetivos....................................................................44 Tabela 7. Conjunto de atributos que formam um caso.......................................................................47 Tabela 8. Conjunto de atributos para cada modelo ............................................................................50 Tabela 9. Campos da Tela de Pesquisa ..............................................................................................66 Tabela 10. Campos da Tela de Administração...................................................................................70 Tabela 11. Caso de entrada do teste 1 ................................................................................................72 Tabela 12. Resultados do teste 1 ........................................................................................................73 Tabela 13. Caso de entrada do teste 2 ................................................................................................74 Tabela 14. Resultados do teste 2 ........................................................................................................75 Tabela 15. Caso de entrada do teste 3 ................................................................................................76 Tabela 16. Resultados do teste 3 ........................................................................................................77 Tabela 17. Caso de entrada do teste 4 ................................................................................................78 Tabela 18. Resultados do teste 4 ........................................................................................................79
x
LISTA DE EQUAÇÕES
Equação 1 ...........................................................................................................................................47 Equação 2 ...........................................................................................................................................47 Equação 3 ...........................................................................................................................................48 Equação 4 ...........................................................................................................................................49
xi
RESUMO
LUIZ JUNIOR, Valdir Antônio. Desenvolvimento de um Sistema Baseado no Conhecimento para Auxílio na Escolha de Automóveis. São José, 2007. 85f. 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í, 2007. O problema de tomada de decisão é algo que afeta todas as pessoas no dia-a-dia. Quanto mais aspectos e restrições existem no problema, mais complexa se torna a escolha. Problemas desse tipo são chamados de problema de decisão multicritério. A escolha de automóvel caracteriza-se como sendo um problema dessa natureza, pois são vários os elementos que levam uma pessoa a escolher entre um modelo e outro, consumo de combustível, potência do motor, conforto, acabamento, relação custo/benefício, espaço interno entre outros. Por isso, o presente TCC apresenta o desenvolvimento de uma ferramenta de apoio à tomada de decisão baseado no conhecimento. O trabalho apresenta um estudo sobre a teoria da decisão multicritério, inteligência artificial e sistemas baseados no conhecimento. Para que possa atender de forma satisfatória ao que se propõe, a ferramenta desenvolvida se utiliza de técnicas de Sistemas Especialistas e Raciocínio Baseado em Casos. O sistema disponibiliza uma interface de pesquisa, onde o usuário seleciona uma série de características do automóvel de acordo com o seu interesse. Em seguida, essas características informadas pelo usuário são transformadas por um SE em um caso de entrada. Este caso é submetido ao RBC, o qual retorna os modelos mais similares ao caso de entrada. Palavras-chave: Inteligência Artificial. Raciocínio Baseado em Casos. Sistemas Especialistas.
xii
ABSTRACT
The decision making problem affects all the people in their ordinary lives. The biggest is the number of aspects and constraints involved in the problem, the more difficult is the choice. This kind of problem is called by multicriterion decision problem, which can be solved by multicriterion methods or artificial intelligence techniques. The automobile choice is characterized as being a problem of this nature. Therefore the deciion elements are several that take a person to choose between a model and another one, fuel consumption, power of the engine, comfort, finishing, relation cost/benefit, internal space among others. Then, this work presents the development of a tool of support the decision making process based on the knowledge. The work presents a study on the theory of the decision multicriterion, artificial intelligence and knowledge based systems. So He final product implemented was a hybrid system composed by Expert Systems and Case Based Reasoning techniques. The system offer a research interface, where the user selects a series of characteristics of the automobile in accordance with his interest. After that, these characteristics informed by the user are transformed by one Expert System into a case of entrance. This case is submitted to the Case Based Reasoning, which returns the models most similar to the request case. Keywords: Artificial intelligence. Case Based Reasoning. Expert Systems.
1 INTRODUÇÃO
O primeiro passo para a solução de um problema é definir bem o mesmo, quanto menos
esclarecimento se tem sobre o problema, mais difícil será sua solução. Segundo Barreto (1999),
para se resolver um problema, é necessário ter algum conhecimento do domínio do problema e
utilizar alguma técnica de busca da solução. “Os peritos humanos são capazes de ter desempenhos
num nível muito alto, porque eles conhecem muito sobre suas áreas de expertise” (LUGER, 2004).
Portanto, é fundamental ter conhecimento sobre o domínio do problema a ser resolvido.
Os sistemas computacionais podem ser aplicados para diferentes fins, por exemplo, na
solução de problemas, onde se pode citar a Inteligência Artificial como uma das áreas da
computação que mais se dedica a esta finalidade. “A Inteligência Artificial se ocupa da resolução de
problemas e para tal é necessário conhecimento sobre o problema e técnicas de manipular este
conhecimento para obter a solução” (BARRETO, 1999).
Dentre as técnicas de Inteligência Artificial existentes, terão maior destaque neste trabalho
técnicas de sistemas especialistas e raciocínio baseado em casos (RBC). “Um sistema de
Inteligência Artificial criado para resolver problemas de um determinado domínio é chamado de
sistema especialista” (LEVINE, DIANE E DRANG, 1988). Giarratano e Rilley (1994) colocam a
área dos sistemas especialistas como sendo uma solução aproximada muito bem sucedida ao
problema clássico da Inteligência Artificial de programar a inteligência. “Raciocínio Baseado em
Casos é um enfoque para a solução de problemas e para o aprendizado baseado em experiência
passada” (WANGENHEIM, 2003).
Existem sistemas que são concebidos não com a ambição de resolver um problema, mas sim
com a função de dar apoio a decisão. Para Ensslin, Montibeller e Noronha (2001), tais sistemas
devem fornecer condições favoráveis para que os decisores comportem-se de tal forma que seja
possível aumentar a coerência da evolução do processo decisório e observar os sistemas de valores
dos decisores. Dentro deste contexto, este trabalho procura desenvolver com auxílio de técnicas de
Inteligência Artificial, um sistema Web de apoio à tomada de decisão para auxílio na escolha de
automóveis.
1.1 PROBLEMATIZAÇÃO
14
1.1.1 Formulação do Problema
A cada ano que passa a indústria automobilística oferece novos modelos de automóveis ao
mercado, fato que gera um incremento nas opções disponibilizadas ao consumidor. Esse
crescimento contínuo muitas vezes confunde o consumidor, levando o mesmo a dedicar horas
coletando e comparando informações de diferentes modelos com amigos, em revendas e até mesmo
pela internet, tudo isso para minimizar a possibilidade de errar na compra. São vários os elementos
que levam uma pessoa a escolher entre um modelo e outro, consumo de combustível, potência do
motor, conforto, acabamento, relação custo/benefício, espaço interno, etc. Também há aqueles que
escolhem apenas pelo seu design ou status que o modelo oferece, ou ainda pelo valor do seguro,
caracterizando um problema de decisão multicritério.
O problema de tomada de decisão é algo que afeta todas as pessoas no dia-a-dia. Quanto
mais aspectos e restrições existem no problema, mais complexa se torna a escolha. O cérebro
humano consegue analisar no máximo três a cinco aspectos diferentes para comparação entre
alternativas. Em problemas mais complexos, envolvendo uma quantidade maior de aspectos,
restrições ou alternativas, é imprescindível a utilização de computadores.
No caso particular da escolha de um automóvel por parte de um usuário, este problema
deverá levar em consideração pelo menos seis atributos principais, que são referentes a custos,
potência, conforto, consumo, porta malas e segurança. Uma análise mais profunda mostra ainda que
alguns desses atributos podem ser subdivididos, um exemplo é o atributo relacionado a custos, que
pode ser dividido em custos de aquisição, seguro e manutenção, justificando a necessidade de
utilização de um sistema computacional.
1.1.2 Solução Proposta
O presente trabalho visa desenvolver uma ferramenta para auxiliar na decisão de compra de
um automóvel. Este sistema concentrará todas as informações necessárias sobre cada modelo de
automóvel, para que o consumidor possa minimizar o tempo investido na pesquisa dos modelos que
atendam as suas necessidades. Para que o sistema possa cumprir seu papel com eficiência, o mesmo
deve conter o máximo de informações possível sobre cada modelo de automóvel, minimizando a
chance do usuário não encontrar a informação desejada sobre um determinado modelo. Será ainda
desenvolvido para a Web, de modo que possa ser facilmente disponibilizado. A escolha do tema
deu-se em virtude do interesse do pesquisador em automóveis e em sistemas de inteligência
15
artificial. O sistema será desenvolvido para ambiente Web de modo que possa ser disponibilizado
em sites especializados no ramo.
Para maximizar o suporte ao usuário, o sistema não se limitará a disponibilizar informações
sobre os vários modelos de automóveis disponíveis no mercado, mas irá ranquear os modelos que
melhor atendam as necessidades do usuário. Para que o sistema possa conhecer estas necessidades,
o usuário deverá atribuir pesos às diferentes características do veículo. Após coletar essas
informações do usuário, o sistema se utilizará de técnicas de inteligência artificial para identificar
na sua base de dados os modelos que melhor atendam aos critérios informados pelo usuário.
1.2 OBJETIVOS
1.2.1 Objetivo Geral
Este trabalho tem como objetivo geral desenvolver o protótipo de um sistema Web de apoio
à tomada de decisão baseado no conhecimento para auxílio na escolha de automóveis.
1.2.2 Objetivos Específicos
• Modelar o problema identificando a forma de representação do conhecimento;
• Analisar as técnicas de Sistemas Especialistas (SE) e Raciocínio Baseado em Casos
(RBC) e identificar a que melhor se aplica ao problema;
• Desenvolver o sistema proposto;
• Validar o sistema utilizando-se dados reais;
1.2.3 Escopo e delimitação do trabalho
Este trabalho não tem como objetivo desenvolver um sistema que decida pelo usuário, mas
sim, auxiliar a tomada de decisão ranqueando as melhores opções de acordo com os critérios
selecionados pelo usuário. O sistema se limitará a trabalhar com uma base de dados dos modelos
das quatro principais montadoras de automóveis nacionais, que são Chevrolet, Ford, FIAT e
Volkswagen.
16
1.3 Metodologia
Para a execução do trabalho, foram adotados os procedimentos técnicos de pesquisa
bibliográfica e descritiva. A pesquisa bibliográfica procura explicar um problema a partir de
referências teóricas publicadas em documentos (CERVO e BERVIAN, 1996). Essas técnicas de
pesquisa bibliográfica foram utilizadas para se obter informações sobre Inteligência Artificial e
particularmente Sistemas Baseados no Conhecimento (SBC), sobretudo técnicas de Raciocínio
Baseado em Casos e Sistemas Especialistas. Esta pesquisa foi realizada com o intuito de obter o
conhecimento sobre algumas das técnicas de IA e estabelecer qual delas melhor se aplica para
solucionar o problema proposto. A pesquisa descritiva observa, registra, analisa e correlaciona fatos
ou fenômenos (variáveis) sem manipulá-los (CERVO e BERVIAN, 1996). Esta técnica foi adotada
durante a fase validação do sistema desenvolvido.
O primeiro passo foi a definição do problema a ser abordado pelo trabalhado, apresentada no
capítulo 1, de modo que se pudesse definir quais os objetivos a serem alcançados pelo trabalho.
Uma vez estabelecido o problema e os objetivos, foram pesquisadas tecnologias que poderiam ser
utilizadas na resolução do problema.
No capítulo 2, houve uma grande imersão no estudo da teoria da decisão multicritério, que
se mostrou diretamente ligada ao problema proposto pelo trabalho, que refere-se ao auxílio na
escolha de automóveis. Em seguida realizou-se uma pesquisa sobre inteligência artificial, pesquisa
essa que levou a conclusão de que era viável o uso de técnicas de inteligência artificial para solução
de problemas de decisão multicritério.
Para resolver o problema proposto, era necessário formar uma base de conhecimento sobre
automóveis, desta forma, foi preciso fazer um estudo sobre sistemas baseados no conhecimento. O
resultado desse estudo encontra-se no capítulo 3, dando enfoque principal para as técnicas de
sistemas especialistas e raciocínio baseado em casos, por as técnicas a serem utilizadas no trabalho.
Concluído o embasamento teórico, iniciou-se a concepção do sistema, apresentada no
capítulo 4. A primeira etapa desta fase foi a aquisição e representação do conhecimento, a qual foi
uma das etapas mais árduas de todo o processo, sendo difícil executar a coleta e organização das
informações de forma satisfatória. Esta etapa envolveu pesquisa em sites de montadores,
publicações especializadas e especialista em automóveis, além de um especialista em seguros. O
resultado desta etapa foi uma base de regras para o SE e uma base de casos para o RBC.
17
Ainda no mesmo capítulo, foi feita a análise de requisitos, especificação dos casos de uso,
diagrama de pacotes e de atividades. Além dos protótipos de interface. Para o desenvolvimento do
sistema, optou-se por uma arquitetura multiplataforma e voltada para o ambiente Web, de modo que
o sistema possa ser facilmente disponibilizado, utilizando-se a linguagem de programação Java e o
servidor de aplicações Tomcat.
1.4 Estrutura do trabalho
O trabalho encontra-se dividido em cinco capítulos. O Primeiro capítulo é a introdução,
onde apresenta-se uma descrição geral do trabalho, seus objetivos e a metodologia utilizada. O
segundo capítulo trata da fundamentação teórica, onde é apresentada a teoria da decisão
multicritério e a inteligência artificial. No terceiro capítulo, apresenta-se um estudo sobre sistemas
baseados no conhecimento, com enfoque principal para os sistemas especialistas e para o raciocínio
baseado em casos. O capítulo quatro descreve o sistema proposto, onde é apresentado o processo de
aquisição e modelagem do conhecimento, a modelagem do sistema, e a prototipação de interface. O
quinto e ultimo capítulo apresenta as conclusões, trazendo um apanhado geral do trabalho,
principais dificuldades encontradas e ferramentas utilizadas.
2 FUNDAMENTAÇÃO TEÓRICA
Este capítulo apresenta uma visão teórica sobre Inteligência Artificial e Teoria da Decisão
Multicritério.
2.1 TEORIA DA DECISÃO MULTICRITÉRIO
O problema da escolha de compra de um carro, ou de qualquer outro bem, é naturalmente
um problema de decisão multicritério, onde o decisor escolherá a alternativa mais apropriada ao seu
perfil de consumo, considerando vários atributos (características) para cada alternativa. Neste caso,
a teoria multicritério, a qual permite o modelamento do problema e do perfil do decisor, está
diretamente ligada aos sistemas baseados no conhecimento, os quais por sua vez, também
possibilitam a modelagem do problema e do perfil do decisor (preferências).
Uma decisão é dita bem estruturada se o tomador de decisão puder identificar todos os
elementos do processo de decisão e os qualificar para determinar uma resposta (THIERAUF, 1982).
Em problemas de decisão complexos, podem ser necessários vários critérios para a tomada de
decisão final. As metodologias monocritério, que em geral são utilizadas na Pesquisa Operacional
tradicional, consideram um único aspecto envolvido no processo decisório. Esse tipo de abordagem
limita o decisor a avaliar apenas um aspecto do problema, dificultando a análise de problemas com
mais de uma variável.
2.1.1 Métodos Multicritério
De acordo com Ensslin, Montibeller e Noronha (2001), os métodos multicritérios
consideram mais de um aspecto e, portanto, avaliam as ações segundo um conjunto de critérios.
Cada critério é uma função matemática que mede a performance das ações potenciais com relação a
um determinado aspecto. Os métodos multicritérios permitem ao decisor considerar
simultaneamente diferentes aspectos do problema a ser resolvido.
O propósito da teoria da decisão multicritério (STEWART E HONERT, 1998), é auxiliar os
decisores a conhecer seus problemas, gerar alternativas e tomar as decisões, resolvendo desse modo
seus problemas. A teoria da decisão multicritério (FANDEL E SPRONK, 1985), geralmente se
refere aos métodos que habilitam um usuário a agregar diversos critérios de avaliação a fim de
19
selecionar uma ou diversas ações. Mas estas expressões referem-se também as atividades de suporte
a decisões para um tomador de decisão.
De maneira geral, a seqüência de procedimentos da tomada de decisão (HWANG E LIN,
1987) inclui as seguintes fases:
• A fase de preparação, onde é definido qual o propósito específico da decisão a ser
tomada.
• A fase de seleção consiste em usar vários métodos para eliminar as alternativas
inadequadas.
• A fase de avaliação inclui rever a aplicação das alternativas qualificadas.
• A fase de decisão define a melhor alternativa de acordo com os insumos da avaliação.
Um dos métodos de decisão multicritério mais conhecidos é o método de análise hierárquica
(AHP). De acordo com Stewart e Honert (1998), a AHP é uma metodologia multicritéio discreta
onde são utilizadas comparações aos pares para derivar pesos relativos dos critérios e alternativas
em consideração. Esse método foi um assunto de muita controvérsia no meio científico,
particularmente sobre a questão dele aparentemente ser a causa do ranking reverso em algumas
circunstâncias.
Para a utilização de diversos critérios na solução de um problema, é necessário estabelecer
as relações de dominância entre eles, onde o decisor define suas preferências atribuindo um grau de
relevância para cada um dos critérios envolvidos no problema. Ensslin, Montibeller e Noronha
(2001), apresentam as seguintes abordagens para classificar os métodos multicritérios:
• Abordagem de critério único de síntese: nesta abordagem cada critério é transformado
em uma função de valor, o que define quanto uma determinada ação fornece de
utilidade, com relação ao aspecto que está sendo medido naquele critério. Os pontos
negativos dessa abordagem são o nível elevado de informações extras e perguntar
questões muito complexas ao decisor.
• Abordagem da subordinação de síntese: baseia-se na idéia de uma relação de
subordinação entre as ações. Se os decisores definirem que uma ação a é pelo menos tão
boa quanto uma ação b, então se considera que a subordina b. A ordem de preferência
20
das alternativas será então determinada através da análise das relações de subordinações
entre elas.
• Abordagem do julgamento local interativo: diferentemente das abordagens anteriores,
esta não realiza uma agregação das performances da ação em cada um dos critérios,
visando determinar sua performance global. Esta abordagem baseia-se em uma
seqüência de julgamentos, realizados pelos decisores, sobre a performance requerida
localmente em um determinado critério.
2.1.2 Apoio a Decisão Utilizando Metodologia Multicritério
Com base no que foi visto a respeito dos métodos multicritério, é possível afirmar que o
problema da escolha de automóveis caracteriza-se como sendo desta natureza, não sendo possível
resolvê-lo com técnicas monocritério. Esta afirmação é válida ao se considerar que em geral uma
pessoa analisa diferentes aspectos na escolha de um automóvel.
Como o objetivo do trabalho é um sistema de apoio à decisão, será visto de forma
abrangente como é a estrutura de um sistema de apoio a decisão utilizando-se uma metodologia
multicritério. Em suma o um processo dessa natureza possui quatro etapas principais, conforme
apresentadas na Figura 1.
Figura 1. Processo de Apoio a Decisão Utilizando-se Metodologia Multicritério.
Fonte: Adaptado de Ensslin, Montibeller e Noronha (2001).
21
A primeira etapa do processo é a identificação do contexto decisório. Nessa etapa são
identificados todos os atores envolvidos no processo decisório e escolhidos os decisores que
participarão na construção do modelo. Também são definidas as ações disponíveis, que são na
verdade as alternativas. No contexto da escolha de automóveis essas ações seriam os modelos de
automóveis disponíveis no mercado. Ainda na identificação do contexto decisório, encontra-se a
definição da problemática de referência. Ensslin, Montibeller e Noronha (2001) apresentam as
seguintes problemáticas de referência:
• Problemática de descrição, utilizada quando o decisor pretende descrever as ações e suas
características de maneira formalizada.
• Problemática da alocação em categorias, consiste em classificar as ações em categorias.
• Problemática da escolha, consiste em escolher uma ação ou um conjunto restrito de
ações.
• Problemática da ordenação, nesta é feita uma ordenação das ações em termos de
preferência.
• Problemática da rejeição absoluta, onde o decisor define regras que se não forem
cumpridas pelas ações, as eliminam do conjunto de ações possíveis.
A segunda etapa é a estruturação do problema. Dentro desta etapa, é realizada a construção
de mapas cognitivos, sendo que um mapa cognitivo nada mais é do que uma forma de representar o
problema do decisor. Em seguida é feita a análise do mapa cognitivo, que consiste na transição do
mapa cognitivo para o modelo multicritério. Essa Análise pode ser classificada em análise
tradicional e análise avançada, sendo que a primeira baseia-se apenas na forma do mapa, enquanto a
análise avançada baseia-se não só na forma, mas também no conteúdo do mapa cognitivo. Ainda na
estruturação do problema, encontra-se a determinação dos pontos de vista fundamentais (PVF), que
consiste em definir quais os pontos de vista que serão considerados no modelo multicritério, criando
com isso uma árvore de pontos de vista fundamentais.
A estruturação do modelo multicritério, que forma a terceira etapa do processo, visa
construir um critério para cada ponto de vista fundamental. Nesta etapa do processo, um ponto de
vista fundamental pode ser decomposto em um conjunto de pontos de vista elementares. Para cada
ponto vista fundamental, verifica-se a necessidade de decompor o mesmo em pontos de vista
elementares. Em seguida são construídos os critérios do modelo, onde para cada critério é definido
22
um descritor para mensurar o ponto de vista, e uma função de valor associada ao descritor. Para o
problema da escolha de automóveis, a Figura 2 apresenta a árvore de pontos de vista proposta por
Ensslin, Montibeller e Noronha (2001).
Figura 2. Árvore de Pontos de Vista Para Escolha de Automóvel.
Fonte: Adaptado de Ensslin, Montibeller e Noronha (2001).
A etapa final do processo é a avaliação das ações potenciais e a análise dos resultados do
modelo. Para tal, o primeiro passo é a avaliar a performance das ações em cada ponto de vista, em
seguida é feita a agregação das taxas de substituição, que servem para converter as performance
locais dos critérios em performance global. Também é necessário analisar a sensibilidade das
respostas do modelo frente a variações dos seus parâmetros, o que nos dá insumos para geração de
estratégias para melhoria das ações potenciais.
2.2 INTELIGÊNCIA ARTIFICIAL
De acordo com Russell e Norvig (2004), o termo Inteligência Artificial (IA), surgiu num
seminário em Dartmouth no ano de 1956, quando John McCarthy sugeriu o termo para definir o
campo de estudo de redes neurais, teoria dos autômatos e no estudo da inteligência.
Uma vez conhecida a origem do termo, falta apresentar uma definição para o mesmo. Na
literatura há vários conceitos para definir inteligência artificial, dos quais, torna-se interessante citar
alguns a titulo de exemplo:
23
“Inteligência Artificial (IA) pode ser definida como o ramo da ciência da computação que
se ocupa da automação do comportamento inteligente” (LUGER, 2004).
“A inteligência artificial é a área da ciência da computação focada no desenvolvimento de
sistemas computacionais para simular os processos de resolução de problema e para duplicar as
funções do cérebro humano” (TUTHILL, 1989).
“A Inteligência Artificial (IA) é simplesmente uma maneira de fazer o computador pensar
inteligentemente” (LEVINE, DIANE E DRANG, 1988).
Considerando que a IA é uma ciência cujas raízes estão no processo de pensamento do ser
humano, é interessante entender a inteligência humana antes de tentar compreender a inteligência
artificial.
A Inteligência humana segundo Levine, Diane e Drang (1988), compõe-se dos seguintes
elementos:
• Objetivos: todo pensamento humano nos ajuda a atingir um objetivo.
• Fatos e Regras: Para resolver um problema, a mente humana se utiliza de todos os fatos
e regras conhecidos por ela inerentes ao problema.
• Poda: Uma vez definido o problema e estabelecido o conhecimento referente a ele, a
poda se encarrega de eliminar todos os pensamentos que não são relevantes para se
atingir o objetivo.
• Mecanismo de inferência: Baseado nas regras disponíveis e visando atingir o objetivo,
busca encontrar a melhor maneira de se atingir o objetivo. Muitas vezes para se alcançar
um objetivo, é necessário dividir o mesmo em uma seqüência de objetivos menores, que
juntos levam ao alcance do objetivo principal.
Estes elementos que compõem a inteligência humana, também são utilizados na IA. Dentre
os variados domínios de aplicação da inteligência Artificial, tais como processamento de linguagem
natural, base de dados inteligente, robótica, etc., será tratado o domínio de problemas de decisão, o
qual vem ao encontro do objetivo deste trabalho. Dewhurst e Gwinnett (1990), defende o uso de IA
no apoio a tomada de decisão, onde comenta que é possível ver os sistemas especialistas, e
24
possivelmente outras técnicas do IA, como ferramentas adicionais disponíveis ao analista da
decisão.
As técnicas de IA voltadas para problemas de decisão mais conhecidas são o raciocínio
baseados em casos (RBC) e os chamados sistemas especialistas (SE), sendo que ambas as técnicas
são utilizadas para desenvolver sistemas baseados no conhecimento. O RBC organiza o
conhecimento em uma base de casos, sendo capaz de recuperar os casos que mais se assemelham ao
problema a ser resolvido. Os SE por sua vez, tratam o conhecimento de maneira diferente,
organizando o mesmo em regras que são utilizadas para encontrar a solução ideal para um
determinado problema. Como as principais técnicas de IA utilizadas em problemas de decisão são
voltadas para o desenvolvimento de sistemas baseados no conhecimento, será apresentado no
próximo capitulo um estudo mais aprofundado sobre sistemas dessa natureza.
2.3 CONCLUSÃO
Baseado no que foi apresentado, fica claro que o problema da escolha do automóvel,
caracteriza-se como um problema de decisão multicritério. Pela natureza do problema e pelas
técnicas a serem utilizadas, o sistema a ser desenvolvido pode ser classificado como sistema
baseado no conhecimento. Mesmo utilizando duas técnicas distintas de IA, cabe ressaltar
novamente que o objetivo do trabalho não é tomar a decisão, mas sim auxiliar o decisor no processo
decisório.
3 SISTEMAS BASEADOS NO CONHECIMENTO
3.1 INTRODUÇÃO
O primeiro passo para entender o que são sistemas baseados no conhecimento, é conhecer o
significado da palavra conhecimento. Mattos (1991) considera o conhecimento como sendo tudo
que um indivíduo “sabe” sobre um universo específico em dado momento. Nonaka e Takeuchi
(1997) classificam o conhecimento humano em dois tipos. Um é o conhecimento explícito, que
pode ser articulado na linguagem formal, inclusive em afirmações gramaticais, expressões
matemáticas, especificações, manuais e assim por diante. Esse tipo de conhecimento pode ser então
transmitido, formal e facilmente.
O conhecimento explícito serve como base para desenvolver o conhecimento tácito, que é
difícil de ser articulado na linguagem formal e ao mesmo tempo é um tipo de conhecimento mais
importante. É o conhecimento pessoal incorporado à experiência individual e envolve fatores
intangíveis como, por exemplo, crenças pessoais, perspectivas e sistemas de valor. Considerando os
dois tipos de conhecimento, pode-se afirmar que os sistemas baseados no conhecimento trabalham
com conhecimento explícito (fatos) e tácito (regras ou casos). Essa afirmação é valida ao
considerar-mos que na aquisição do conhecimento, é possível explicitar o conhecimento tácito do
especialista do domínio.
De acordo com Mattos (1991), a inteligência artificial conseguiu um sucesso considerável
no desenvolvimento de sistemas baseados conhecimento. A representação computacional do
conhecimento humano é o alicerce para o desenvolvimento dos chamados sistemas baseados no
conhecimento. Sistemas dessa natureza geralmente possuem um escopo reduzido, sendo
desenvolvidos para trabalhar em um domínio específico.
“Um sistema computacional que use o conhecimento sobre algum domínio para chegar a uma solução para um problema desse domínio. Esta solução é essencialmente a mesma que aquela concluída por uma pessoa especialista sobre o domínio do problema quando confrontada com o mesmo problema” (GONZÁLEZ e DANKEL, 1993).
Para Carrico (1989), os sistemas baseados no conhecimento são sistemas computacionais
que estruturaram o conhecimento sobre um campo de expertise. Eles podem resolver alguns
problemas dentro de seu domínio de atuação usando o conhecimento derivado dos peritos na área.
26
Fortalecendo a importância de sistemas baseados no conhecimento, Alty e Coombs (1984),
afirmam que a incorporação do conhecimento explícito do domínio em programas de resolução de
problemas provou ser de grande importância prática e teórica.
3.2 SISTEMAS ESPECIALISTAS
3.2.1 Um Breve Histórico
Os sistemas especialistas (SE) surgiram na década de 60, época em que Ledenberg,
Buchanan e Feigenbaum iniciaram o DENDRAL, um sistema especialista capaz de determinar
estruturas moleculares a partir de dados da massa espectral (LIEBOWITZ, 1988). No mesmo
período surgiram também o SAINT de James Slagle, que resolvia problemas de cálculo integral
típicos do primeiro ano dos cursos acadêmicos e o STUDENT de Daniel Bobrow que solucionava
problemas clássicos de álgebra (RUSSELL e NORVIG, 2004).
Um dos sistemas especialistas amplamente referenciados na literatura é o MYCIN, criado
por Edward Shortliffe na Universidade de Stanford. Esse sistema que foi desenvolvido na metade
da década de 70 e segundo Harmon e King (1985), foi o primeiro grande sistema especialista
executado no nível de um especialista humano e que fornecia aos usuários uma explicação de seu
raciocínio. O MYCIN é um sistema especialista de diagnóstico de doenças infecciosas do sangue e
meningite através de um conjunto de aproximadamente 500 regras (DURKIN, 1994).
Logo após o MYCIN, começou a surgir um grande interesse das empresas em desenvolver
sistemas especialistas. Esse interesse foi demonstrado por empresas como a Xerox, IBM, Hewlett-
Packard, General Motors, entre outras (LIEBOWITZ, 1988).
3.2.2 Conceitos e Características
Existem várias definições de Sistemas Especialistas na literatura, onde cada autor procura
enfatizar o aspecto que considera mais importante. Alguns exemplos de definições são apresentados
a seguir:
“Os sistemas especialistas são uma área da inteligência artificial que faz uso extensivo do
conhecimento especializado para resolver problemas no nível de um especialista humano”
(GIARRATANO E RILEY, 1994).
27
“Um programa de computador projetado para modelar a habilidade de um especialista
humano de resolver problemas” (DURKIN, 1994).
“Os sistemas especialistas são construções de software que os peritos em campos específicos
enriquecem com seu conhecimento” (CHORAFAS, 1988).
“Um sistema especialista é um programa de computador que emula o comportamento de
especialistas humanos dentro de um domínio específico de conhecimento” (LIEBOWITZ, 1988).
Estas citações apresentam algumas das definições para sistemas especialistas encontradas na
literatura. Embora haja diferentes conceitos, é possível observar que de maneira geral as definições
têm certa convergência. Elas apontam sistemas especialistas como sendo programas de computador
concebidos para se comportarem como especialistas humanos na solução de problemas em um
domínio específico de conhecimento.
Citou-se anteriormente que sistemas especialistas, inteligência artificial e sistemas baseados
no conhecimento são termos correlacionados, falta agora definir qual a relação entre eles. A Figura
3 apresenta essa relação (WATERMAN, 1886).
Figura 3. Sistemas especialistas são sistemas baseados no conhecimento.
Fonte: Waterman (1986).
Analisando a figura 3 é possível observar que todo sistema especialista é um sistema
baseado no conhecimento, porém a relação contrária não é necessariamente verdadeira. Os sistemas
baseados no conhecimento por sua vez compõem uma subárea no campo da inteligência artificial.
28
Basicamente um sistema baseado no conhecimento é composto de três componentes
principais (TEIVE, 1997):
• Base de conhecimento – Elemento que armazena o conhecimento abstrato.
Normalmente, esta base é conhecida como base de regras onde o conhecimento abstrato
é armazenado em um conjunto de regras de produção do tipo:
Se (situação) → Então (conclusão ou ação).
• Memória de trabalho – É o elemento que armazena o conhecimento concreto, ou seja, o
conhecimento que pode ser considerado fato antes de processo de inferenciação. Esta
memória é de caráter transitório, pois novos fatos estão sendo acrescentados
continuamente ou fatos existentes são excluídos.
• Motor de inferência – É considerado o processador ou interpretador de conhecimento.
Sua principal função é combinar o conhecimento abstrato contido na base de regras, com
o conhecimento concreto armazenado na base de fatos, inferindo conclusões e gerando
novos fatos.
No entanto, uma análise um pouco mais profunda, permite identificar outros componentes
importantes em um sistema especialista. Além dos elementos citados, podem estar presentes o
editor da base de conhecimento e o subsistema de explanação, como mostra a Figura 4 (LUGER,
2004). O editor da base de conhecimento é o meio por onde são feitos os ajustes atualizações na
base de conhecimento do sistema. O subsistema de explanação permite ao sistema especialista
apresentar o raciocínio que levou ao resultado.
29
Figura 4. Arquitetura de um sistema especialista típico.
Fonte: Adaptado de Luger (2004).
O motor de inferência é responsável pelo processo de inferir novos fatos a partir de
informações já existente. Esse processo é conhecido como inferenciação ou encadeamento (TEIVE,
1997). Existem dois tipos, o encadeamento para frente e o encadeamento para trás.
O encadeamento para frente, é usado para resolver um problema, quando os dados ou as
idéias básicas forem o ponto inicial, ou seja, parte dos fatos para encontrar a solução. Este tipo de
encadeamento segue do antecedente de uma regra para o conseqüente, sendo assim o fluxo básico
para busca da solução.
O encadeamento para trás, possui uma hipótese como ponto inicial, e a partir desta trabalha
para trás, indo do conseqüente de uma regra para o antecedente, a fim de encontrar fatos que
suportem as hipóteses levantadas, no intuito de atestar a veracidade destas hipóteses.
Antes de decidir investir em um sistema especialista, é necessário conhecer suas vantagens
para saber até que ponto é válido o uso de um SE. Dentre os fatores que pesam a favor do uso de
sistemas especialistas, Giarratano e Rilley (1994) destacam as seguintes vantagens:
30
• Maior disponibilidade – A expertise (experiência) esta disponível em qualquer hardware
apropriado.
• Custo reduzido – O custo para fornecer a expertise por usuário é extremamente baixo.
• Redução de riscos – Os sistemas especialistas podem ser usados em perigosos para um
ser humano.
• Permanência – O conhecimento do sistema especialista durará indefinidamente.
• Múltipla expertise – O conhecimento de vários especialistas pode ser disponibilizado
para trabalhar simultaneamente.
• Maior confiabilidade – Os sistemas especialistas aumentam a confiança de que a decisão
correta foi tomada fornecendo uma segunda opinião a um especialista humano, ou
resolvem uma discordância entre vários especialistas humanos.
• Explicação – Os sistemas especialistas podem explicar detalhadamente o raciocínio que
levou a conclusão.
• Resposta rápida – Dependendo do software e do hardware, um sistema especialista pode
ser mais rápido e mais disponível que um especialista humano.
• Invariável, imparcial, sempre termina a resposta – Muito importante em situações de
tempo real e de emergência.
• Tutor inteligente – O sistema especialista pode agir como um tutor inteligente, deixando
o aluno executar programas de exemplo e explicando o raciocínio do sistema.
• Base de dados inteligente – Sistemas especialistas podem ser utilizados para acessar base
de dados de maneira inteligente.
Um sistema especialista usa conhecimento específico de um domínio de problema para
conseguir um desempenho com “qualidade de perícia” naquela área de aplicação (LUGER, 2004).
Outra característica dos sistemas especialistas é o uso de métodos heurísticos para solução de
problemas.
3.2.3 Sistemas especialistas e programas convencionais
A grosso modo, os programas convencionais manipulam dados, enquanto que os sistemas
especialistas manipulam conhecimento. Enquanto a programação convencional usa rotinas para
31
manipular dados, os sistemas especialistas utilizam a heurística para trabalhar com o conhecimento.
A expressão clássica (GIARRATANO e RILEY, 1994) para definir um programa se apresenta da
seguinte forma:
DADOS + ALGORITMOS = PROGRAMA
Essa expressão estabelece que um programa é formado de algoritmos, composto de todas as
rotinas necessárias para manipular uma massa e dados.
O surgimento dos sistemas especialistas veio acompanhado de um conceito importante: O
conhecimento. Esse novo elemento foi um dos responsáveis por fazer com que fosse criada uma
expressão diferente para definir os sistemas especialistas. Com isso, os sistemas especialistas
passaram a ser definidos pela expressão (GIARRATANO e RILEY, 1994):
CONHECIMENTO + INFERENCIA = SISTEMA ESPECIALISTA
Através da mesma analogia utilizada na expressão anterior, é possível colocar um SE como
um sistema que se utiliza de um mecanismo de inferência para manipular um determinado volume
de conhecimento.
Dentre as diferenças entre um programa convencional e um sistema especialista, a Tabela 1
apresenta quatro principais apontadas por Waterman (1886).
Tabela 1. Comparação entre SE e programas convencionais
Programa Convencional Sistema Especialista Representação e uso de dados Representação e uso de conhecimento Algoritmos Heurística Processo representativo Processo de inferência
Manipulação efetiva de grandes bases de dados Manipulação efetiva de grandes bases de conhecimento
Fonte: Waterman (1986).
A tabela mostra que os sistemas especialistas trabalham com conhecimento, enquanto que os
programas convencionais trabalham com dados, outra diferença apresentada ainda é a introdução de
heurística no primeiro, em contrapartida ao uso de algoritmos pelo segundo.
32
3.2.4 Sistemas especialistas e especialista humano
Quando se pensa em sistemas especialistas normalmente surge a pergunta: Os sistemas
especialistas podem substituir um especialista humano? De maneira geral os sistemas especialistas
são vistos como um assistente inteligente, visão esta que não deve se alterar pelo menos a curto
prazo. Keller (1991) explica que certamente, nenhum sistema especialista substituirá alguém até que
sua base de conhecimento amadureça, o que pode levar algum tempo.
Uma característica importante dos sistemas especialistas é a sua capacidade de explicar ao
usuário o raciocínio que levou a determinada resposta para o problema. Essa capacidade de
explicação é necessária de modo que o usuário possa questionar e desafiar os resultados do sistema
especialista, assim como compreender como os resultados foram conseguidos (LIEBOWITZ,
1988). Além da capacidade de explanação, a incerteza e os fatores humanos devem também ser
incorporados nos sistemas especialistas. Mesmo o especialista não é certo 100% do tempo, assim,
um sistema especialista deve manipular a incerteza.
A comparação de um sistema especialista com um especialista humano permite identificar
certas vantagens que podem justificar a utilização de um SE. A Tabela 2 apresenta alguns
benefícios de um SE em relação a um especialista humano levantadas por Waterman (1986).
Tabela 2. Vantagens de SE em relação e um especialista humano
Especialista Humano Sistemas Especialistas Perecível Permanente Difícil de transferir Fácil de transferir Difícil de documentar Fácil de documentar Imprevisível Consistente Caro Baixo custo
Fonte: Waterman (1986).
Certamente um sistema especialista não apresenta apenas vantagens em relação a um
especialista humano. Este também possui suas desvantagens, decorrentes da incapacidade dos
computadores de emular todas as potencialidades da inteligência humana. A Tabela 3, obtida de
Waterman (1886), apresenta as principais desvantagens encontradas na comparação entre um SE e
especialista humano.
33
Tabela 3. Desvantagens de SE em relação e um especialista humano
Especialista Humano Sistemas Especialistas Criativo Sem inspiração Adaptativo Necessita de comando Experiência sensorial Entrada simbólica Visão ampla Foco estreito Bom senso Conhecimento técnico
Fonte: Waterman (1986).
3.2.5 Utilização de sistemas especialistas
Não há uma regra básica para definir quando usar ou não sistemas especialistas. O que
existe é um conjunto de fatores que devem ser observados, para saber se é viável e valido o uso de
SE. Porém, seu uso não é indicado em casos onde o conhecimento especializado é muito difícil de
ser ensinado. Waterman (1986) aponta as seguintes características que indicam que o uso de
sistemas especialistas é apropriado:
• A tarefa requer manipulação simbólica.
• A tarefa requer solução heurística.
• A tarefa não é fácil.
• A tarefa tem valor prático.
• A tarefa é de tamanho realizável.
“As situações onde exista uma alta rotatividade de especialistas são candidatas ideais para a
tecnologia dos sistemas especialistas” Keller (1991).
A aplicação de sistemas especialistas pode ser dividida por áreas, que vão desde agricultura
até tecnologia espacial. A Tabela 4 apresenta uma relação com as possíveis áreas de aplicação de
acordo com Waterman (1886).
34
Tabela 4. Áreas de aplicação de sistemas especialistas
Áreas de aplicação para sistemas especialistas Agricultura Manufatura Química Matemática Sistemas computacionais Medicina Eletrônicos Meteorologia Engenharia Ciência militar Geologia Física Gestão da informação Controle de processos Direito Tecnologia espacial
Fonte: Waterman (1986).
Além das áreas de aplicação, os sistemas especialistas podem ser classificados também em
categorias de aplicação de acordo com a sua finalidade. A Tabela 5, obtida de Waterman (1886),
apresenta uma relação de categorias genéricas de aplicações de sistemas especialistas.
Tabela 5. Categorias genéricas de aplicações de sistemas especialistas
Categoria Problema específico Interpretação Inferir as descrições da situação dos dados de um sensor Predição Inferir as prováveis conseqüências de determinadas situações. Diagnóstico Inferir o mau funcionamento dos sistemas observados Design Configurar objetos sob limitações Planejamento Projetar ações Monitoramento Comparar resultados observados com resultados previstos Correção de erros Prescrever soluções para maus funcionamentos Reparo Executar planos para administrar soluções prescritas Instrução Diagnosticar, corrigir erros e reparar o comportamento do aluno. Controle Controlar o comportamento total do sistema
Fonte: Waterman (1986).
Analisando-se a tabela 4 e a tabela 5, é possível afirmar que há uma gama considerável de
possibilidades para se utilizar sistemas especialistas, podendo variar de áreas como agricultura até
áreas mais complexas como tecnologia espacial.
3.2.6 Etapas de desenvolvimento
O que é apresentado aqui não se trata das etapas tradicionais de desenvolvimento de
software encontradas na literatura de engenharia de software. Será apresentado de forma macro as
fases do processo de desenvolvimento de um SE. Nestas etapas, destacam-se as atividades
35
relacionadas a aquisição e representação do conhecimento. A Figura 5, adaptada de Waterman
(1886), apresenta as etapas de desenvolvimento.
Figura 5. Fases de desenvolvimento para construção de um sistema especialista.
Fonte: Waterman (1986).
• Identificação – Nesta fase, o engenheiro do conhecimento define em conjunto com o
especialista as características importantes do problema. Na identificação são definidos o
tipo e o escopo do problema. Também são selecionados os especialistas que irão
participar do desenvolvimento e os recursos requeridos.
• Concepção – Fase em que o engenheiro do conhecimento em conjunto com o
especialista, decide que conceitos, relações e mecanismos de controle são necessários
para gerar a solução do problema. Esta etapa também pode ser chamada de aquisição do
conhecimento.
• Formalização – Diz respeito a como o conhecimento será formalizado. A forma que será
feita a representação do conhecimento necessário para a solução do problema. Nesta
etapa o engenheiro do conhecimento utiliza ferramentas específicas para iniciar a
formalização do conhecimento. Conhecida como fase de representação do
conhecimento.
• Implementação – É nesta etapa que o engenheiro do conhecimento aplica o
conhecimento formalizado na construção do sistema propriamente dito. Esta construção
é feita a partir de três requisitos: conteúdo, forma e integração. O conteúdo vem do
conhecimento do domínio explicitado na fase de formalização. A forma se traduz na
36
linguagem escolhida para desenvolver o sistema. Por fim, a integração é quando se faz a
combinação e reorganização de várias partes conhecimento. Isso é feito para eliminar
erros de combinação entre dados estruturados e regras.
• Testes – Nesta etapa é feita a avaliação da performance do sistema. Dentre as atividades
desta fase, vale destacar o refinamento e validação da base de conhecimento.
Estas são as etapas macro do desenvolvimento de um sistema especialista, sendo que cada
uma dessas fases pode se dividir em várias outras etapas menores para se atingir o objetivo final.
3.3 RACIOCÍNIO BASEADO EM CASOS
3.3.1 Um breve histórico
As raízes do raciocínio baseado em casos (RBC) na Inteligência Artificial foram inspiradas
nos trabalhos de Schank e Abelson sobre a memória dinâmica e no modelo cognitivo de uma função
central de lembrança de situações passadas (casos e memória episódica) e de padrões de situações
(WANGENHEIM, 2003).
O primeiro sistema de raciocínio baseado em casos foi o CYRUS, desenvolvido em 1983
por Janet Kolodner na Yale University. CYRUS é um sistema de perguntas e respostas que integra
o conhecimento obtido da descrição de várias viagens e reuniões do ex-secretário de estado dos
Estados Unidos, Cyrus Vance. De acordo com Wangenheim (2003), o modelo de memória de casos
desenvolvido para este sistema serviu, mais tarde, como base para vários outros sistemas de RBC,
dentre eles:
• MEDIATOR – Desenvolvido por Robert L. Simpson em 1985, foi criado para resolver
situações de conflito, tentando encontrar uma solução de consenso. Caso a proposta não
satisfazer as partes envolvidas, o sistema armazena a falha para não repeti-la e propõe
uma nova solução.
• CHEF – Sistema destinado a criar receitas culinárias. Foi criado por Kristian J.
Hammond em 1986. É capaz de criar novas receitas culinárias a partir de receitas já
existentes. Tem como característica importante a explicação de falhas.
• PERSUADER – Foi desenvolvido em 1987 por Sycara, possui certa semelhança com o
MEDIATOR por também atuar na solução de conflitos. No entanto, os conflitos tratados
37
pelo sistema de Sycara estão restritos a disputas trabalhistas entre empregado e
empregador. Para uma determinada disputa salarial, recupera e adapta contratos salariais
utilizados por empresas similares.
• CASEY – Desenvolvido por Phyllis Koton em 1989, é um sistema que diagnostica
problemas cardíacos. Tem como entrada os sintomas do paciente e produz a explicação
causal da cardiopatia adaptando descrições de outros pacientes com sintomas similares.
• JULIA – T. R. Hinrichs desenvolveu este sistema em 1992 para trabalhar com o
planejamento de refeições. O sistema utiliza casos para orientar a elaboração de uma
nova refeição, respeitando as restrições propostas no problema.
Estes são apenas alguns exemplos de sistemas que utilizam RBC, os quais permitem uma
percepção da vasta área de aplicação para desta técnica, podendo variar de culinária a medicina,
entre outros.
3.3.2 Conceitos e características
Os sistemas de raciocínio baseado em casos (RBC) possuem, na hierarquia das áreas de IA,
a mesma classificação dada aos sistemas especialistas de acordo com a Figura 3. Sendo assim, da
mesma forma que os SE, todo sistema de RBC é um sistema baseado no conhecimento e pertence a
este campo da inteligência artificial. A seguir apresentam-se alguns dos vários conceitos
encontrados na literatura para definir RBC:
“Um raciocinador baseado em casos resolve problemas novos adaptando as soluções que
foram usadas para resolver problemas passados” (SCHANK e RIESBECK, 1989).
“Raciocínio Baseado em Casos é um enfoque para a solução de problemas e para o
aprendizado baseado em experiência passada” (WANGENHEIM, 2003).
“O raciocínio baseado em casos usa o conhecimento armazenado como traços de
experiências de resolução de problemas precedentes” (KOLODNER e RIESBECK, 1986).
Basicamente, um sistema de RBC tem o seguinte funcionamento: A partir de um
determinado problema, procura em sua base de casos quais os casos semelhantes ao problema,
utilizando para isso a similaridade. Em seguida o sistema adapta os casos recuperados para propor a
38
solução do problema. A Figura 6, obtida de Wangenheim (2003), ilustra o modelo básico de um
sistema de RBC.
Figura 6. Modelo básico de raciocínio baseado em casos.
Fonte: Adaptado de Wangenheim (2003).
Para entender o funcionamento de um RBC é necessário entender o que é um caso neste
contexto. Um caso segundo Wangenheim (2003) é uma peça de conhecimento contextualizado
representando uma experiência ou episódio concretos, sendo composto geralmente dos seguintes
itens:
• Problema – Descreve o problema que foi resolvido, podendo conter inclusive
características do ambiente que tiveram alguma participação na escolha da solução.
• Solução – Contem a descrição de como o problema foi resolvido, podendo ser uma
informação útil ao usuário, um plano ou uma ação.
Dentre as principais etapas de um sistema de raciocínio baseado em casos, Oliveira (1997)
destaca as seguintes: Representação dos casos, recuperação dos casos, adaptação e aprendizagem.
• Representação dos casos – Define como os casos serão representados no sistema, qual a
estrutura a ser utilizada. De acordo com Pal e Shiu (2004), uma base de casos pode
representar muitos tipos diferentes de conhecimento que podem ser armazenados de
várias formas. A representação pode variar desde pares atributo-valor para os casos mais
comuns até redes ou grafos para casos mais complexos.
39
• Recuperação dos casos – Segundo Wangenheim (2003) o objetivo da recuperação de
casos é encontrar um caso ou um pequeno conjunto de casos na base de casos que
contenha uma solução útil para o problema ou situação atual. A recuperação é feita
através da similaridade entre o problema de entrada e os problemas armazenados na base
de casos.
• Adaptação – SILVA (1997) explica que adaptação é a fase onde um caso é modificado
para solucionar o problema de entrada. Para isso são avaliadas as diferenças entre o
problema escolhido e o problema de entrada.
• Aprendizagem – A aprendizagem pode ser de duas formas. Uma é quando uma nova
informação é adicionada a um caso após a sua utilização. A outra é quando ocorre a
inclusão de novos casos na base de casos.
3.3.3 RBC e sistemas especialistas baseado em regras
A abordagem do raciocínio baseado em casos pode ser contrastada com a usada em sistemas
baseados em regras. Nos sistemas baseados em regras, o conhecimento é organizado em regras
produzidas na forma: SE A, ENTÃO B, onde A é uma condição e B é uma ação. Se a condição A
for verdadeira, a ação B será realizada. A condição A pode ser uma condição composta que
consiste, por exemplo, em uma junção das premissas A1, A2... An.
Além disso, um sistema baseado em regras tem um motor de inferência que compara os
dados que estão na memória de trabalho com as condições das regras para determinar que regras
eliminar. Os sistemas baseados em regras utilizam regras para capturar o conhecimento
estereotipado. Uma outra característica desses sistemas é que requerem alguém para adquirir o
conhecimento simbólico, que é representado nestas regras usando a engenharia de conhecimento
manual ou ferramentas automatizadas da aquisição de conhecimento.
Os sistemas de raciocínio baseado em casos, em muitas situações são uma alternativa aos
sistemas baseados em regras. Em muitos domínios, consultar os casos como um meio do raciocínio
pode ser uma vantagem devido à natureza deste tipo de resolução de problema.
Um dos aspectos que mais consomem tempo no desenvolvimento de sistemas baseados em
regras é a tarefa da aquisição de conhecimento. Adquirir a informação específica do domínio e
convertê-la em alguma representação formal pode ser uma tarefa enorme e em algumas situações,
40
onde os domínios são pouco compreendidos, a formalização do conhecimento não pode ser feita por
completo.
Os sistemas baseados em casos geralmente requerem menos aquisição de conhecimento, que
envolve coletar um conjunto de experiências passadas sem a necessidade adicional de extrair um
modelo formal do domínio destes casos (PAL e SHIU, 2004). Em muitos domínios há casos
insuficientes para extrair um modelo do domínio, e este é um outro benefício do RBC: Um sistema
pode ser criado com uma quantidade pequena de experiência e ser desenvolvido de forma
incremental, adicionando mais casos à base do caso quando estes se tornam disponíveis.
3.3.4 RBC e raciocínio humano
Os processos que compõem o raciocínio baseado em casos podem ser vistos como uma
reflexão de um tipo particular de raciocínio humano. Em muitas situações, os problemas que os
seres humanos encontram são resolvidos com um equivalente humano do RBC.
Quando uma pessoa encontra um problema novo, geralmente consulta a uma experiência
passada de um problema similar. Esta experiência precedente pode ser tanto da pessoa que se
deparou com o novo problema, quanto uma experiência vivida por outra pessoa.
Em geral, o raciocínio baseado em casos é referenciado como sendo aplicado à resolução de
problemas. O RBC também pode ser usado de outras maneiras, dentre elas, discutir um ponto da
vista. Este tipo de raciocínio é muito comum no domínio jurídico, apresentando outra maneira de
como o raciocínio baseado em casos pode ser executado.
Por exemplo, um advogado discute um ponto na corte fazendo referências a casos passados.
Os sistemas de RBC podem consultar uma base de casos contendo o caso de cortes e encontrar os
casos que têm as características similares a situação atual. A similaridade pode satisfazer todo o
caso ou somente determinados pontos. Podem ser descobertos casos que suportem algumas partes
do caso atual ao se oporem a outras. Segundo Pal e Shiu (2004) os sistemas de RBC que executam
este tipo de tarefa podem ser chamados de raciocinadores interpretativos.
3.3.5 Vantagens em utilizar RBC
Entre os benefícios no uso de raciocínio baseado em casos, Pal e Shiu (2004) apontam as
seguintes vantagens:
41
• Reduz a tarefa de aquisição do conhecimento.
• Evita repetir os erros cometidos no passado.
• Fornece flexibilidade na modelagem do conhecimento.
• Permite o raciocínio em domínios que não foram inteiramente compreendidos, definidos,
ou modelados.
• Aprendizado constante.
• Raciocínio em um domínio com um volume pequeno de conhecimento.
• Raciocínio com dados e conceitos incompletos ou imprecisos.
• Evita repetir todas as etapas que necessitam ser feitas para chegar a uma solução.
• Pode explicar o raciocínio que levou a solução proposta.
• Aplicável a diferentes finalidades.
• Aplicável a uma larga escala de domínios.
• Reflete o raciocínio de um ser humano.
Conforme apresentado nesta seção, a técnica de RBC é apropriada para problemas onde o
decisor não tem idéia exata do que escolher. Seria basicamente a situação onde alguém vai comprar
um automóvel e não sabe exatamente qual o preço exato do mesmo, qual média de consumo o
mesmo deverá fazer, qual potência de motor, etc.
3.4 CONCLUSÃO
O estudo apresentou duas importantes técnicas de inteligência artificial. De acordo com o
que foi apresentado, pode-se afirmar que a técnica mais indicada para a solução do problema de
escolha de automóvel é o RBC. Devido a grande quantidade de variáveis a serem consideradas para
solucionar o problema, a implementação de um sistema especialista exigiria uma quantidade muito
grande de regras, as quais teriam alta complexidade. Outro fato importante a favor do RBC, refere-
se a atualização da base de conhecimento, pois é mais simples realizar essa tarefa em uma base de
casos do que em uma base de regras. No entanto essas técnicas não são excludentes, elas podem ser
utilizadas em conjunto, cada qual com um objetivo específico, a fim de alcançar um objetivo maior.
4 SISTEMA PROPOSTO
Este capítulo apresenta o projeto do sistema a ser desenvolvido. Aqui encontra-se uma
descrição geral do sistema, o processo de modelagem do conhecimento, os requisitos levantados, os
diagramas de caso de uso, diagramas de pacote, diagramas de atividade, diagramas de seqüência e a
prototipação de interface.
4.1 DESCRIÇÃO GERAL
De maneira geral um sistema especialista é baseado em regras. No entanto, o estudo mostrou
que organizar o conhecimento sobre os diferentes modelos de automóveis somente em forma de
regras não é a solução mais adequada. A pesquisa revelou que o mais apropriado para construir um
sistema que auxilie na escolha de automóveis, é armazenar o conhecimento em forma de casos,
onde cada modelo de automóvel corresponde a um caso. O encadeamento de regras é utilizado
complementarmente, neste sistema, para realizar a conversão dos termos usados pelos usuários em
linguagem técnica.
Outro aspecto que deve ser observado no sistema, é que o usuário nem sempre conhece a
linguagem técnica utilizada no domínio de automóveis. Por exemplo, o usuário sabe que precisa de
um carro utilitário e econômico, mas não tem obrigação de saber qual o consumo de um automóvel
considerado econômico dentro da categoria de automóveis desejada.
Outro exemplo seria o caso do usuário querer um porta-malas grande, mas não ter idéia de
quantos litros cabem no mesmo. Pode ser observado nos dois exemplos, que são situações
diferentes da utilização de um dicionário de Thesaurus de um sistema RBC, sendo um pouco mais
complexo, pois envolve necessidade de se fazer inferências.
Para solucionar esse problema, será desenvolvido um sistema especialista que fará a
conversão da linguagem de usuário para a linguagem técnica, gerando assim o caso de entrada para
o RBC. Para o exemplo citado, o SE irá converter a entrada do usuário em um valor que represente
o consumo de um automóvel considerado econômico naquela categoria.
Neste caso, o que se está propondo neste trabalho é um sistema baseado no conhecimento
híbrido, consistindo de um sistema especialista, o qual será a base do sistema de suporte a decisão
proposto, alimentado pelo sistema RBC, mais um conjunto de regras necessárias ao conversor
43
linguagem coloquial – linguagem técnica. O sistema híbrido proposto está representado de forma
esquemática na Figura 7.
Figura 7. Estrutura básica do sistema híbrido proposto.
A partir da entrada fornecida pelo usuário, o controlador identifica se há algum valor
subjetivo e em caso afirmativo, envia esses valores para o sistema especialista para que sejam
convertidos em valores lógicos. Em seguida, o controlador recebe esses valores convertidos pelo
sistema especialista e gera um caso de entrada, que é enviado para o RBC. Na seqüência, o RBC
recupera os casos mais similares em relação ao caso de entrada. Após a recuperação, é feito um
ranking com os casos retornados, ordenados por similaridade. A lista com o ranking dos casos
retornados é encaminhada para o controlador, que em seguida envia os dados para a tela de retorno
do sistema, a qual é apresentada ao usuário.
Vale ressaltar que o sistema proposto não tem como objetivo a busca por modelos
específicos automóveis, como ocorro hoje em sites especializados em comércio de veículos. O
objetivo do sistema é indicar o modelo que mais se encaixa nas características apontadas pelo
usuário, a fim de auxiliar o mesmo a encontrar o modelo mais adequado às suas necessidades.
Como mencionado anteriormente, o sistema utilizará tanto técnicas SE quanto técnicas de
RBC, para tal, serão utilizadas ferramentas específicas para cada fim. A ferramenta escolhida para o
desenvolvimento do SE foi o JESS (Java Expert System Shell). Para o RBC, foi utilizado o
framework JCOLIBRI, a seguir apresenta-se cada uma das técnicas utilizadas.
44
4.2 SISTEMA ESPECIALISTA
Para o desenvolvimento do sistema especialista, foi utilizado o JESS (Java Expert System
Shell) que consiste em uma shell para o desenvolvimento de sistemas especialistas que foi
desenvolvida na linguagem Java. Usando Jess, é possível desenvolver aplicações em Java com a
capacidade de “raciocinar” usando o conhecimento fornecido através de regras (SANDIA
NATIONAL LABORATORIES, 2007). Isso permite com que o sistema faça inferências baseado
em um conjunto de regras pré-determinadas. Apesar de não ser software livre, Jess pode ser
utilizado sem custos para trabalhos acadêmicos. Detalhes dos diagramas de seqüência
desenvolvidos podem ser encontrados nas Figuras 18 e 19.
Para que o usuário possa utilizar o sistema sem a necessidade de ter conhecimento técnico
sobre automóveis, alguns atributos são apresentados na interface na forma de valores subjetivos,
como mostra a Tabela 6.
Tabela 6. Conjunto de atributos com valores subjetivos
Atributo Valores possíveis Porta-malas Pequeno, médio e grande Potência Baixa, média e alta Consumo médio Baixo, médio e alto Seguro Baixo, médio e alto
Apesar de esses atributos serem apresentados ao usuário como valores subjetivos, na base de
casos do sistema eles estão armazenados na forma de valores lógicos. Desta forma, para que seja
possível transformar os dados informados pelo usuário em um caso de entrada, esses valores
subjetivos devem ser convertidos em valores lógicos. Essa conversão é feita pelo sistema
especialista, através de um conjunto de regras lógicas específico para cada atributo. Estas regras
estão disponíveis no Anexo A.
O tipo de encadeamento utilizado é o encadeamento para frente, seguindo do antecedente de
uma regra para seu conseqüente. Por padrão, a estratégia de encadeamento utilizada pelo JESS é a
chamada profundidade, onde as regras mais recentemente utilizadas serão as primeiras a serem
executadas. No sistema desenvolvido foi mantida de estratégia padrão de encadeamento.
Para a conversão de valor do tamanho do porta-malas, o sistema transforma o valor
subjetivo informado pelo usuário para um valor em litros. Para isso ele considera além do tamanho
subjetivo do porta-malas informado pelo usuário, o tipo de carroceria escolhido. Isso se faz
45
necessário ao considerar-mos que o valor em litros considerado grande para o porta-malas de um
automóvel com carroceria hatch é diferente do valor em litros considerado grande para o porta-
malas de um automóvel com carroceria sedan. A Figura 8 apresenta a árvore de decisão para a
conversão de valor do tamanho do porta-malas.
Figura 8. Árvore de decisão para o tamanho do porta-malas.
Um trecho de código da base de regras para o tamanho do porta-malas é apresentado na
Figura 9, sendo que todo o código desta e das demais bases de regras do sistema encontram-se
disponíveis no Apêndice A.
46
Figura 9. Trecho de código da base de regras para o tamanho do porta-malas.
4.3 RACIOCÍNIO BASEADO EM CASOS
Para a implementação do RBC do sistema foi utilizado o JColibri. Consiste em um
framework de código aberto, feito em Java, voltado para o desenvolvimento de sistemas de
raciocínio baseado em casos (GAIA, 2007). Este framework pode ser utilizado como API, Web
Service ou EJB, sendo que no presente trabalho ele será utilizado como API. Detalhes dos
diagramas de seqüência desenvolvidos podem ser encontrados nas Figuras 18 e 20.
Para solucionar um problema, o RBC se utiliza de uma base de casos, onde cada caso é
composto de problema e solução. No caso do problema de escolha de automóvel, para cada caso o
problema é composto de um conjunto de 15 atributos, os quais estão descritos na Tabela 7, a
solução corresponde ao modelo de automóvel que atende ao problema, ou seja, o modelo que possui
conjunto de valores para os 15 atributos que formam o problema.
47
Tabela 7. Conjunto de atributos que formam um caso.
Atributo Peso Tipo de dado Tipo de similaridade Marca Integer String Igualdade Categoria Integer String Igualdade Portas Integer Integer Igualdade Carroceria Integer String Igualdade Potência Integer Integer Aproximação com intervalo de 260 Porta-malas Integer Integer Aproximação com intervalo de 600 Valor Integer Double Igualdade Coeficiente do seguro Integer Double Igualdade Consumo médio Integer Double Igualdade Ar condicionado Integer Boolean Igualdade Direção hidráulica Integer Boolean Igualdade Air Bag Integer Boolean Igualdade Vidro/ Trava elétrica Integer Boolean Igualdade Câmbio Automático Integer Boolean Igualdade ABS Integer Boolean Igualdade
Para cada atributo, além do usuário informar o valor do atributo, também é informado um
peso para o atributo, que representa a relevância daquele atributo no contexto do usuário. Na
recuperação dos casos, o RBC utiliza a similaridade local e a similaridade global.
A similaridade local é aquela específica para cada atributo que compõe o problema, podendo
variar de um atributo para outro. Foram utilizadas aqui dois tipos de similaridade local, igualdade e
aproximação. A igualdade, apresentada na Equação 1, retorna 1 caso o valor do atributo do caso de
entrada seja igual ao valor do atributo correspondendo no caso da base, caso contrário retorna 0. A
aproximação retorna 1 menos o mod do valor do atributo do caso de entrada menos o valor do
atributo do caso da base, dividido pelo intervalo, conforme apresentado na Equação 2.
se x = y, sim(x,y) = 1
senão, sim(x,y) = 0
Equação 1
sim(x,y)=1-(|x-y|/intervalo) Equação 2
48
A similaridade global utilizada é a média ponderada, que é obtida através do somatório da
multiplicação do valor de cada similaridade local pelo seu respectivo peso, dividido pela quantidade
de atributos. A Equação 3 apresenta o cálculo da similaridade global.
Equação 3
A Figura 10 apresenta um exemplo de caso do sistema, onde temos a descrição do problema
com seu conjunto de atributos e a solução do mesmo.
Figura 10. Exemplo de caso do sistema.
4.4 AQUISIÇÃO DO CONHECIMENTO
O processo de aquisição do conhecimento iniciou-se através da coleta de informações de
cada modelo de automóvel nos sites das montadoras especificadas anteriormente no capitulo 1.
Devido ao fato de as montadores não fornecerem informações referentes a consumo de combustível,
49
procurou-se obter esse dado em publicações especializadas, de modo que foi utilizada a revista
quatro rodas para prover tal informação. Esse processo de aquisição resultou em uma base de casos
composta por 125 casos.
Um outro item a ser considerado refere-se ao valor do seguro de cada modelo. Para obter
esses valores, utilizou-se um especialista em seguro de automóveis. O cálculo do valor do seguro
para cada modelo de automóvel, foi realizado na seguradora Confiança Companhia de Seguros,
tomando-se como base os seguintes parâmetros:
• Seguro novo.
• Município de Florianópolis.
• Condutor principal nascido em 1977.
• Franquia reduzida.
• Valor de R$50.000,00 para danos materiais.
• Valor de R$50.000,00 para danos corporais a terceiros.
• Valor de R$5.000,00 por morte de passageiro.
• Valor de R$5.000,00 por invalidez permanente de passageiro.
• Cobertura de 100% do valor do veículo.
• Assistência 24 horas.
• Cobertura dos vidros.
• Carro reserva por 30 dias em caso de perca total.
A partir do valor do seguro de cada modelo informado pela corretora de seguros, foi
calculado o coeficiente do seguro, que é o valor a ser considerado pelo RBC para este atributo. Este
cálculo é feito através da divisão do valor do seguro pelo valor do automóvel, conforme apresentado
na Equação 4.
Coeficiente do seguro = Valor do seguro / Valor do automóvel Equação 4
50
O resultado do processo de aquisição do conhecimento realizado foi um conjunto de
atributos para cada modelo, representado na Tabela 8.
Tabela 8. Conjunto de atributos para cada modelo
Atributo Descrição Marca Nome da montadora Carroceria Tipo de carroceria (Hatch, Sedan, Station Wagon, etc.) Categoria Classificação do modelo (Popular, Médio, Luxo) Modelo Nome do modelo do automóvel Portas Quantidade de portas Valor Preço do modelo sugerido pela montadora Seguro Valor do seguro Coeficiente do seguro Percentual do valor do seguro em relação ao valor do modelo. Consumo médio Consumo médio em kilometros por litro Ar Condicionado Define se o modelo vem com ar condicionado de série Direção Hidráulica Define se o modelo vem com direção hidráulica de série Vidro/Trava Elétrica Define se o modelo vem com vidro e trava elétrica de série Câmbio Automático Define se o modelo vem com câmbio automático de série Cilindrada Cilindrada do motor em centímetros cúbicos Potência Potência do motor em cavalos Velocidade Máxima Velocidade máxima em kilometros por hora Aceleração Aceleração de 0 a 100 kilometros por hora em segundos Air Bag Define se o modelo vem com air bag de série ABS Define se o modelo vem com abs de série Capacidade do porta-malas Capacidade do porta-malas em litros
Vale ressaltar que os dados referentes a consumo, aceleração e velocidade máxima se
referem a automóveis utilizando gasolina.
4.5 REPRESENTAÇÃO DO CONHECIMENTO
A representação do conhecimento encontra-se dividida em duas formas distintas, uma para o
RBC, onde o conhecimento esta disposto na forma de casos, e outra para o SE, onde o
conhecimento esta representado na forma de regras.
4.5.1 Representação do conhecimento do RBC
A representação do conhecimento para o RBC, está disposta em um conjunto de casos, onde
cada caso representa um modelo de automóvel. Como mencionado no capítulo 3, cada caso é
composto basicamente de problema e solução. Para o problema de escolha de automóvel, o que
51
compõe o problema são características específicas do modelo que atendam as necessidades do
usuário. A solução seria o modelo que atenda as características especificadas.
Desta forma, a base de casos foi elaborada de tal maneira que cada modelo esta representado
em um caso. Para cada caso da base o problema é composto por todos os atributos definidos
anteriormente na Tabela 6, com exceção do atributo que define o modelo. A solução por sua vez é
representada pelo modelo.
4.5.2 Representação do conhecimento do SE
Para que o usuário possa utilizar o sistema sem a necessidade de ter conhecimento técnico
sobre automóveis, foram criados valores subjetivos que são convertidos em valores objetivos
através de um SE, de modo que o SE transforma os valores de entrada do usuário em um caso que
será confrontado com a base de casos do RBC. Esse processo de criação dos valores subjetivos foi
realizado com o auxílio de um especialista e esta representado no SE na forma de regras.
Foram criados quatro conjuntos de regras, sendo que cada conjunto define um atributo
distinto. Os atributos definidos pelas regras são tamanho do porta-malas, potência do motor, valor
do seguro e consumo médio. A seguir apresenta-se a descrição de cada conjunto de regras.
4.5.2.1 Regras para Tamanho do Porta-malas
O valor para o atributo tamanho do porta-malas na base de casos está armazenado em litros.
Por ser considerada uma informação técnica, criou-se um conjunto de valores subjetivos para
representá-la, de modo que na interface do sistema o usuário as opções de valor pequeno, médio e
grande. Cada um desses valores subjetivos é convertido para uma faixa de valor em litros.
O entanto, há um outro atributo que exerce influencia na hora da conversão dos valores, o
tipo da carroceria. O valor em litros que representa um porta malas considerado grande para um
carro com carroceria hatch por exemplo, é diferente do valor utilizado para representar um porta
malas grande de um sedan. Desta forma, as regras para definição do tamanho do porta-malas, as
quais estão descritas no Apêndice A.1, consideram para a conversão, não só o tamanho do porta-
malas selecionado pelo usuário, mas também o tipo de carroceria.
52
4.5.2.2 Regras para Potência
A potência do motor na base de casos do RBC esta representada em cavalos. Assim como no
caso do tamanho do porta-malas, na interface do sistema o usuário pode selecionar a potência
através de um conjunto de valores subjetivos (baixa, média e alta). Cada um desses valores
subjetivos é convertido pelo SE para uma faixa de valor em cavalos. O Apêndice A.2 apresenta as
regras utilizadas para a realização da conversão.
4.5.2.3 Regras para Valor do Seguro
Na base de casos existe um coeficiente do seguro, que corresponde ao percentual do valor
do seguro em relação ao valor do automóvel. Para que o usuário não tenha que ter conhecimento
sobre esse coeficiente, foram utilizados na interface os valores baixo, médio e alto para definir o
valor do seguro. O SE recebe esse valor selecionado e converte em uma faixa de valor do
coeficiente do valor do seguro, do acordo com as regras apresentadas no Apêndice A.3.
4.5.2.4 Regras para Consumo
Na interface do sistema o consumo pode ser definido como baixo, médio ou alto, enquanto
que na base de casos o consumo é representado por um valor em kilometros por litro. Cada um dos
valores apresentados na interface do sistema representa uma faixa de valor na base de
conhecimento. Essa conversão de valores é feita pelo SE, de modo que quanto mais kilometros o
automóvel faz com um litro de combustível, menor é o seu consumo.
Assim como nas regras para definição do porta-malas, há mais um atributo a ser considerado
na hora de fazer a conversão valor do consumo. Deve ser considerada a potência, uma vez que um
valor de consumo considerado baixo para um automóvel de potencia alta, não necessariamente é o
mesmo valor de consumo considerado baixo para um automóvel de baixa potência. No Apêndice
A.4 encontra-se a descrição das regras para definição do consumo.
4.6 LEVANTAMENTO DOS REQUISITOS
Para que possa atingir de forma satisfatória os objetivos apresentados anteriormente, o
sistema proposto deverá atender um conjunto de requisitos. Estes requisitos compreendem os
seguintes itens:
53
4.6.1 Requisitos Funcionais
A seguir são apresentados os requisitos funcionais do sistema proposto:
• RF01: Auxiliar a escolha de automóveis, através da recuperação dos modelos que mais
se assemelham as características informadas pelo usuário.
• RF02: Possibilitar a inclusão de novos casos na base de casos do sistema.
• RF03: Possibilitar a atualização dos casos existentes na base.
• RF04: Possibilitar a exclusão de casos da base.
• RF05: Restringir o acesso às funcionalidades de inclusão, atualização e exclusão de
casos da base a usuários específicos.
4.6.2 Requisitos Não Funcionais
A seguir são apresentados os requisitos não funcionais do sistema proposto:
• RNF01: O sistema deverá ser desenvolvido na linguagem de programação Java.
• RNF02: O sistema deverá ser desenvolvido para o ambiente Web.
• RNF03: O tempo de resposta do sistema deverá ser inferior a 10 segundos.
• RNF04: O sistema deverá ser disponibilizado pelo servidor de aplicações Tomcat.
4.6.3 Regras de Negócio
A seguir são apresentadas as regras de negócio do sistema.
• RN01: Para realizar uma pesquisa, é necessário a seleção de pelo menos 3 atributos.
• RN02: Para efetivar a inclusão ou alteração de um caso na base, é obrigatório o
preenchimento dos atributos modelo, marca, carroceria, categoria, valor, portas.
4.7 MODELAGEM DO SISTEMA
A modelagem do sistema foi feita utilizando-se conceitos de modelagem UML. Os modelos
foram gerados através do Enterprise Architect.
54
4.7.1 Diagramas de Casos de Uso
O sistema encontra-se dividido em 3 módulos distintos, que correspondem aos itens a
seguir:
• Controle de acesso
• Pesquisa
• Administração
A seguir são apresentados os diagramas de caso de uso de cada um dos módulos, bem como
o diagrama de cada caso de uso específico.
4.7.1.1 Casos de Uso do Controle de Acesso
O sistema será acessível através de login e senha, para tal, faz-se necessário um controle de
acesso, o qual encontra-se representado na Figura 11 e encontra-se descrito no Apêndice B.
Figura 11. Diagrama de Casos de Uso do Controle de Acesso.
O sistema possui 2 níveis de acesso. O primeiro é o usuário comum, que tem acesso apenas
ao módulo de pesquisa. O segundo é o perfil de administrador, que além do módulo de pesquisa
55
também tem acesso à administração do sistema, onde é possível incluir, alterar e excluir novos
casos na base do sistema.
4.7.1.2 Casos de Uso da Pesquisa
O módulo de pesquisa permite que o usuário realize pesquisa no sistema e possa também
visualizar detalhes do resultado. A Figura 12 representa os casos de uso do módulo de pesquisa.
Figura 12. Diagrama de Casos de Uso da Pesquisa.
O módulo de pesquisa é acessível tanto usuário comum e também pelo administrador, como
mostra a Figura 12.
4.7.1.3 Caso de Uso Realizar Pesquisa
O caso de uso Realizar Pesquisa permite ao usuário pesquisar modelos de automóveis que
atendam as características informadas pelo mesmo. Este caso de uso encontra-se descrito no
Apêndice C. A Figura 13 representa o diagrama do caso de uso realizar pesquisa.
56
Figura 13. Diagrama do Caso de Uso Realizar Pesquisa.
4.7.1.4 Caso de Uso Visualizar Detalhe
O caso de uso Visualizar Detalhe permite ao usuário visualizar o detalhamento dos modelos
de automóveis retornados pela pesquisa. Este caso de uso encontra-se descrito no Apêndice D. A
Figura 14 representa o diagrama deste caso de uso.
Figura 14. Diagrama do Caso de Uso Visualizar Detalhe.
4.7.1.5 Casos de Uso da Administração
O módulo de administração permite que o usuário com perfil de administrador inclua, altere
ou exclua casos da base do sistema. A Figura 15 representa os casos de uso do módulo de
administração.
57
Figura 15. Diagrama de Casos de Uso da Administração.
O módulo de administração é acessível apenas pelo administrador do sistema , como mostra
a Figura 15.
4.7.1.6 Caso de Uso Incluir Caso na Base
O caso de uso Incluir Caso na Base permite ao usuário com perfil de administrador inserir
um novo caso na base de dados do sistema. Este caso de uso encontra-se descrito no Apêndice E. A
Figura 16 representa o diagrama deste caso de uso.
Figura 16. Diagrama do Caso de Uso Inserir Caso na Base.
58
4.7.1.7 Caso de Uso Atualizar Caso na Base
O caso de uso Atualizar Caso na Base permite ao usuário com perfil de administrador alterar
as informações de um caso existente na base de dados do sistema. Este caso de uso encontra-se
descrito no Apêndice F. A Figura 17 representa o diagrama deste caso de uso.
Figura 17. Diagrama do Caso de Uso Atualizar Caso na Base.
4.7.1.8 Caso de Uso Excluir Caso da Base
O caso de uso Excluir Caso da Base permite ao usuário com perfil de administrador realizar
e exclusão de casos da base de dados do sistema. Este caso de uso encontra-se descrito no Apêndice
G. A Figura 18 representa o diagrama deste caso de uso.
Figura 18. Diagrama do Caso de Uso Excluir Caso da Base.
4.7.2 Diagramas de Pacotes
A seguir a Figura 19 apresenta o diagrama de pacotes, onde cada pacote representa um
módulo do sistema. Neste diagrama apresenta-se os casos de uso e os usuário que acessam cada um
dos pacotes.
59
Figura 19. Diagrama de Pacotes.
4.7.3 Diagrama de Atividade
O Diagrama de atividades apresentado na Figura 20 representa a seqüência de passos
executa para a realização de uma pesquisa no sistema.
60
Figura 20. Diagrama do Caso de Uso Realizar Pesquisa.
O fluxo inicia quando o usuário acessa a tela de pesquisa. Em seguida ele seleciona os
campos desejados e clica em pesquisar. Caso o número de campos selecionados pelo usuário seja
inferior a 3, o sistema solicita que o usuário selecione ao menos 3 campos para pesquisa. Quando o
número de campos selecionados for igual ou maior do que 3, o SE irá transformar os campos
selecionados pelo usuário em um caso de entrada. Após esta atividade, o RBC irá confrontar o caso
de entrada com a base de casos, retornando os 20 casos mais similares. Por fim o sistema apresenta
a tela com o resultado da pesquisa.
4.7.4 Diagramas de Seqüência
Os diagramas apresentados a seguir, representam a seqüência de passos necessários para a
realização de uma pesquisa no sistema.
4.7.4.1 Diagrama de Seqüência da Pesquisa
O diagrama demonstrado na Figura 21, apresenta uma visão macro dos passos da pesquisa,
de forma que não exibe os passos executados pelo SE, representados apenas pela entidade JESS.
61
Também não apresenta os passos executados pelo RBC, os quais estão apenas representados pela
entidade JCOLIBRI. O detalhamento do SE e do RBC são apresentados na Figura 21 e Figura 22,
respectivamente.
Figura 21. Diagrama de Seqüência da Pesquisa.
4.7.4.2 Diagrama de Seqüência do SE (JESS)
Este diagrama apresenta os passos executados pelo SE, que como já foi mencionado
anteriormente, utiliza a shell JESS. O diagrama da Figura 22 apresenta os passos executados para a
definição do tamanho do porta-malas, sendo que os passos executados dentro do quadro em
destaque devem ser executados para os demais itens tratados pelo SE (consumo, potência e seguro).
62
Figura 22. Diagrama do Caso de Uso Realizar Pesquisa.
4.7.4.3 Diagrama de Seqüência do RBC (JCOLIBRI)
Este diagrama apresenta os passos executados pelo RBC, o qual é implementado utilizando
o framework JCOLIBRI. O diagrama da Figura 23 apresenta os passos executados para recuperação
dos casos da base relacionados com o caso de entrada.
63
Figura 23. Diagrama do Caso de Uso Realizar Pesquisa.
Fonte: GAIA (2007)
4.7.5 Prototipação de Interfaces
O sistema apresenta basicamente 5 telas, login, pesquisa, resultado da pesquisa, detalhe do
resultado, administração. A seguir apresenta-se cada uma das interfaces.
4.7.5.1 Tela de Login
Esta interface é o meio por onde o usuário fará o login no sistema. A Figura 24 apresenta o
protótipo da tela.
64
Figura 24. Tela de Login.
A interface de login apresenta o botão “Enviar” e os seguintes campos:
• Usuário: Campo do tipo String para entrada do nome de usuário.
• Senha: Campo do tipo senha para entrada da senha de acesso ao sistema.
No caso de o login ou a senha não forem validados pelo sistema, o mesmo apresentará a
mensagem “Login e/ou Senha inválidos”.
4.7.5.2 Tela de Pesquisa
Esta é a tela principal do sistema, a qual permite ao usuário realizar pesquisa através da
definição de determinados atributos, além de poder atribuir pesos diferentes para cada um desses
atributos. A Figura 25 representa um esboço da interface.
65
Figura 25. Tela de Pesquisa.
Nesta tela apresenta um conjunto de 15 atributos distintos, além da atribuição de peso para
cada atributo, além dos botões pesquisar e limpar. A Tabela 9 apresenta o detalhamento desses
campos.
66
Tabela 9. Campos da Tela de Pesquisa
Campo Tipo Valores Obrigatório Marca Combobox Chevrolet, Fiat, Ford, Volkswagen Não Peso Marca Combobox Múltiplos de 5 no intervalo de 0 a 100 Não Carroceria Combobox Hatch, Minivan, Sedan, Station Wagon Não Peso Carroceria Combobox Múltiplos de 5 no intervalo de 0 à 100 Não Categoria Combobox Popular, Médio, Luxo Não Peso Categoria Combobox Múltiplos de 5 no intervalo de 0 a 100 Não Potência Combobox Baixa, Média, Alta Não Peso Potência Combobox Múltiplos de 5 no intervalo de 0 a 100 Não Portas Combobox 2, 4 Não Peso Portas Combobox Múltiplos de 5 no intervalo de 0 a 100 Não Porta-malas Combobox Pequeno, Médio, Grande Não Peso Porta-malas Combobox Múltiplos de 5 no intervalo de 0 a 100 Não Valor Combobox Múltiplos de 5000 no intervalo de 20000
à 95000 Não
Peso Valor Combobox Múltiplos de 5 no intervalo de 0 a 100 Não Seguro Combobox Baixo, Médio, Alto Não Peso Seguro Combobox Múltiplos de 5 no intervalo de 0 a 100 Não Consumo médio Combobox Baixo, Médio, Alto Não Peso Consumo Combobox Múltiplos de 5 no intervalo de 0 a 100 Não Ar Condicionado Checkbox Sim, Não Não Peso Ar Condicionado Combobox Múltiplos de 5 no intervalo de 0 a 100 Não Direção Hidráulica Checkbox Sim, Não Não Peso Direção Hidráulica Combobox Múltiplos de 5 no intervalo de 0 a 100 Não Vidro/Trava Elétrica Checkbox Sim, Não Não Peso Vidro/Trava Combobox Múltiplos de 5 no intervalo de 0 a 100 Não Câmbio Automático Checkbox Sim, Não Não Peso Câmbio Automático Combobox Múltiplos de 5 no intervalo de 0 a 100 Não Air Bag Checkbox Sim, Não Não Peso Air Bag Combobox Múltiplos de 5 no intervalo de 0 a 100 Não ABS Checkbox Sim, Não Não Peso ABS Combobox Múltiplos de 5 no intervalo de 0 a 100 Não
Apesar de nenhum dos atributos serem de preenchimento obrigatório, para que se possa
realizar uma pesquisa, deve-se selecionar ao menos 3 atributos, como já foi anteriormente descrito
na regra de negócio RN01.
4.7.5.3 Tela de Resultado da Pesquisa
67
Esta tela apresenta o resultado da pesquisa. Nela são apresentados os 20 modelos que mais
se assemelham aos parâmetros de consulta, sempre ordenadas pelo grau de similaridade. A Figura
26 apresenta o protótipo da interface.
Figura 26. Tela Resultado da Pesquisa.
Para cada um dos 20 modelos retornados no resultado, serão apresentados além de um botão
para visualizar o detalhamento do resultado, os seguintes atributos:
• Modelo;
• Marca;
• Valor.
Essa tela é exibida após a realização de uma pesquisa, dentro da tela de pesquisa, logo após
os botões pesquisar e limpar.
4.7.5.4 Tela de Detalhe
A tela de detalhe abre na forma de pop-up, exibindo os detalhes de um modelo retornado na
pesquisa. A seguir a Figura 27 apresenta o protótipo da interface.
68
Figura 27. Tela de Detalhe.
Além dos atributos que definem um modelo, a tela de pesquisa apresenta também um botão
fechar.
4.7.5.5 Tela de Administração
Esta tela só é acessível pelo usuário que possui perfil de Administrador. Nela é possível
incluir, alterar e excluir casos da base de casos do sistema. A Figura 28 apresenta o protótipo da
interface.
69
Figura 28. Administração.
A tela de Administração é dividida em dois momentos. No primeiro momento é exibido
apenas a panel superior, contendo um combobox para seleção de um dos casos da base, além dos
botões alterar, excluir e inserir novo caso. O segundo panel da tela é exibido após uma das seguintes
ações:
• O usuário seleciona um caso e clica em alterar. O sistema exibe o panel preenchido com
os dados do caso selecionado.
• O usuário seleciona um caso e clica em excluir. O sistema exibe o panel preenchido com
os dados do caso selecionado.
• O usuário clica em inserir novo caso. O sistema exibe o panel com os campos em
branco.
70
O detalhamento dos campos da tela é apresentado na Tabela 10.
Tabela 10. Campos da Tela de Administração
Campo Tipo Valores Obrigatório Modelo Textbox 256 caracteres Sim Carroceria Combobox Hatch, Minivan, Sedan, Station Wagon Sim Categoria Combobox Popular, Médio, Luxo Sim Marca Combobox Chevrolet, Fiat, Ford, Volkswagen Sim Valor Textbox Numérico Sim Seguro Textbox Numérico Não Portas Combobox 2, 4 Sim Aceleração Textbox Numérico Não Velocidade Máxima Textbox Numérico Não Consumo médio Textbox Textbox Não Potência Textbox Numérico Não Porta-malas Textbox Numérico Não Cilindrada Textbox Numérico Não Ar Condicionado Checkbox Sim, Não Não Direção Hidráulica Checkbox Sim, Não Não Vidro/Trava Elétrica Checkbox Sim, Não Não Câmbio Automático Checkbox Sim, Não Não Air Bag Checkbox Sim, Não Não ABS Checkbox Sim, Não Não
De acordo com o que foi descrito anteriormente na regra de negócio RN02, a inclusão ou
alteração de um caso na base só será efetivada caso os campos marcados na Tabela 8 como
obrigatórios estejam preenchidos.
4.8 SOFTWARES UTILIZADOS
O sistema foi desenvolvido na linguagem de programação Java, sendo que visando facilitar
a sua disponibilização, o mesmo foi desenvolvido para o ambiente web. Para tal, além do JESS e do
JCOLIBRI mencionados anteriormente, foram utilizados os seguintes recursos:
• IDE Eclipse versão 3.2.2
• Páginas JSP (Java Server Pages)
• Framework Struts versão 1.3
• Servidor de aplicação Tomcat versão 5.5.23
• Enterprise Architect 6.5
71
Todo o código do sistema foi desenvolvido utilizando-se o Eclipse, sendo que para a camada
de apresentação utilizou-se páginas JSP com Struts. Tudo isso integrado no servidor de aplicações
Tomcat. Para a modelagem do sistema, foi utilizado o Enterprise Architect.
5 VALIDAÇÃO DO SISTEMA
A validação do sistema deu-se através de uma bateria de testes e análise dos resultados
obtidos. A seguir apresenta-se quatro exemplos dos testes realizados com seus respectivos
resultados.
5.1 Teste 1
O primeiro teste refere-se a busca por automóveis da marca GM, categoria Médio, 4 portas,
carroceria Sedan, potência média, que de acordo com a conversão realizada pelo SE equivale a 100
cavalos e porta-malas de tamanho médio, que convertido pelo SE equivale a 450 litros, conforme
mostra a Tabela 11.
Tabela 11. Caso de entrada do teste 1
Atributo Valor Peso Marca GM 0,5 Categoria Médio 1 Portas 4 1 Carroceria Sedan 1 Potência Média (100 cv) 1 Porta-malas Médio (450 l) 1
Os resultados obtidos para este teste são apresentados na Tabela 12, onde pode-se observar
que nove dos dez resultados são sedans médios de 4 portas da marca GM, apresentado apenas
diferença nos atributos porta-malas e potência. Por se tratarem de dois atributos com similaridade
por aproximação, eles influenciaram diretamente no ranking dos resultados, que foram ordenados
dos casos que possuem esses dois atributos com os valores mais próximos aos valores do caso
entrada para os casos com os valores menos próximos. Dentre os resultados obtidos, apenas um não
é da marca GM, mas acabou retornando devido a similaridade dos demais atributos.
73
Tabela 12. Resultados do teste 1
Resultados obtidos Modelo: Corsa Joy Sedan 1.8 Modelo: Corsa Maxx Sedan 1.8 Marca GM Marca GM Categoria Médio Categoria Médio Portas 4 Portas 4 Carroceria Sedan Carroceria Sedan Potência 112 Potência 112 Porta-malas 432 Porta-malas 432 Modelo: Corsa Premium Sedan 1.8 Modelo: Astra Advantage Sedan Marca GM Marca GM Categoria Médio Categoria Médio Portas 4 Portas 4 Carroceria Sedan Carroceria Sedan Potência 112 Potência 121 Porta-malas 432 Porta-malas 460 Modelo: Astra Confort Sedan Modelo: Astra Elegance Sedan Marca GM Marca GM Categoria Médio Categoria Médio Portas 4 Portas 4 Carroceria Sedan Carroceria Sedan Potência 121 Potência 121 Porta-malas 460 Porta-malas 460 Modelo: Vectra Elegance Modelo: Vectra Expression Marca GM Marca GM Categoria Médio Categoria Médio Portas 4 Portas 4 Carroceria Sedan Carroceria Sedan Potência 121 Potência 121 Porta-malas 526 Porta-malas 526 Modelo: Polo Sedan 1.6 Modelo: Prisma Joy Marca VW Marca GM Categoria Médio Categoria Médio Portas 4 Portas 4 Carroceria Sedan Carroceria Sedan Potência 101 Potência 89 Porta-malas 432 Porta-malas 439
74
5.2 Teste 2
O segundo teste é bem semelhante ao primeiro, com a diferença de que agora não esta sendo
especificada a marca do automóvel. Os demais valores continuam iguais ao do teste anterior,
conforme mostra a Tabela 13.
Tabela 13. Caso de entrada do teste 2
Atributo Valor Peso Marca - - Categoria Médio 1 Portas 4 1 Carroceria Sedan 1 Potência Média (100 cv) 1 Porta-malas Médio (450 l) 1
Essa única mudança realizada no caso de entrada, altera totalmente o resultado obtido, sendo
que nessa situação todos os casos retornados são sedans médios de 4 portas, variando a marca,
tamanho do porta-malas e potência do motor. Analisando os resultados apresentados na Tabela 14,
pode-se observar que os atributos tamanho do porta-malas e potência do motor, continuam sendo os
principais atributos responsáveis pelo ranking dos resultados. Comparando o resultado deste teste
com o resultado do teste anterior, é possível observar que no segundo teste retornaram vários
modelos que não foram apresentados no primeiro teste por levar em consideração a marca do
automóvel.
75
Tabela 14. Resultados do teste 2
Resultados obtidos Modelo: Polo Sedan 1.6 Modelo: Marea SX 1.6 16V Marca VW Marca FIAT Categoria Médio Categoria Médio Portas 4 Portas 4 Carroceria Sedan Carroceria Sedan Potência 101 Potência 106 Porta-malas 432 Porta-malas 430 Modelo: Bora 2.0 Modelo: Bora 2.0 Aut. Marca VW Marca VW Categoria Médio Categoria Médio Portas 4 Portas 4 Carroceria Sedan Carroceria Sedan Potência 116 Potência 116 Porta-malas 455 Porta-malas 455 Modelo: Fiesta Sedan 1.6 Modelo: Corsa Joy Sedan 1.8 Marca FORD Marca GM Categoria Médio Categoria Médio Portas 4 Portas 4 Carroceria Sedan Carroceria Sedan Potência 105 Potência 112 Porta-malas 478 Porta-malas 432 Modelo: Corsa Maxx Sedan 1.8 Modelo: Corsa Premium Sedan 1.8 Marca GM Marca GM Categoria Médio Categoria Médio Portas 4 Portas 4 Carroceria Sedan Carroceria Sedan Potência 112 Potência 112 Porta-malas 432 Porta-malas 432 Modelo: Astra Advantage Sedan Modelo: Astra Confort Sedan Marca GM Marca GM Categoria Médio Categoria Médio Portas 4 Portas 4 Carroceria Sedan Carroceria Sedan Potência 121 Potência 121 Porta-malas 460 Porta-malas 460
76
5.3 Teste 3
O terceiro teste é uma variação do segundo, mudando apenas a categoria, que no teste
anterior era Médio e agora passa a ser Popular, conforme mostra a Tabela 15.
Tabela 15. Caso de entrada do teste 3
Atributo Valor Peso Marca - - Categoria Popular 1 Portas 4 1 Carroceria Sedan 1 Potência Média (100 cv) 1 Porta-malas Médio (450 l) 1
Essa mudança fez com que nenhum dos casos retornados no teste anterior reaparecesse no
resultado desse teste. No teste anterior todos os casos retornados eram da categoria Médio, nesse
teste todos os resultados são da categoria Popular, como mostra a Tabela 16. Da mesma maneira
que nos testes anteriores os atributos tamanho do porta-malas e potência do motor continuam sendo
os responsáveis pelo desempate no ranking do restultado.
77
Tabela 16. Resultados do teste 3
Resultados obtidos Modelo: Prisma Joy Modelo: Prisma Maxx Marca GM Marca GM Categoria Popular Categoria Popular Portas 4 Portas 4 Carroceria Sedan Carroceria Sedan Potência 89 Potência 89 Porta-malas 439 Porta-malas 439 Modelo: Corsa Joy Sedan 1.0 Modelo: Corsa Maxx Sedan 1.0 Marca GM Marca GM Categoria Popular Categoria Popular Portas 4 Portas 4 Carroceria Sedan Carroceria Sedan Potência 77 Potência 77 Porta-malas 432 Porta-malas 432 Modelo: Corsa Premium Sedan 1.0 Modelo: Fiesta Sedan 1.0 Marca GM Marca FORD Categoria Popular Categoria Popular Portas 4 Portas 4 Carroceria Sedan Carroceria Sedan Potência 77 Potência 71 Porta-malas 432 Porta-malas 478 Modelo: Siena ELX 1.4 Modelo: Siena ELX 1.0 Marca FIAT Marca FIAT Categoria Popular Categoria Popular Portas 4 Portas 4 Carroceria Sedan Carroceria Sedan Potência 80 Potência 65 Porta-malas 500 Porta-malas 500 Modelo: Siena Fire Modelo: Classic Life Marca FIAT Marca GM Categoria Popular Categoria Popular Portas 4 Portas 4 Carroceria Sedan Carroceria Sedan Potência 65 Potência 70 Porta-malas 500 Porta-malas 390
78
5.4 Teste 4
Este teste é o que sofre mais alteração no caso de entrada em relação os testes anteriores. As
diferenças em relação ao teste anterior ficam por conta da categoria que passa a ser Luxo, a potência
que passa para Alta, valor que convertido pelo SE corresponde a 130 cavalos, por ultimo o tamanho
do porta-malas foi alterado para grande, que após passar pelo SE fica em 500 litros, conforme
apresentado na Tabela 17.
Tabela 17. Caso de entrada do teste 4
Atributo Valor Peso Marca - - Categoria Luxo 1 Portas 4 1 Carroceria Sedan 1 Potência Alta (130 cv) 1 Porta-malas Grande (500 l) 1
O resultado apresentado na Tabela 18, mostra que este teste foi o que apresentou maior
variação na resposta, onde apesar do caso de entrada ser da categoria Luxo, trouxe casos da
categoria Luxo e Médio e de carroceria Sedan e Station Wagon. Os teste mostraram que apenas
uma alteração no caso de entrada é suficiente para mudar completamente o resultado apresentado
pelo sistema.
79
Tabela 18. Resultados do teste 4
Resultados obtidos Modelo: Focus Sedan Ghia Modelo: Vectra Elite Marca FORD Marca GM Categoria Luxo Categoria Luxo Portas 4 Portas 4 Carroceria Sedan Carroceria Sedan Potência 147 Potência 146 Porta-malas 490 Porta-malas 526 Modelo: Jetta 2.5 Modelo: Fusion Marca VW Marca FORD Categoria Luxo Categoria Luxo Portas 4 Portas 4 Carroceria Sedan Carroceria Sedan Potência 150 Potência 162 Porta-malas 527 Porta-malas 530 Modelo: Marea HLX 2.4 20V Modelo: Omega Marca FIAT Marca GM Categoria Luxo Categoria Luxo Portas 4 Portas 4 Carroceria Sedan Carroceria Sedan Potência 160 Potência 258 Porta-malas 430 Porta-malas 465 Modelo: Siena HLX 1.8 Modelo: Vectra Elegance Marca FIAT Marca GM Categoria Médio Categoria Médio Portas 4 Portas 4 Carroceria Sedan Carroceria Sedan Potência 112 Potência 121 Porta-malas 500 Porta-malas 526 Modelo: Vectra Expression Modelo: Marea Week HLX 2.4 20V Marca GM Marca FIAT Categoria Médio Categoria Luxo Portas 4 Portas 4 Carroceria Sedan Carroceria Station Wagon Potência 121 Potência 160 Porta-malas 526 Porta-malas 500
80
5.5 CONCLUSÃO
De acordo com os resultados obtidos nos testes, foi possível constatar que o sistema
apresenta um funcionamento satisfatório, sempre retornando os casos mais similares com o caso de
entrada. Esta conclusão deu-se através de uma análise comparativa entre os valores dos atributos
dos casos retornados e os valores do caso de entrada. Com isso, é possível afirmar que o sistema
desenvolvido atingiu seu objetivo principal, auxiliando o usuário no processo de escolha de
automóvel através da apresentação dos dez modelos que mais se assemelham com o perfil traçado
pelo usuário.
6 CONCLUSÕES
O presente trabalho resultou em um sistema que utiliza duas técnicas distintas de sistemas
baseados no conhecimento para solucionar o problema de escolha automática de um automóvel. A
técnica de sistema especialista foi utilizada de forma conjunta com a técnica de raciocínio baseado
em casos. Para o desenvolvimento do SE, utilizou-se a shell Jess, enquanto que o RBC utiliza o
framework JColibri. Comprova-se que em algumas aplicações como o exemplo deste trabalho, estas
duas técnicas de inteligência artificial e baseadas no conhecimento não são concorrentes, mas ao
contrário, somam-se através da utilização da vantagem de cada uma delas, buscando-se um sistema
computacional híbrido mais eficiente. Onde entende-se sistema híbrido neste trabalho conforme a
definição de Osório e Vieira (1999), segundo tais autores todo o sistema que integre dois ou mais
métodos diferentes para a solução de um problema é um sistema híbrido.
De acordo com Osório e Vieira (1999), todo o sistema que integre dois ou mais métodos
diferentes para a solução de um problema é um sistema híbrido. Segundo esta afirmação, pode-se
constatar que o sistema desenvolvido caracteriza-se como sendo desta natureza, uma vez que se
utiliza de duas técnicas distintas de sistemas baseados no conhecimento para solucionar um
problema.
Durante a fase de concepção do sistema, identificou-se a necessidade de transformar valores
subjetivos em valores lógicos, a fim de evitar que o usuário tivesse conhecimento técnico sobre
automóveis para poder utilizar o sistema. Para que essas conversões pudessem ser realizadas,
observou-se que as mesmas deveriam seguir algumas regras lógicas. Conforme o estudo realizado,
observou-se que a técnica se sistemas especialistas era a que melhor se aplicava e esta situação, já
que a mesma se utiliza de um conjunto de regras encadeadas para solucionar um problema.
Quanto ao problema principal a ser resolvido pelo sistema, fazendo-se uma analogia com o
raciocínio humano, é possível notar que quando uma pessoa solicita a um vendedor um modelo de
automóvel com determinadas características, o vendedor não raciocina utilizando regras para
responder a questão. Ele resolve o problema recuperando na memória casos que possuam
características semelhantes às informadas no problema, ou seja, ele tenta recuperar na memória
modelos de automóveis que tenham aquelas características que lhe foram questionadas.
82
Esse mesmo tipo de raciocínio foi utilizado no desenvolvimento do sistema, criando-se uma
base de casos e utilizando-se o raciocínio baseado em casos para recuperar os casos mais
semelhantes ao caso de entrada. Essa técnica foi adotada por ser a maneira mais natural de
solucionar o problema e por permitir a utilização de pesos que permitem modelar o perfil do
decisor, o que muitas vezes não é considerado em abordagens convencionais de programação
matemática.
É possível extrair do presente trabalho uma proposta de trabalho futuro. Essa proposta
consiste na criação de um framework para desenvolvimento de sistemas destinados a solução de
problemas de decisão multicritério. Também é viável a inclusão de novos atributos nos casos, dando
ainda mais flexibilidade de escolha ao usuário.
REFERÊNCIAS BIBLIOGRÁFICAS
ALTY, J. L.; COOMBS, M.J. Expert systems: Concepts and examples. England: NCC Publications, 1984, 209p. ISBN 0-85012-399-2
BARRETO, Jorge Muniz. Inteligência artificial no limiar do século XXI . 2.ed. Florianópolis: Duplic, 1999, 324p. ISBN 85-900382-4-6.
CARRICO, Michael A.; GIRARD, John e.; JENNIFER, P. Jones. Building knowledge systems: Ceveloping & managing rule-based applications. New York: Intertex Publications, 1989, 335p. ISBN 0-07-023437-X
CERVO, Amado Luiz; BERVIAN, Pedro Alcino. Metodologia científica. São Paulo: Makron Books, 1996, 209p.
CHORAFAS, Dimitris N. Sistemas especialistas: Aplicações comerciais. trad. Mirian Fonseca Diniz; revisão técnica Nizam Omar – São Paulo: McGraw-Hill, 1988, 254p.
DEWHURST, F. W.; GWINNETT, E. A. Artificil intelligence and decision analysis. University of Manchester Institute of Science and Technology, 1990.
DURKIN, John. Expert Systems: Design and development. New York: Macmillan Publish Company, 1994, 800p. ISBN 0-02-330970-9
ENSSLIN, Leonardo; MONTIBELLER, Gilberto; NORONHA, Sandro Macdonald. Apoio a decisão: metodologia para estruturação de problemas e avaliação multicritéirios de alternativas. Florianópolis: Insular, 2001, 296p. ISBN 85-7474-093-4.
FANDEL, Günter; SPRONK, Jaap. Multiple criteria decision methods and applications. Germany: Springer, 1985, 402p. ISBN 3-540-15596-1.
GAIA, Group for Artificial Intelligence Applications; GAIA - Group for Artificial Intelligence Applications. Disponível em: http://gaia.fdi.ucm.es/projects/jcolibri/ Acesso em: 22 fev. 2007.
GIARRATANO, Joseph C.; RILEY Gary. Expert systems: principles and programming. 2.ed. Boston: Publishing Company, 1994, 644p. ISBN 0-534-93744-6
GONZÁLEZ, Avelino J.; DANKEL, Douglas D. The engineering of knowledge-based systems: Theory and Practice. New Jersey: Prentice-Hall Inc, 1993, 523p. ISBN 0-13-276940-9
HARMON, Paul; KING, David. Expert systems: Artificial Intelligence in Business. United States: John Wiley & Sons, 1985, 283p. ISBN 0-471-81554-3
HWANG, Ching-Lai; LIN, Ming-Jeng. Group decision making under multiple criteria: Methods and applications. Germany: Spring, 1987, 400p. ISBN 3-540-17177-0.
KELLER, Robert. Tecnologia de sistemas especialistas: desenvolviimento e aplicação. trad. Reinaldo Castello; revisão técnica Ronald Stevis Cassiolato – São Paulo: Makron books, 1991, 292p.
84
KOLODNER, Janet L.; RIESBECK, Christopher K Experience Memory and Reasoning. New Jersey: Lawrence Erlbaum, 1986, 272p. ISBN 0-89859-644-0
LEVINE, Robert I.; DIANE E.; DRANG, Barry Edelson. Inteligência artificial e sistemas especialistas: aplicações e exemplos práticos. trad. Maria Cláudia Santos Ribeiro Ratto; revisão técnica José Carlos Damski – São Paulo: McGraw-Hill, 1988, 264p.
LIEBOWITZ, Jay. Introduction to expert systems. Washington: Mitchell Publishing, 1988, 182p. ISBN 0-394-39141-1
LUGER, George F. Inteligência artificial : estruturas e estratégias para a olução de problemas complexos. trad. Paulo Engel – Porto Alegre: Bookmann, 2004, 774p. ISBN 85-363-0396-4.
MATTOS, Nelson Mendonça. An aproach to knowledge base management. Germany: Springer, 1991, 247p. ISBN 3-540-54268-X
NONAKA, Ikujiro; TAKEUCHI, Hirotaka. Criação de conhecimento na empresa. trad. Ana Bestriz Rodriguez, Priscila Martins Celeste. – Rio de Janeiro: Editora Campus, 1997, 358p. ISBN 85-352-0177-7
OLIVEIRA, Marcelo Eduardo de. Estudo e desenvolvimento de um protótipo para prescrição de atividade física utilizando raciocínio baseado em casos. Biguaçu: UNIVALI, Trabalho de conclsão de curso.Universidade do Vale do Itajai, 1997.
OSÓRIO, Fernando Santos; VIEIRA, Renata XIX Congresso da SBC – Encontro nacional de inteligência artificial . Rio de Janeiro: UNISINOS, Tutorial sobre sistemas híbridos inteligentes, 1999. Disponível em: http://www.inf.unisinos.br/~osorio/enia99/enia99.pdf Acesso em: 23 jul. 2007.
PAL, Sankar K.; SHIU, Simon C. K. Foundations of Soft Case-Based Reasoning. United States: Wiley-IEEE, 2004, 274p. ISBN 0-471-08635-5
RUSSEL, Stuart J.; NORVIG, Peter. Inteligência artificial . trad. Publicare consultoria – Rio de Janeiro: Elsevier, 2004, 1021p. ISBN 85-352-1177-2
SANDIA NATIONAL LABORATORIES; Jess, the Rule Engine for the Java Platform. Disponível em : http://herzberg.ca.sandia.gov/jess/ Acesso em: 05 fev. 2007.
SCHANK, Roger Carl; RIESBECK, Christopher K. Inside Case-Based Reasoning. New Jersey: Lawrence Erlbaum, 1989, 423p. ISBN 0-89859-767-6
SILVA, Harrysson Luiz da. Planejamento baseado em casos aplicado na resolução de não-conformidades (NC) ambientais no ciclo de vida de produtos, processos e serviços. Florianópolis: UFSC, Tese de doutorado. Programa de pós-graduação em engenharia de produção, Universidade Federal de Santa Catarina, 1997.
STEWART, Theodor J.; HONERT, ,Robin C. van den. Trends in multicriteria decision making. Germany: Springer, 1998, 447p. ISBN 3-540-64741-4.
85
TEIVE, Raimundo C. G. Planejamento da expansão da transmissão de sistemas de energia elétrica utilizando sistemas especialistas. Florianópolis: UFSC, Tese de doutorado. Programa de pós-graduação em engenharia de produção, Universidade Federal de Santa Catarina, 1997.
THIERAUF, Robert J. Decision support systems for effective playnning and control: a case study approach. New Jersey: Prentice-Hall, 1982 ISBN 0-13-198234-6
TUTHILL, G. Steven. Knowledge engineering: concepts and practices for knowledge-based systems. United States of America: Tab Books Inc, 1990, 372p. ISBN 0-8306-9297-5.
WANGENHEIM, Christiane Gresse von; WANGENHEIM, Aldo von. Raciocínio baseado em casos. Barueri, SP: Manole, 2003, 294p. ISBN 85-204-1459-1
WATERMAN, Donald A. A guide to expert systems. United States: Addison-wesley Publishing, 1986, 419p. ISBN 0-201-08313-2
GLOSSÁRIO
Air Bag Componente de segurança dos automóveis. Consiste em bolsas de ar colocadas em pontos estratégicos, que são infladas quando o automóvel sofre um grande impacto.
Carroceria É a estrutura de chapa metálica onde se aloja os passageiros, dotada de mala para bagagem, ferramentas e acessórios nos carros de passeio e utilitários.
Cilindrada Volume geométrico dos cilindros ocupado pelo conjunto de pistões. Permite saber a capacidade de esforço que o motor pode desenvolver.
Potência O trabalho realizado ou a energia transferida por unidade de tempo. Para automóveis e medida em cv (cavalos).
APÊNDICES
A REGRAS DO SISTEMA ESPECIALISTA
A.1 REGRAS PARA O TAMANHO DO PORTA-MALAS
(import br.com.cca.jess.model.*) (deftemplate PortaMalas (declare (from-class PortaMalas))) (defrule regra_1 (PortaMalas(carroceria "hatch")) (PortaMalas(portamalas "pequeno")) => (add (new Retorno 270)) ) (defrule regra_2 (PortaMalas(carroceria "hatch")) (PortaMalas(portamalas "medio")) => (add (new Retorno 320)) ) (defrule regra_3 (PortaMalas(carroceria "hatch")) (PortaMalas(portamalas "grande")) => (add (new Retorno 370)) ) (defrule regra_4 (PortaMalas(carroceria "sedan")) (PortaMalas(portamalas "pequeno")) => (add (new Retorno 400)) ) (defrule regra_5 (PortaMalas(carroceria "sedan")) (PortaMalas(portamalas "medio")) => (add (new Retorno 450)) ) (defrule regra_6 (PortaMalas(carroceria "sedan")) (PortaMalas(portamalas "grande"))
89
=> (add (new Retorno 500)) ) (defrule regra_7 (PortaMalas(carroceria "sw")) (PortaMalas(portamalas "pequeno")) => (add (new Retorno 390)) ) (defrule regra_8 (PortaMalas(carroceria "sw")) (PortaMalas(portamalas "medio")) => (add (new Retorno 440)) ) (defrule regra_9 (PortaMalas(carroceria "sw")) (PortaMalas(portamalas "grande")) => (add (new Retorno 490)) ) (defrule regra_10 (PortaMalas(carroceria "minivan")) (PortaMalas(portamalas "pequeno")) => (add (new Retorno 420)) ) (defrule regra_11 (PortaMalas(carroceria "minivan")) (PortaMalas(portamalas "medio")) => (add (new Retorno 470)) ) (defrule regra_12 (PortaMalas(carroceria "minivan")) (PortaMalas(portamalas "grande")) => (add (new Retorno 520)) )
90
A.2 REGRAS PARA POTÊNCIA
(import br.com.cca.jess.model.*) (deftemplate Potencia (declare (from-class Potencia))) (defrule regra_1 (Potencia(potencia "baixa")) => (add (new Retorno 70)) ) (defrule regra_2 (Potencia(potencia "media")) => (add (new Retorno 100)) ) (defrule regra_3 (Potencia(potencia "alta")) => (add (new Retorno 130)) )
A.3 REGRAS PARA COEFICIENTE DO SEGURO
(import br.com.cca.jess.model.*) (deftemplate Seguro (declare (from-class Seguro))) (defrule regra_1 (Seguro(seguro "baixo")) => (add (new Retorno 0.025)) ) (defrule regra_2 (Seguro(seguro "medio")) => (add (new Retorno 0.035)) ) (defrule regra_3 (Seguro(seguro "alto")) =>
91
(add (new Retorno 0.045)) )
A.4 REGRAS PARA O CONSUMO
(import br.com.cca.jess.model.*) (deftemplate Consumo (declare (from-class Consumo))) (deftemplate Retorno (declare (from-class Retorno))) (defrule regra_1 (Consumo(consumo "baixo")) (Consumo(potencia "baixa")) => (add (new Retorno 13)) ) (defrule regra_2 (Consumo(consumo "medio")) (Consumo(potencia "baixa")) => (add (new Retorno 12)) ) (defrule regra_3 (Consumo(consumo "alto")) (Consumo(potencia "baixa")) => (add (new Retorno 11)) ) (defrule regra_4 (Consumo(consumo "baixo")) (Consumo(potencia "media")) => (add (new Retorno 12)) ) (defrule regra_5 (Consumo(consumo "medio")) (Consumo(potencia "media")) => (add (new Retorno 11)) ) (defrule regra_6 (Consumo(consumo "alto"))
92
(Consumo(potencia "media")) => (add (new Retorno 10)) ) (defrule regra_7 (Consumo(consumo "baixo")) (Consumo(potencia "alta")) => (add (new Retorno 11.5)) ) (defrule regra_8 (Consumo(consumo "medio")) (Consumo(potencia "alta")) => (add (new Retorno 10.5)) ) (defrule regra_9 (Consumo(consumo "alto")) (Consumo(potencia "alta")) => (add (new Retorno 9.5)) )
93
B CASO DU USO UC01 – LOGAR NO SISTEMA
1. Resumo
Breve descrição Este Caso de Uso permite ao usuário realizar o acesso ao sistema através de login e senha.
Ator Usuário, Administrador
Pré-Condições N/A
Pós-Condições O usuário obteve acesso ao sistema.
2. Fluxo Básico – Acessar o Sistema
Passos Descrição
01 O usuário acessa o browser e entra com o endereço do sistema.
02 O sistema apresenta a tela de login.
03 O usuário informa o login.
04 O usuário informa a senha.
05 O usuário seleciona a opção enviar.
06 O sistema valida os campos preenchidos (FA 01, FA 02).
07 O sistema apresenta a tela de pesquisa.
08 O caso de uso termina.
3. Fluxos Alternativos
FA01 - Campo obrigatório não informado
Passos Descrição
01 O sistema verifica que algum dos campos obrigatórios não foi preenchido.
02 O sistema apresenta a mensagem de que é necessário preencher o campo correspondente.
03 O caso de uso continua no passo 3 do fluxo básico.
94
FA02 - Campo com valor inválido
Passos Descrição
01 O sistema verifica que o valor de algum dos campos é inválido.
02 O sistema apresenta a mensagem de que o valor do campo correspondente é inválido.
03 O caso de uso continua no passo 3 do fluxo básico.
95
C CASO DE USO UC02 – REALIZAR PESQUISA
1. Resumo
Breve descrição Permite ao usuário realizar pesquisa dos casos que mais se assemelham as características informadas pelo mesmo.
Ator Usuário
Pré-Condições O Usuário deve ter acesso ao sistema.
Pós-Condições Uma consulta foi realizada.
2. Fluxo Básico – Realizar Pesquisa
Passos Descrição
01 O usuário seleciona a opção pesquisar.
02 O sistema apresenta a tela de consulta.
03 O usuário seleciona as opções desejadas.
04 O usuário atribui pesos as opções selecionadas.
05 O usuário clica em consultar.
06 O sistema cria um caso de entrada a partir das opções informadas pelo usuário.
07 O sistema recupera os casos mais similares com o caso de entrada.
08 O sistema cria um rank com os casos mais similares.
09 O sistema apresenta os resultados ordenados pelo grau de similaridade.
10 O caso de uso termina.
96
D CASO DE USO UC03 – VISUALIZAR DETALHE
1. Resumo
Breve descrição Permite ao usuário visualizar o detalhamento de um dos modelos retornados na pesquisa.
Ator Usuário
Pré-Condições Uma pesquisa deve ter sido realizada.
Pós-Condições O detalhe do modelo foi visualizado.
2. Fluxo Básico – Visualizar Detalhe
Passos Descrição
01 O usuário seleciona a opção mais detalhes.
02 O sistema recupera da base de dados o detalhamento do modelo selecionado
03 O sistema apresenta a tela de detalhes com o detalhamento do modelo selecionado.
04 O caso de uso termina.
97
E CASO DE USO UC04 – INSERIR CASO NA BASE
1. Resumo
Breve descrição Permite ao Administrador inserir um novo caso na base de casos do sistema.
Ator Administrador
Pré-Condições O Administrador deve estar logado no sistema
Pós-Condições Um novo caso foi inserido na base de casos do sistema
2. Fluxo Básico – Incluir Caso na Base
Passos Descrição
01 O usuário seleciona a opção incluir caso.
02 O sistema apresenta a tela de inclusão de casos.
03 O usuário preenche o cadastro do novo caso.
04 O usuário clica em inserir.
05 O sistema valida os campos preenchidos (FA 01, FA 02).
06 O sistema salva o novo caso na base (FA 03).
07 O caso de uso termina.
3. Fluxos Alternativos
FA01 - Campo obrigatório não informado
Passos Descrição
01 O sistema verifica que algum dos campos obrigatórios não foi preenchido.
02 O sistema apresenta a mensagem de que é necessário preencher o campo correspondente.
03 O caso de uso continua no passo 3 do fluxo básico.
98
FA02 - Campo com valor inválido
Passos Descrição
01 O sistema verifica que o valor de algum dos campos é inválido.
02 O sistema apresenta a mensagem de que o valor do campo correspondente é inválido.
03 O caso de uso continua no passo 3 do fluxo básico.
FA03 - Caso já existente
Passos Descrição
01 O sistema verifica que já existe um caso na base com o mesmo nome.
02 O sistema apresenta a mensagem de que já existe um caso com o mesmo nome.
03 O caso de uso continua no passo 3 do fluxo básico.
99
F CASO DE USO UC05 – ATUALIZAR CASO NA BASE
1. Resumo
Breve descrição Permite ao Administrador alterar um caso existente na base de casos do sistema.
Ator Administrador
Pré-Condições O Administrador deve estar logado no sistema
Pós-Condições Um caso foi atualizado na base de casos do sistema
2. Fluxo Básico – Atualizar Caso na Base
Passos Descrição
01 O usuário seleciona a opção atualizar caso.
02 O sistema apresenta a tela de seleção de caso.
03 O usuário seleciona o caso que deseja atualizar.
04 O sistema apresenta a tela com as informações do caso selecionado.
05 O usuário altera as informações desejadas.
06 O usuário clica em atualizar.
07 O sistema valida os campos preenchidos (FA 01, FA 02).
08 O sistema salva o novo caso na base.
09 O caso de uso termina.
3. Fluxos Alternativos
FA01 - Campo obrigatório não informado
Passos Descrição
01 O sistema verifica que algum dos campos obrigatórios não foi preenchido.
100
Passos Descrição
02 O sistema apresenta a mensagem de que é necessário preencher o campo correspondente.
03 O caso de uso continua no passo 5 do fluxo básico.
FA02 - Campo com valor inválido
Passos Descrição
01 O sistema verifica que o valor de algum dos campos é inválido.
02 O sistema apresenta a mensagem de que o valor do campo correspondente é inválido.
03 O caso de uso continua no passo 5 do fluxo básico.
101
G CASO DE USO UC06 – EXCLUIR CASO DA BASE
1. Resumo
Breve descrição Permite ao Administrador excluir um caso na base de casos do sistema.
Ator Administrador
Pré-Condições O Administrador deve estar logado no sistema
Pós-Condições Um caso foi excluído da base de casos do sistema
2. Fluxo Básico – Excluir Caso da Base
Passos Descrição
01 O usuário seleciona a opção excluir caso.
02 O sistema apresenta a tela de seleção de caso.
03 O usuário seleciona o caso que deseja excluir.
04 O sistema apresenta a tela com as informações do caso selecionado.
05 O usuário clica em excluir.
06 O sistema exclui o caso da base.
07 O caso de uso termina.