relatório - engenharia de software  · web vieweste trabalho apresenta os principais conceitos e...

53
UNIVERSIDADE FEDERAL DE SÃO CARLOS CENTRO DE CIÊNCIAS EXATAS E DE TECNOLOGIA DEPARTAMENTO DE COMPUTAÇÃO INTELIGÊNCIA ARTIFICIAL E OS SISTEMAS ESPECIALISTAS AUTORES: Vandor Roberto Vilardi Rissoli José Augusto Fabri Heloisa de Arruda Camargo RT-DC 0_ _ / 99

Upload: ledan

Post on 11-Nov-2018

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Relatório - Engenharia de Software  · Web viewEste trabalho apresenta os principais conceitos e características relacionadas aos Sistemas ... Estes sistemas usam sensores de dados

UNIVERSIDADE FEDERAL DE SÃO CARLOSCENTRO DE CIÊNCIAS EXATAS E DE TECNOLOGIA

DEPARTAMENTO DE COMPUTAÇÃO

INTELIGÊNCIA ARTIFICIAL E OS

SISTEMAS ESPECIALISTAS

AUTORES: Vandor Roberto Vilardi Rissoli

José Augusto Fabri

Heloisa de Arruda Camargo

RT-DC 0_ _ / 99

São Carlos

Julho

1999

Page 2: Relatório - Engenharia de Software  · Web viewEste trabalho apresenta os principais conceitos e características relacionadas aos Sistemas ... Estes sistemas usam sensores de dados

INTELIGÊNCIA ARTIFICIAL E OS SISTEMAS ESPECIALISTAS

José Augusto Fabri

Vandor Roberto Vilardi Rissoli

Heloisa de Arruda Camargo

Universidade Federal de São Carlos

Departamento de Computação

C.P. 676 - 13565-905 - São Carlos (SP) - Brasil

e-mail: {fabri, vandor, heloisa } @ dc.ufscar.br

Resumo: Este trabalho apresenta os principais conceitos e características relacionadas

aos Sistemas Especialistas (SE) e aos processos de aquisição e representação do

conhecimento. Um breve acompanhamento histórico da evolução da Inteligência

Artificial (IA) também faz parte deste trabalho.

Palavras chaves: sistemas baseados em conhecimento, sistemas baseados em regras,

sistemas especialistas, aquisição de conhecimento, representação do conhecimento.

Page 3: Relatório - Engenharia de Software  · Web viewEste trabalho apresenta os principais conceitos e características relacionadas aos Sistemas ... Estes sistemas usam sensores de dados

SUMÁRIO

INTELIGÊNCIA ARTIFICIAL E OS SISTEMAS ESPECIALISTAS 1

INTRODUÇÃO..................................................................................................................1

INTELIGÊNCIA ARTIFICIAL.............................................................................................1

História da Inteligência Artificial.............................................................................2

Técnicas Utilizadas em Inteligência Artificial..........................................................5

Principais Áreas de Pesquisa da Inteligência Artificial...........................................6

SISTEMAS ESPECIALISTAS..............................................................................................6

Estrutura dos Sistemas Especialistas........................................................................7

Base de Conhecimento..........................................................................................9

Máquina de Inferência...........................................................................................9

Interface de Aquisição.........................................................................................10

Interface de Usuário............................................................................................10

Características Básicas dos Sistemas Especialistas...............................................11

Ênfase no Conhecimento.....................................................................................11

Engenharia do Conhecimento..........................................................................12

Aquisição do Conhecimento............................................................................13

Análise do Conhecimento................................................................................14

Representação do Conhecimento....................................................................14

Heurística.............................................................................................................19

Manipulação de Símbolos...................................................................................21

Categorias Gerais dos Sistemas Especialistas........................................................21

Diferenças entre os Sistemas Especialistas e os Sistemas Convencionais..............23

Desenvolvimento de Sistemas Especialistas............................................................25

Análise do Problema............................................................................................26

Seleção de Estratégias para os Sistemas Especialistas........................................27

Validação e Teste do Sistema Especialista..........................................................28

Disponibilização do Sistema Especialista...........................................................29

REFERÊNCIAS BIBLIOGRÁFICAS 30

Page 4: Relatório - Engenharia de Software  · Web viewEste trabalho apresenta os principais conceitos e características relacionadas aos Sistemas ... Estes sistemas usam sensores de dados

LISTA DE FIGURAS

Figura 1 - Representação dos SE em relação aos SBC.....................................................7

Figura 2 - Estrutura dos Sistemas Especialistas................................................................8

Figura 3 - Representação das subestruturas dos Sistemas Especialistas...........................8

Figura 4 - Exemplo de encadeamento direto ou para frente............................................17

Figura 5 - Exemplo de encadeamento reverso ou para trás.............................................19

Figura 6 - Representação resumida das tarefas necessárias para o desenvolvimento dos

SE............................................................................................................................26

LISTA DE TABELAS

Tabela 1 - Características básicas dos SE........................................................................11

Tabela 2 - Regras utilizadas no exemplo da Figura 4.....................................................17

Tabela 3 - Outras diferenças entre os SE e os sistemas convencionais...........................24

Tabela 4 - Comparação entre as linguagens de programação e as shells........................27

Page 5: Relatório - Engenharia de Software  · Web viewEste trabalho apresenta os principais conceitos e características relacionadas aos Sistemas ... Estes sistemas usam sensores de dados

INTELIGÊNCIA ARTIFICIAL E OS SISTEMAS ESPECIALISTAS

Introdução

A Inteligência Artificial (IA) é uma área da Ciência da Computação que tem por

objetivo estudar e desenvolver métodos, técnicas e programas que permitam ao

computador efetuar tarefas consideradas inteligentes, quando executadas por seres

humanos [30].

O termo Inteligência Artificial aparece em quase todos os campos do

conhecimento, e os sistemas de IA surgem como uma alternativa para a solução de

problemas difíceis e mal estruturados, que não puderam ser satisfatoriamente resolvidos

por meio dos métodos empregados pela computação convencional.

Os Sistemas Especialistas (SE) podem ser vistos como uma área de

conhecimento da IA [09]. Eles são sistemas de computadores capazes de representar e

“raciocinar” sobre o conhecimento de um domínio específico, procurando resolver

problemas ou aconselhar profissionais que tenham o poder de decisão [15].

Além do sucesso acadêmico e científico, os SE tem sido a solução para muitos

problemas na área comercial e industrial, justificando com isso, o seu sucesso também

no mercado de softwares, onde o surgimento de empresas especializadas no

desenvolvimento deste tipo de sistema vêm crescendo [21].

Inteligência Artificial

A evolução da IA ao longo do tempo, apresenta pelo menos o envolvimento de

três linhas de pesquisas: a linha biológica, filosófica e psicológica. A linha biológica

procura estudar e representar o funcionamento “mecânico” do cérebro [25], enquanto

que a linha filosófica encontra uma nova maneira de conceber o problema das relações

da mente com o corpo, além das novas perspectivas de estudos que reflitam sobre a

1

Page 6: Relatório - Engenharia de Software  · Web viewEste trabalho apresenta os principais conceitos e características relacionadas aos Sistemas ... Estes sistemas usam sensores de dados

natureza dos problemas da filosofia e da psicologia. A linha psicológica concentra-se

no estudo da cognição do raciocínio, permitindo a construção de programas

computacionais que simulem aspectos da percepção humana, melhorando a

compreensão do funcionamento e da natureza dos processos psicológicos envolvidos na

percepção visual, lingüística e em outras atividades mentais humanas [34]. Além

destas três áreas, inclui-se ainda, a IA que procura desenvolver projetos que capacitem

os computadores a realizar tarefas similares as executadas pelo cérebro, conferindo a

estas máquinas a capacidade de “raciocinar”, tornando-as “inteligentes”.

A IA tem o reconhecimento como uma parte da Ciência da Computação a partir

da Segunda Guerra Mundial, com a idéia de construir uma máquina pensante ou uma

criatura artificial que imitasse as habilidades humanas. Porém esta idéia é muito antiga,

onde os primeiros registros de criaturas artificiais com habilidades humanas têm uma

forma mítica ou por vezes lendária, tornando difícil uma separação nítida entre

imaginação e realidade. Apesar disto, as condições técnicas para estas realizações são

recentes, o que faz aumentar a confusão entre o mito e a realidade, e algumas vezes, a

impossibilidade de distingui-los, fazendo com que a IA possa ser considerada uma

ciência com um extenso passado, mas com uma história relativamente curta [34].

História da Inteligência Artificial

Na década de 40, a necessidade de avanços tecnológicos disponibilizava

recursos financeiros para o desenvolvimento de mecanismos bélicos, pois com a

Segunda Guerra Mundial, havia um grande investimento em dispositivos de morte em

massa. Por meio destes investimentos foram desenvolvidos os computadores. Na

linha biológica eram alcançados avanços por meio de pesquisas realizadas com

prisioneiros de guerra, onde partes do cérebro sofriam intervenções médicas no intuito

de se descobrir como ele funcionava. Surgiram então os pesquisadores interessados em

realizar a representação das células nervosas dos seres humanos em computadores,

motivando com isso, o desenvolvimento de uma formalização matemática para o

neurônio [25],[34].

2

Page 7: Relatório - Engenharia de Software  · Web viewEste trabalho apresenta os principais conceitos e características relacionadas aos Sistemas ... Estes sistemas usam sensores de dados

Na década de 50 foram estabelecidos os fundamentos da IA, que incluíam a

lógica matemática e a teoria das funções recursivas. Na linha de pesquisas

psicológicas, os pesquisadores começaram a se preocupar com o estudo do processo de

raciocínio humano (processo cognitivo), além do processo de tomada de decisão em

termos de regras e fatos condicionais. Para isso, utilizavam-se de técnicas de

modelagem por meio de regras de produção, regras estas baseadas na lógica de

predicados. Os fatos marcantes desta época foram: (i) o desenvolvimento de um

programa que provava teoremas (“Logic Theorist”) por meio das suas demonstrações;

(ii) a introdução da programação por meio de comandos de lógica de predicados que

proporcionou um grande avanço para a programação de sistemas que utilizassem

esquemas de raciocínio; (iii) o desenvolvimento da linguagem LISP (“List Processing”)

[37] que fornece um interpretador para desenvolver expressões simbólicas recursivas.

Na linha biológica o grande sucesso foi a implementação do primeiro simulador de

redes neurais artificiais e do primeiro neurocomputador [03],[25],[34].

Na década de 60 os pesquisadores procuraram simular o complexo processo de

raciocínio, na tentativa de desenvolver métodos gerais (“senso comum”), que poderiam

ser igualmente bem aplicados a diferentes problemas, em diferentes áreas. Com as

dificuldades para se desenvolver programas de propósito geral, aumentou-se a pressão

para se produzir resultados práticos, fazendo com que os pesquisadores passassem a se

concentrarem no desenvolvimento de métodos e técnicas gerais para serem usados em

problemas específicos. Muita atenção foi despendida para com a utilização de regras

heurísticas. Na linha biológica, prosseguiram os desenvolvimentos de conceitos

relativos às redes neurais artificiais, com o aprimoramento do modelo existente. Para a

linha psicológica, esta década foi a descoberta da IA, onde utopicamente os

pesquisadores acreditavam ser possível realizar tarefas humanas, tais como o

pensamento e a compreensão da linguagem natural por meio dos computadores. Porém

os objetivos almejados não estavam sendo alcançados, e as críticas atacavam a falta de

sustentação matemática dos modelos, principalmente das redes neurais [03],[25].

A década de 70 começa com a linha biológica tendo o seu período mais “negro”,

após as duras críticas do final da década de 60, como por exemplo as apresentadas em

[39]. Apesar disto, nesta mesma década (70), pesquisadores conseguiram, por outros

caminhos, chegar a algumas novas concepções sobre as redes neurais artificiais. Estas

3

Page 8: Relatório - Engenharia de Software  · Web viewEste trabalho apresenta os principais conceitos e características relacionadas aos Sistemas ... Estes sistemas usam sensores de dados

novas concepções permitiram o nascimento das redes neurais representadas na forma de

mapas cerebrais, onde o aprendizado era de toda a rede e não de um neurônio. Já na

linha psicológica, estudos mais aprofundados demonstravam que não seria possível a

representação dos estados mentais humanos de pensamento em uma máquina, ao menos

naquele estado da tecnologia. A descoberta mais importante aconteceu no final da

década, quando os pesquisadores perceberam que a capacidade de imitar

comportamento inteligente em um programa, depende muito mais do conhecimento que

ele possui, do que dos formalismos ou esquemas de inferência que ele utiliza. Com

isso, a nova estratégia enfatizava que qualquer que fosse o conhecimento a ser

analisado, era evidente que não poderia ser de “senso comum”, pois se reconhecia que

era mais fácil extrair e representar um conhecimento especializado. Mais crucial

porém, passou a ser a concepção de que o conhecimento e as regras heurísticas são

específicos para certos domínios, não sendo intercambiávies entre eles. Assim

surgiram os SE que deveriam buscar soluções para problemas restritos, ou seja,

problemas normalmente sujeitos à consideração de especialistas humanos [03],[25].

Na década de 80 ampliavam-se as técnicas e aplicações dos sistemas

especialistas que atingiram um sucesso comercial e industrial, além de surgir o interesse

de trabalho conjunto com outras áreas, tais como: interfaces inteligentes, sistemas de

apoio à decisão e o controle de robôs. O projeto envolvendo redes neurais consegue

seu reconhecimento como linha de pesquisa, recuperando o seu prestígio [25].

A década de 90 consolidou as redes neurais como parte integrante do estudo da

IA propriamente dita, tanto foram as aplicações desenvolvidas, as propostas de novos

modelos e o aperfeiçoamento dos modelos já existentes. Reconhece-se também, que os

paradigmas biológico e psicológico são complementares e necessários para os sistemas

mais evoluídos de IA, formando assim os chamados Sistemas Híbridos, que consistem

na união destas duas linhas de pesquisa para a construção de grandes sistemas que

pretendem abranger uma forma mais completa de representação do comportamento

humano [25].

No decorrer da sua história, a IA enfrentou também problemas no campo

filosófico, pois as suas realizações não deixaram de chamar a atenção dos filósofos, que

perceberam que muitos de seus conceitos e idéias teriam de ser revistos. Os progressos

4

Page 9: Relatório - Engenharia de Software  · Web viewEste trabalho apresenta os principais conceitos e características relacionadas aos Sistemas ... Estes sistemas usam sensores de dados

da IA tiveram um impacto muito grande nas concepções habituais que se tem da mente

humana, sendo este fato, imediatamente, notado por aqueles que têm preocupações

filosóficas e religiosas [34].

Recentemente o termo Inteligência Computacional tem sido utilizado para

referenciar um enfoque diferente da IA tradicionalmente simbólica, concentrando as

suas pesquisas em métodos avançados de processamento de informações. Seus

principais componentes são: redes neurais, conjuntos fuzzy e a computação

evolucionária [40].

Técnicas Utilizadas em Inteligência Artificial

A inteligência requer conhecimento, que por sua vez apresenta algumas

características de difícil tratamento. Além de ser indispensável para solução de

problemas em IA, o conhecimento também é: (i) volumoso; (ii) difícil de ser

caracterizado com precisão; (iii) está em constante mutação.

As técnicas de IA devem ser projetadas de acordo com as restrições impostas

pelos problemas de IA, mantendo um certo grau de independência entre os problemas e

as suas técnicas de resolução. Com isso, pode-se concluir que as técnicas de IA

procuram explorar o conhecimento que deve ser representado de modo que se possa:

(i) capturar as generalizações, permitindo que situações que partilhem de propriedades

importantes sejam agrupadas, economizando memória e tempo de atualização; (ii) ser

compreendido por pessoas que precisam supri-lo, embora para muitos programas a

maior parte dos dados possa ser adquirida automaticamente; (iii) ser facilmente

modificado para corrigir erros e para refletir mudanças no mundo e na sua visualização;

(iv) ser utilizado em muitas situações, mesmo quando não totalmente preciso ou

completo; (v) ser utilizado para superar seu próprio volume, ao ajudar a diminuir a

faixa de possibilidades que devem ser consideradas [29].

Principais Áreas de Pesquisa da Inteligência Artificial

5

Page 10: Relatório - Engenharia de Software  · Web viewEste trabalho apresenta os principais conceitos e características relacionadas aos Sistemas ... Estes sistemas usam sensores de dados

A IA há muito deixou de ser uma ciência de laboratório em pequena escala e

transformou-se em um sucesso tecnológico e industrial [07]. A meta principal dela é a

emulação de todo e qualquer comportamento humano que ainda não tenha sido

automatizado, tendo como sua pesquisa básica a preocupação com as áreas de

comportamento inteligente [17]. Atualmente, as principais pesquisas que estão sendo

conduzidas na área de IA são: processamento de linguagem natural, robótica, redes

neurais, algoritmos genéticos, reconhecimento de padrões, sistemas baseados em

conhecimento, onde inclui-se os SE, aperfeiçoamento de interfaces, programação

explanatória, além de uma diversidade de lógicas matemáticas, formas de representação

e aquisição do conhecimento e tratamento de incertezas [09], [17],[20],[29],[30].

Sistemas Especialistas

Os Sistemas Baseados em Conhecimento (SBC) e os SE tem sido tratados como

sinônimos, porém têm significados diferentes [35]. Os SBC compreendem um

conjunto de sistemas muito maior que os SE, apesar de serem equivocadamente

chamados de SE. Esta confusão advém do fato de que ambos são organizados da

mesma forma, ou seja, o conhecimento do problema esta armazenado separadamente

dos outros componentes dos sistemas [04]. Na verdade, os SE constituem um

subconjunto dos SBC, como pode ser visto na Figura 1, enquanto que o inverso não é

verdadeiro. As principais diferenças entre os SE e os SBC são: (i) a especialização do

conhecimento [35]; (ii) a aplicação deste conhecimento na resolução de problemas

reais de relativa complexidade [03].

Figura 1 - Representação dos SE em relação aos SBC.

A definição conceitual dos SE, assim como de seus componentes, ainda

apresentam algumas distinções entre os pesquisadores. A evolução acelerada deste tipo

6

Page 11: Relatório - Engenharia de Software  · Web viewEste trabalho apresenta os principais conceitos e características relacionadas aos Sistemas ... Estes sistemas usam sensores de dados

de sistema, com certeza, contribuiu muito para o surgimento destas variações. Em [02],

[04],[06],[09],[10],[15],[21],[23] e [24] são apresentadas algumas definições conceituais

sobre os SE, onde podem ser observadas algumas destas variações, porém todas as

definições compartilham de que os SE são sistemas computacionais destinados a

representar e usar o conhecimento de um ou mais especialistas humanos sobre um

determinado domínio. A essência de um SE pode tornar-se mais aparente por meio de

alguns atributos como: (i) o sistema possui o conhecimento específico separado dos

métodos de solução do problema; (ii) a transferência interativa de conhecimentos pode

minimizar o tempo necessário para a transferência de conhecimento do especialista para

a base de conhecimento; (iii) a estratégia de controle deve ser simples e transparente ao

usuário, permitindo que este compreenda e perceba os efeitos da adição, alteração e

remoção de itens da base de conhecimento [18].

Estrutura dos Sistemas Especialistas

Vários são os modelos que procuram representar a estrutura de um SE ([04],

[11],[15],[16],[17],[19] e [21]), porém o modelo apresentado em [31] possui uma

caracterização completa e mais simples, permitindo que ele possa ser utilizado neste

trabalho. A Figura 2 mostra a interação dos componentes da estrutura dos SE.

Figura 2 - Estrutura dos Sistemas Especialistas.

7

Page 12: Relatório - Engenharia de Software  · Web viewEste trabalho apresenta os principais conceitos e características relacionadas aos Sistemas ... Estes sistemas usam sensores de dados

A representação da Figura 2 mostra os componentes básicos para a criação de

um SE. Estes componentes são: (i) base de conhecimento; (ii) máquina de

inferência; (iii) interface de aquisição; (iv) interface de usuário. Afim de identificar

algumas características principais destes componentes, repartiu-se a estrutura dos SE em

duas subestruturas básicas, as quais estão identificadas na Figura 3.

Figura 3 - Representação das subestruturas dos Sistemas Especialistas.

A subestrutura de armazenamento possui componentes destinados ao

armazenamento do conhecimento, enquanto que a subestrutura de consulta preocupa-se

com os métodos de interação com o conhecimento, procurando resolver os problemas

apresentados.

Base de Conhecimento

A base de conhecimento (BC) é o componente responsável pelo armazenamento

do conhecimento na forma de um dos chamados esquemas de representação do

conhecimento, como por exemplo as regras, frames, redes semânticas ou a própria

lógica [31],[33]. O esquema de representação de regras, ou regras de produção, é o

8

Page 13: Relatório - Engenharia de Software  · Web viewEste trabalho apresenta os principais conceitos e características relacionadas aos Sistemas ... Estes sistemas usam sensores de dados

mais comum, utilizado na grande maioria dos SE em uso atualmente. A principal

dificuldade para formação deste componente é a identificação de qual o conhecimento

que precisa ser adquirido e como representa-lo dentro do sistema [03]. Essas atividades

são desenvolvidas durante a chamada Aquisição de Conhecimento, uma etapa crucial no

desenvolvimento de SE. Para um SE o conhecimento a ser adquirido deve corresponder

a um certo domínio, utilizando uma representação adequada para este domínio [26].

Portanto, a BC contém conhecimentos específicos sobre um domínio, sendo este

componente mantido separado do resto do sistema [01].

Máquina de Inferência

A inferência em IA refere-se a vários processos em que programas, de uma

forma similar às pessoas, procuram chegar a conclusões, ou gerar novos conhecimentos

a partir de fatos, suposições e conhecimento já estabelecido [35].

A máquina de inferência (MI), também conhecida como motor ou mecanismo de

inferência, consiste nos procedimentos gerais que permitem a manipulação de um

domínio específico de conhecimento [13]. Com a separação deste módulo do restante

do sistema, a manutenção para os procedimentos da inferência podem acontecer de

maneira mais fácil, como apresentado em [01]. Portanto, a MI é o conjunto de

procedimentos que interagem com a base de conhecimento em busca de resultados

satisfatórios. Esta busca pode ser entendida como o processo de transformar uma

situação dada (estado inicial) em uma situação desejada (estado final), usando um

conjunto de operadores. Neste sentido, o processo para resolver problemas resume-se

em encontrar a seqüência de operadores que levem do estado inicial ao estado final [29].

A MI é a responsável pela representação da forma de raciocínio de um especialista

humano. Existem várias formas de representar este tipo de raciocínio, mas o método

mais comum é o da avaliação de regras [21], usando para derivar conclusões, os

processos de encadeamento progressivo (para frente) ou regressivo (para trás) [29].

Interface de Aquisição

9

Page 14: Relatório - Engenharia de Software  · Web viewEste trabalho apresenta os principais conceitos e características relacionadas aos Sistemas ... Estes sistemas usam sensores de dados

A interface de aquisição é o componente do SE que permite que o especialista

defina e manipule as regras, de forma que sejam feitas atualizações, além da construção

inicial do sistema. Estas atualizações podem ser manutenções em regras já existentes

ou a adição de novas regras para o tratamento de novos conhecimentos do mesmo

domínio [12].

Interface de Usuário

A interface de usuário é o componente que permitirá a interação do usuário do

sistema com o próprio sistema. É por meio dela que o usuário poderá utilizar o

conhecimento armazenado na BC e obter explicações referentes as decisões e as linhas

de raciocínio que o sistema usa para alcançar uma conclusão [12],[21]. A forma de

interação, assim como a interface de comunicação com o usuário são, normalmente,

responsáveis por um alto grau de satisfação do usuário para com o sistema. Portanto, é

um componente que deve ser elaborado de forma eficiente, mas mantendo sempre a

preocupação com a compreensão do usuário [04].

Características Básicas dos Sistemas Especialistas

Os SE possuem características específicas quanto aos seus aspectos estruturais e

suas propriedades de identificação e aplicação no desenvolvimento prático e na

representação teórica. Algumas destas características estão enunciadas na Tabela 1,

porém as mais importantes serão analisadas com mais detalhes a seguir.

Ênfase no Conhecimento

O processo de construção de um SE exigia uma grande interação entre quem

está construindo o sistema e um, ou mais, especialistas humanos em alguma área

específica do conhecimento. O construtor, às vezes chamado de engenheiro do

conhecimento, procurava absorver dos especialistas os procedimentos, estratégias e

heurísticas que eles utilizavam na solução de problemas, para incorporar este

10

Page 15: Relatório - Engenharia de Software  · Web viewEste trabalho apresenta os principais conceitos e características relacionadas aos Sistemas ... Estes sistemas usam sensores de dados

conhecimento nos SE. Com o avanço da tecnologia e o aumento na utilização deste

tipo de sistemas foram desenvolvidas técnicas e métodos que permitiam uma interação

menor com os especialistas, mas com maior organização e direcionamento na busca do

conhecimento desejado [21].

Como a formação da base de conhecimento é o aspecto mais importante dos

SBC [29], estas técnicas e métodos constituíram-se de um ferramental muito importante

para a Engenharia do Conhecimento.

Tabela 1 - Características básicas dos SE.

Item Característica01 Manter o alto nível de conhecimento para ajudar na solução de problemas [07],

[11]

02 Contemplar as atividades relacionadas ao conhecimento, desde a sua aquisição

até a sua representação [03],[07],[15],[26],[35]

03 Fornecer explicações referentes as conclusões alcançadas ou as linhas de

raciocínio utilizadas para alcançar uma possível conclusão [07],[11]

04 Formar uma memória institucional, por meio da definição da proficiência de

um SE pelo corpo de conhecimento deste sistema [07],[11]

05 Ser Flexível, pois a separação da BC dos métodos de inferência, facilitam a

atualização, visualização e compreensão do conhecimento, além da codificação

dos métodos que não possuem o conhecimento implícito nos códigos [01],[07]

06 Utilizar regras heurísticas [11]

07 Interagir com os usuários humanos utilizando linguagem natural [11]

08 Manipular e raciocinar sobre as descrições simbólicas [03],[11]

09 Funcionar com informações incompletas e dados incertos [11]

10 Possuir um desempenho comparável com um especialista humano em termos

de velocidade, confiabilidade e acuracidade de suas recomendações [03],[11]

Engenharia do Conhecimento

11

Page 16: Relatório - Engenharia de Software  · Web viewEste trabalho apresenta os principais conceitos e características relacionadas aos Sistemas ... Estes sistemas usam sensores de dados

A Engenharia do Conhecimento compreende a aquisição e representação do

conhecimento. As maiores dificuldades encontradas no desenvolvimento dos SE

concentram-se nesta área. O engenheiro do conhecimento é o indivíduo que têm como

objetivo extrair o conhecimento do especialista, ou especialistas, da literatura

correspondente, de manuais técnicos, ou de outras fontes, para montar a base de

conhecimento do domínio especificado [26].

Na Engenharia do Conhecimento existem duas abordagens diferentes: (i) uma

mais psicológica, que procura elaborar sistemas que imitem as ações do especialista,

onde a maior parte do conhecimento modelado resulta do processo mental interno do

próprio especialista; (ii) baseada em modelos, que faz uso das características de tarefas

bem conhecidas, tais como: diagnosticar, interpretar, depurar, etc., para elaborar

sistemas, onde uma parte do conhecimento modelado vêm das características destas

tarefas [07].

As principais atividades relacionadas a formação do SE são os processos de

aquisição e representação do conhecimento [04].

Aquisição do Conhecimento

A aquisição do conhecimento é apontada na literatura especializada como uma

das atividades mais críticas para o desenvolvimento de SBC [04],[21],[24],[29]. É

nesta atividade que a propensão de erros e o consumo de tempo são maiores. Ela pode

ser entendida como o processo de compreensão do raciocínio baseado no conhecimento

do especialista humano [21].

O conhecimento consiste na soma das percepções de um indivíduo sobre os

aspectos do universo do discurso em um tempo particular, onde este universo do

discurso corresponde a um domínio específico [35]. Em essência, o conhecimento

compõe-se de fatos, idéias, conceitos ou soluções obtidas por meio do estudo,

investigação, observação ou experiência [03].

12

Page 17: Relatório - Engenharia de Software  · Web viewEste trabalho apresenta os principais conceitos e características relacionadas aos Sistemas ... Estes sistemas usam sensores de dados

O conhecimento para os SBC podem ser obtidos de várias fontes, tais como:

livros, estudos de casos, relatórios, dados empíricos, processos de aprendizagem de

máquina e da própria experiência de especialistas. Uma das possíveis formas de se

agilizar a construção deste tipo de sistema é por meio da investigação e

desenvolvimento de métodos mais efetivos de aquisição de conhecimento. Atualmente,

existe a tendência da incorporação de módulos que realizam aquisição automática de

conhecimento, por meio da implementação de métodos de aprendizado de máquina

[27].

A principal dificuldade na aquisição de conhecimento está na identificação de

qual o conhecimento necessário, e em como sistematizá-lo em um processo lógico para

solução de um problema. As atividades de análise e representação do conhecimento

procuram, respectivamente, atenuar estas dificuldades. Observe, por exemplo, o caso

de um especialista humano, do qual é possível obter o conhecimento, por meio de uma

interação direta, ou mesmo utilizando outras técnicas e meios onde serão apresentados

tipos de problemas reais que o sistema especialista será projetado para resolver.

Contudo, isto não garante que os resultados desejados serão obtidos, porque os

especialistas, normalmente, têm grande dificuldade em explicar o processo de raciocínio

que empregam na solução de problemas [21]. Portanto, a construção da BC deve ser

feita de forma a mesclar os procedimentos de aprendizado de máquina com as outras

técnicas [07] e métodos de aquisição de conhecimento [26], pois a interação do

engenheiro do conhecimento em conjunto com o especialista, permitirá o refinamento

no funcionamento do SE [35].

Análise do Conhecimento

A análise do conhecimento consiste na habilidade de perceber o campo de ação

do SE a ser desenvolvido, procurando com isso, selecionar o conhecimento relevante,

extraído pelo processo de aquisição. A análise ocorre em conjunto com a aquisição,

procurando elucidar, do conhecimento adquirido, somente o conhecimento que será

utilizado pelo sistema. O conhecimento sobre o domínio do problema pode-se

constituir de fatos que expressam proposições válidas, crenças que expressam

13

Page 18: Relatório - Engenharia de Software  · Web viewEste trabalho apresenta os principais conceitos e características relacionadas aos Sistemas ... Estes sistemas usam sensores de dados

proposições plausíveis e regras heurísticas que representam valores ou julgamentos para

certas situações onde algoritmos estabelecidos nem sempre se aplicam [15],[21].

Na atividade de aquisição de conhecimento deve-se utilizar processos formais

para acompanhar o trabalho de investigação e levantamento do conhecimento, pois

existe uma grande dificuldade em extrair conhecimento dos especialistas. Em alguns

casos o especialista não sabe, realmente, explicar, ou mesmo ensinar, como consegue

chegar a determinada conclusão.

Representação do Conhecimento

A representação do conhecimento é um significativo campo entre a IA e a

ciência cognitiva, que está preocupada com o modo que as informações podem ser

armazenadas no cérebro humano e em estruturas de dados, com o propósito da

utilização da computação simbólica (manipulação de símbolos) [15].

Existem várias técnicas de representação do conhecimento que podem ser usadas

isoladamente ou em conjunto com outras na construção dos SBC [35]. Cada uma

destas técnicas dá ao sistema diferentes medidas de desempenho, e podem torná-lo mais

eficiente, mais fácil de ser entendido ou de ser atualizado [04]. As técnicas mais

utilizadas nos SE atuais são: (i) lógica de predicados; (ii) frames; (iii) redes

semânticas; (iv) regras de produção. Descrições detalhadas de todas estas técnicas

podem ser encontradas em [04], [23], [30]. Entre todas estas técnicas a mais popular é

a avaliação por regras de produção que constituem-se em um modo formal de

representar recomendações, diretrizes, estratégias, situações ou ações [07],[15],[26],

[29]. Quando o conhecimento é representado em forma de regras, os SE passam a ser

usualmente chamados de Sistemas Baseados em Regras (SBR) [04]. Por estes motivos,

a avaliação por regra será apresentada com mais detalhes no decorrer deste trabalho.

As regras de produção são, de uma maneira geral, um mecanismo de

comparação de seqüências de caracteres com padrões, onde esta comparação pode ser

ajustada para outras atitudes serem tomadas (condição-ação), buscando novas regras ou

fazendo um outro encaminhamento, até se atingir um determinado objetivo [04].

14

Page 19: Relatório - Engenharia de Software  · Web viewEste trabalho apresenta os principais conceitos e características relacionadas aos Sistemas ... Estes sistemas usam sensores de dados

As regras são expressas por meio de cláusulas SE-ENTÃO (IF-THEN),

representando que ação deve resultar, quando uma determinada situação ocorrer [14].

O acontecimento de uma situação é verificado pela parte condicional da regra (parte

SE), enquanto que a ação resultante está na parte consequente da regra (parte ENTÃO).

Por exemplo:

SE <situação ocorrer>

ENTÃO <executar a ação resultante>

Também podem ser empregados os conectivos, tais como o E ou o OU lógico.

Por exemplo:

SE <situação ocorrer>

E <outra situação ocorrer>

ENTÃO <executar a ação resultante>

A grande popularidade desta técnica de representação deve-se, basicamente, a

sua facilidade de compreensão e aplicação, além dos aspectos de modularidade e

uniformidade. A modularidade assegura que qualquer regra pode ser adicionada,

removida ou modificada independentemente das demais, enquanto que a uniformidade

assegura que todas as informações são codificadas dentro da rígida estrutura das regras,

o que permite que elas sejam facilmente compreendidas por outra pessoa ou outra parte

do sistema [04]. Em [22] é apresentada uma classificação dos tipos de regras, de

acordo com a sua origem e função.

O interpretador de regras pode ser visto como um processo recursivo que

seleciona e executa regras aplicáveis no estado corrente do sistema. Esta ação,

normalmente, resulta em uma modificação da BC, reiniciando a fase de seleção

novamente. Esta alternação entre a seleção e execução é um elemento essencial da

arquitetura dos SE, conhecida como estratégia de inferência. Este interpretador é a

origem das muitas variações encontradas em torno de diferentes sistemas. Ele é quem

vai controlar a ordem em que as regras são disparadas e resolver os conflitos se mais de

uma regra for aplicável [35].

15

Page 20: Relatório - Engenharia de Software  · Web viewEste trabalho apresenta os principais conceitos e características relacionadas aos Sistemas ... Estes sistemas usam sensores de dados

Assim como as regras são as mais populares formas de armazenamento de

conhecimento especializado, o disparo e encadeamento de regras é a técnica de

inferência mais comum de ser utilizada para encontrar uma conclusão [17]. O

encadeamento de regras pode ocorrer pela aplicação de duas estratégias diferentes,

conhecidos como: (i) encadeamento direto, também chamado de encadeamento para

frente, raciocínio antecedente, forward, data-driven, bottom-up; (ii) encadeamento

reverso, também chamado de encadeamento para trás, raciocínio consequente,

backward, goal-driven, top-down.

O encadeamento direto parte dos estados iniciais, ou seja, dos fatos, e com base

nas regras de conhecimento, deduz outras asserções, procurando chegar à solução do

problema [35]. Neste encadeamento são fornecidos dados sobre um problema ou uma

situação, onde estes dados serão comparados com a parte condicional das regras

relevantes, para determinar a aplicabilidade da regra à situação atual. Uma regra é

selecionada pelo interpretador que a aplica, alterando a memória de trabalho. A parte

consequente da regra selecionada atualiza a memória de trabalho fazendo com que a

parte condicional de outras regras sejam candidatas à nova avaliação. Este processo

continua até que não haja nenhuma regra cuja parte condicional seja satisfeita, ou então,

até que uma conclusão tenha sido atingida [04].

Observe na Figura 4 o exemplo que tem como fatos conhecidos a ocorrência de

A, C e E, onde A é o estado inicial. Procura-se uma solução satisfatória para A que

pode ser F, G ou H. Com uma cadeia de inferência que parte do estado A e consegue

chegar ao estado F, pode-se concluir que este problema têm uma solução possível

utilizando o encadeamento direto.

16

Page 21: Relatório - Engenharia de Software  · Web viewEste trabalho apresenta os principais conceitos e características relacionadas aos Sistemas ... Estes sistemas usam sensores de dados

Figura 4 - Exemplo de encadeamento direto ou para frente.

Acompanhe a execução deste processo de inferência utilizando as regras

contidas na Tabela 2. A verificação da veracidade da regra 01 altera a situação da

memória para a validade de B que em seguida valida a regra 02 e assim por diante, até

chegar a F com a regra 03. A execução da regra 04 não foi necessária, pois a solução F

é satisfatória ao problema apresentado.

Tabela 2 - Regras utilizadas no exemplo da Figura 4.

Número Regra01 SE A ENTÃO B

02 SE B e C ENTÃO D

03 SE D e E ENTÃO F

04 SE F e G ENTÃO H

O encadeamento direto tende a gerar vários estados intermediários, pois algumas

das regras que são executadas não têm relação com o problema em questão. Apesar

disto, esta estratégia é muito apropriada em situações em que o objetivo não pode ser

facilmente especificado.

Um método alternativo para o encadeamento direto é o encadeamento reverso.

A idéia desta estratégia é usar somente as regras que são relevantes ao problema em

questão [35]. A principal diferença entre as duas estratégias é que o encadeamento

17

Page 22: Relatório - Engenharia de Software  · Web viewEste trabalho apresenta os principais conceitos e características relacionadas aos Sistemas ... Estes sistemas usam sensores de dados

reverso assume que uma conclusão (estado final) é verdadeira, passando a utilizar a

parte condicional das regras para provar esta conclusão, conforme apresentado na

Figura 5. Para provar a veracidade da parte condicional de uma regra (premissa),

procura-se uma regra que tenha esta premissa como uma de suas conclusões. Se tal

regra for encontrada, repeti-se o processo, encadeando também suas premissas para trás.

Este processo termina quando não houverem mais regras para serem avaliadas [17].

O encadeamento reverso é sempre um bom candidato para a estratégia de

inferência, quando se pode supor com razoável certeza qual será a conclusão, pois pelo

menos duas razões são evidentes para isso: (i) o fato do encadeamento lógico ser tão

certo e direto quanto possível na BC; (ii) a inquisição feita pelo usuário está

concentrada no objetivo que se quer provar [17].

Figura 5 - Exemplo de encadeamento reverso ou para trás.

Muitos sistemas têm utilizado a combinação das duas estratégias, o que têm sido

chamado de encadeamento sideways. Este encadeamento associa um valor para cada

item de evidência. O valor desta regra no processo de inferência indaga primeiro às

questões com os valores mais altos. Alguns sistemas também podem utilizar uma das

formas de encadeamento e depois a outra, como o MYCIN [29], que consiste de um

sistema que diagnostica doenças infecciosas usando o encadeamento reverso para

descobrir que organismos estão presentes, e depois se utiliza do encadeamento direto

para encontrar o regime de tratamento [04].

18

Page 23: Relatório - Engenharia de Software  · Web viewEste trabalho apresenta os principais conceitos e características relacionadas aos Sistemas ... Estes sistemas usam sensores de dados

Os fatos e conclusões dos SE não são sempre do tipo verdadeiro ou falso.

Algumas vezes existe uma incerteza associada à validade do fato ou a acuracidade da

regra, o que faz com que a representação do conhecimento se preocupe com a

estruturação do conhecimento incompleto ou incerto [04]. Existem várias

possibilidades para se trabalhar com estes tipos de conhecimento, tais como: o Fator de

Certeza [35], Lógica Fuzzy [05],[19],[38], Teoria de Bayes [32], entre outros.

Heurística

O desempenho do ser humano na realização das suas atividades diárias está

relacionado com o uso hábil de uma enorme quantidade de experiências do dia a dia. O

aprendizado, a partir das experiências, acontece de forma bastante inconsciente. Por

exemplo: aprende-se a falar uma língua por intermédio da comunicação com os outros,

ou aprende-se a realizar tarefas por tentativas, às vezes com sucesso, às vezes falhando.

Em muitos casos, o conhecimento adquirido por meio dessas experiências não é sólido,

mas sem dúvida está num formato de regras práticas, que são armazenadas em algum

lugar, para serem usadas quando forem relevantes a uma nova situação [17].

Essas regras práticas são chamadas de heurísticas, no linguajar de IA, e

representam o suporte principal do conhecimento que se tenta armazenar para o uso em

alguns tipos de sistemas (interpretador de linguagem natural, sistemas especialistas,

robôs, etc...) [17]. O uso da heurística consiste então, em uma técnica que procura

melhorar a eficiência de um processo de busca ao sacrificar idéias de perfeição, não

podendo garantir que a melhor resposta será a encontrada, mas quase sempre retorna

uma resposta boa. Existem algumas evidências de que as pessoas, quando resolvem

problemas, não procuram necessariamente a solução ótima. Em outras palavras, elas

buscam alguma solução que satisfaça algum conjunto de exigências, e tão logo

encontrem uma, se aquietam. Com a aplicação desta técnica, também consegue-se

afastar das explosões combinatórias, pois são empregadas regras heurísticas para

diminuir o espaço de busca, aumentando a eficiência do processo [29].

19

Page 24: Relatório - Engenharia de Software  · Web viewEste trabalho apresenta os principais conceitos e características relacionadas aos Sistemas ... Estes sistemas usam sensores de dados

A obtenção de tais heurísticas, a partir de uma pessoa, e seu armazenamento em

um computador esta vinculado ao processo de aquisição do conhecimento. As

dificuldades na realização deste processo começam a ficar evidentes, quando o

conhecimento de um ser humano inteligente é considerado, na verdade, a somatória de

toda a sua experiência de vida. Por conseguinte, para se ter uma máquina emulando de

maneira segura e completa as atividades de uma determinada pessoa, seria necessário

que ela obtivesse “toda” a experiência de vida desta pessoa [17].

Em todo caso, uma máquina emulando o raciocínio de uma pessoa é o tipo de

trabalho que se tenta realizar em alguns SBC, onde o processamento humano

inteligente, muito se baseia em informações casuais armazenadas como regras

heurísticas [17].

Manipulação de Símbolos

Os especialistas, na primeira abordagem de um problema, procuram resolve-lo

sem a utilização de um conjunto de equações, ou mesmo pela execução de cálculos

complexos. Ao invés disso, eles usam símbolos para representar os conceitos do

problema, e aplicam, normalmente, várias estratégias e heurísticas para manipular esses

conceitos [03].

Os SE também utilizam a representação e a manipulação de símbolos, onde

caracteres são relacionados a algum conceito prático, que quando combinados em uma

lógica, conseguem expressar relações entre eles ([11],[15]), tornando-se peças de

evidências na descrição ou na solução de um problema. Como consequência desta

abordagem a representação do conhecimento torna-se um dos aspectos mais importantes

dos sistemas especialistas [04].

Categorias Gerais dos Sistemas Especialistas

Os SE podem solucionar vários tipos de problemas que apresentam algumas

características diferentes quanto ao seu funcionamento. A lista apresentada a seguir,

20

Page 25: Relatório - Engenharia de Software  · Web viewEste trabalho apresenta os principais conceitos e características relacionadas aos Sistemas ... Estes sistemas usam sensores de dados

extraída de [23] e adaptada em [11], sumariza algumas categorias de problemas

enfocados nos SE.

Interpretação abrange os sistemas que trabalham com dedução a partir

de descrições de situações relativas aos dados fornecidos pelo usuário. Estes

sistemas usam sensores de dados e enfrentam grandes dificuldades, já que

eles têm que manipular dados que estão com ruídos, escassos, incompletos ou

errados. Eles necessitam de técnicas especiais para a extração de

características de linhas de dados contínuos, linhas de onda, ou figuras, e

métodos para representá-lo simbolicamente;

Diagnóstico abrange os sistemas que lidam com a dedução das causas

do mau funcionamento de um determinado sistema. Eles usam descrições de

situações, características comportamentais, ou conhecimento sobre

componentes do projeto para inferir as prováveis causas do mau

funcionamento do sistema. Estes sistemas podem interagir com o usuário

para ajudá-lo a encontrar as falhas e então sugerir ações para corrigi-las.

Predição abrange os sistemas que a partir de uma modelagem de

dados do passado e do presente permitem uma determinada previsão do

futuro. Como ele baseia sua solução na análise do comportamento dos dados

recebidos no passado, pode ter mecanismos para verificar os vários futuros

possíveis, a partir da análise do comportamento desses dados, fazendo uso de

raciocínios hipotéticos e verificando a tendência de acordo com a variação

dos dados de entrada;

Projeto abrange os sistemas que têm características parecidas com

as do planejamento, procurando fornecer mecanismos para o

desenvolvimento e refinamento de planos até chegar ao projeto desejado.

Eles poupam o tempo de busca do melhor plano de ação para a criação da

configuração desejada;

Planejamento abrange os sistemas que preparam um programa de

iniciativas a serem tomadas para se atingir um determinado objetivo. São

estabelecidas as etapas e sub-etapas. Em caso de etapas conflitantes, são

definidas as prioridades. Eles lidam com o planejamento de ações, onde

decidem todo o curso da ação antes de agir. Estes sistemas quase sempre

rejeitam uma linha de raciocínio particular ou uma porção do plano de ação,

21

Page 26: Relatório - Engenharia de Software  · Web viewEste trabalho apresenta os principais conceitos e características relacionadas aos Sistemas ... Estes sistemas usam sensores de dados

porque violam os métodos de construção do planejamento e voltam ao ponto

de partida;

Monitoramento abrange os sistemas que interpretam as observações de

sinais sobre o comportamento monitorado. Tem de verificar continuamente

um determinado comportamento em limites pré-estabelecidos, sinalizando

quando forem requeridas intervenções para o sucesso da execução. Um sinal

poderá ser interpretado de maneiras diferentes, de acordo com a situação

global percebida naquele momento, e a interpretação varia de acordo com os

fatos que o sistema percebe a cada momento;

Depuração abrange os sistemas que possuem mecanismos para

fornecerem soluções para o mau funcionamento provocado por distorções de

dados. Provê, de maneira automática, verificações nas diversas partes,

incluindo mecanismos para vir validando cada etapa necessária em um

processo qualquer;

Reparo abrange os sistemas que desenvolvem e executam planos

para administrar reparos de problemas encontrados. São poucos os sistemas

desenvolvidos nesta categoria, porque o ato de executar um conserto em

alguma coisa do mundo real é uma tarefa complexa;

Instruções abrange os sistemas que possuem um mecanismo para

verificar e corrigir o comportamento do aprendizado das pessoas.

Normalmente incorporam como subsistemas um sistema de diagnóstico e de

reparo, e tomam por base uma descrição hipotética do conhecimento do

aluno. Seu funcionamento consiste em ir interagindo com o treinando, em

alguns casos apresentando uma pequena explicação e, a partir daí, ir

sugerindo situações para serem analisadas por ele. Dependendo do

comportamento deste, vai aumentando a complexidade das situações e

encaminhando o assunto, de maneira didática, até o nível intelectual do

treinamento;

Controle abrange os sistemas que governam o comportamento geral

de outros sistemas (não apenas de computadores). São os sistemas mais

completos, pois devem interpretar os fatos de uma situação atual, verificando

os dados do passado e fazendo uma predição do futuro. Apresentam os

diagnósticos de possíveis problemas, formulando um plano ótimo para sua

22

Page 27: Relatório - Engenharia de Software  · Web viewEste trabalho apresenta os principais conceitos e características relacionadas aos Sistemas ... Estes sistemas usam sensores de dados

correção. Este plano de correção é executado e monitorado para que o

objetivo planejado seja alcançado.

Diferenças entre os Sistemas Especialistas e os Sistemas Convencionais

Os sistemas de computador, de uma maneira geral, utilizam algum tipo de

conhecimento especializado para resolver os problemas de seu domínio de aplicação,

sendo de algum modo baseados em conhecimento. A principal diferença entre os SBC

e os sistemas convencionais, encontra-se não no uso do conhecimento, mas na forma

com que ele é organizado dentro do sistema, em sua arquitetura global. Nos SBC o

modelo de resolução de problemas, no domínio de aplicação, é visto como uma entidade

separada do sistema, chamada BC. Este conhecimento não está “escondido”, de forma

implícita, no código do sistema, mas se encontra como um componente independente do

componente de controle. Este componente de controle, chamado MI, é capaz de

promover o uso do conhecimento armazenado na BC, respondendo à questões sobre o

uso deste conhecimento e determinando as conseqüências implicadas por ele. Isto

significa que o conhecimento incorporado no sistema é independente dos programas que

o sistema manipula, e que este conhecimento é facilmente acessado pelos usuários,

facilitando também a atualização do mesmo [35].

Os SE diferem dos convencionais em vários outros tópicos que podem ser

observados na Tabela 3, ou mais detalhadamente em [07], [11] e [13].

Tabela 3 - Outras diferenças entre os SE e os sistemas convencionais.

Sistemas Especialistas Sistemas ConvencionaisManipulam conhecimento Manipulam dados

Utilizam heurísticas Utilizam algoritmos

Trabalham com processos de inferência Trabalham com processos procedurais

Programação simbólica Programação determinística

Nem sempre produz uma solução correta Sempre produz uma solução correta

Trabalham com informação incompleta ou

incerta

Não trata informação incompleta ou

incerta

Pode aprender com os próprios erros [36] Precisam ser alterados no algoritmo para

23

Page 28: Relatório - Engenharia de Software  · Web viewEste trabalho apresenta os principais conceitos e características relacionadas aos Sistemas ... Estes sistemas usam sensores de dados

assimilar novas atividades

Fácil transferência do conhecimento Nem tão fácil de se transferir

conhecimento

Examinam uma extensa gama de

possibilidades ou constroem soluções

dinamicamente

Dispõem somente das soluções pré-

estabelecidas nos algoritmos

Desenvolvimento de Sistemas Especialistas

Os SE estão sendo cada vez mais pesquisados e desenvolvidos em vários países

do mundo, nas mais diversas áreas de pesquisa. Este mercado, cada vez mais, aumenta

o seu espaço com ênfase para a solução de “problemas de negócios”, criação de

sistemas de informações mais “ativos”, automação, auxílio em diagnósticos,

planejamento e escalonamento, reengenharia, além da preocupação com a transferência

da tecnologia existente nos laboratórios de universidades e centros de pesquisas para o

mercado de sistemas. Entre os fatores que podem demonstrar o crescimento deste tipo

de sistemas estão o aumento dos números de empresas de médio e pequeno porte

especializadas nesta área e a quantidade crescente de solicitações de patentes para este

tipo de sistema [07],[21].

Para se desenvolver um SE, deve-se encarar o projeto como sendo um projeto de

desenvolvimento de sistema, o que deverá ser tratado como tal, independente do seu

tipo [17]. Na Figura 6 são apresentadas as principais tarefas a serem realizadas no

desenvolvimento de um SE.

24

Page 29: Relatório - Engenharia de Software  · Web viewEste trabalho apresenta os principais conceitos e características relacionadas aos Sistemas ... Estes sistemas usam sensores de dados

Figura 6 - Representação resumida das tarefas necessárias para o desenvolvimento dos SE.

As tarefas, representadas pelos retângulos horizontais, devem ser realizadas

seguindo a estrutura hierárquica demonstrada pelas setas. Os processos Atualizar e

Reformular consistem de caminhos possíveis para a correção ou evolução do sistema a

ser desenvolvido. Os retângulos verticais representam atividades referentes ao ciclo de

vida clássico [61] para a elaboração de sistemas.

Análise do Problema

A análise do problema procura identificar as características do problema e a

viabilidade de uma solução por meio dos SE. Esta fase também compreende a

identificação dos recursos necessários e do pessoal envolvido no desenvolvimento do

sistema, inclusive o(s) especialista(s). Constatada a viabilidade do sistema como um

SE, o próximo passo é a identificação dos conceitos, objetos, eventos e relações

necessárias para descrever o processo de solução do problema, além de especificar a que

nível de detalhe o conhecimento será representado e qual estrutura de representação será

utilizada [03].

25

Page 30: Relatório - Engenharia de Software  · Web viewEste trabalho apresenta os principais conceitos e características relacionadas aos Sistemas ... Estes sistemas usam sensores de dados

Seleção de Estratégias para os Sistemas Especialistas

Os dados levantados e analisados pela fase de análise do problema precisam ser

articulados dentro de uma certa estrutura, sintetizada em um programa de computador,

onde duas estratégias principais são consideradas: (i) desenvolvimento do sistema por

meio de linguagens de programação; (ii) desenvolvimento do sistema por meio de

shell. As shells consistem de sistemas que têm a habilidade de “raciocinar”, isto é,

fazer inferências inteligentes, porém não têm nenhum conhecimento sobre o que

raciocinar, ou seja, não possuem BC, sendo considerados máquinas de inferências

generalizadas [17].

Observe na Tabela 4 as características relacionadas as duas formas de

desenvolvimento dos SE. Na primeira comparação (Nº 1) pode-se observar que as

linguagens de programação não foram desenvolvidas visando as características dos SE,

enquanto que as shells contemplaram todas as necessidades básicas destes sistemas, pois

foram desenvolvidas especificamente para eles.

Tabela 4 - Comparação entre as linguagens de programação e as shells.

Nº Linguagens de Programação Shell1 Podem ser usadas para desenvolver SE Projetados especificamente para os SE

2 Flexibilidade no desenvolvimento Somente características adotadas pela shell

3 Usa muito tempo de desenvolvimento Reduz o tempo de desenvolvimento

4 Utiliza mais recursos Utiliza menos recursos

5 Consome mais esforços dos recursos Elimina a necessidade de programação

6 Não permite concentração nas tarefas

relacionadas ao conhecimento

Permite a concentração nos processos

relacionados ao conhecimento

A segunda comparação deixa clara a principal virtude das linguagens de

programação, pois propiciam grande flexibilidade na definição dos mecanismos de

representação do conhecimento, do processo de inferência, dos mecanismos de controle,

da interface com o usuário, além de permitir a utilização diferenciada de mecanismos de

tratamento de incertezas e de explicações. Neste aspecto as shells só permitem a

26

Page 31: Relatório - Engenharia de Software  · Web viewEste trabalho apresenta os principais conceitos e características relacionadas aos Sistemas ... Estes sistemas usam sensores de dados

utilização das características incorporadas na sua concepção, não possibilitando

flexibilidades adicionais. Nas demais comparações a shell apresenta-se com vantagens

sobre as linguagens de programação, pois consome menos esforços e recursos com um

desenvolvimento mais rápido, privilegiando ainda, as atividades relacionadas aos

processos de formação do componente principal de um SE, a BC. A evolução contínua

das shells vem propiciando um aumento considerável no uso desta ferramenta para o

desenvolvimento de SE [21].

Atualmente, existem várias linguagens e shells para desenvolver SE e algumas

informações básicas, sobre elas, podem ser encontradas em [08],[21] e [29].

Validação e Teste do Sistema Especialista

A validação refere-se a avaliação do conhecimento, a capacidade de tomada de

decisão e a aplicabilidade do sistema, onde ela busca estabelecer o que o sistema

conhece, o que ele conhece com incertezas e o que ele não conhece. Em termos gerais,

a validação assegura a veracidade e a qualidade do sistema.

Esta fase pode acontecer de forma incremental, onde a evolução do sistema vai

sendo acompanhada por avaliações parciais que permitem que o próprio sistema auxilie

o seu desenvolvimento. Uma outra maneira de validar o sistema seria por meio do

desenvolvimento de um protótipo que seria submetido a avaliação. Em ambos os casos

as atividades de atualizar e reformular a implementação do sistema, demonstrada na

Figura 5, acontecem antes da implantação do sistema. O acompanhamento do

especialista nesta fase de validação é muito importante, pois ele também deve avaliar o

desempenho do sistema quanto a sua lógica de raciocínio e a sua performance. É por

meio dele que se conseguirá o refinamento do processo de raciocínio e a validação da

BC. Somente por meio da aprovação do especialista e do engenheiro do conhecimento

é que o sistema deverá ser implantado, ficando disponível para ser utilizado pelos seus

usuários que validaram a sua funcionalidade.

27

Page 32: Relatório - Engenharia de Software  · Web viewEste trabalho apresenta os principais conceitos e características relacionadas aos Sistemas ... Estes sistemas usam sensores de dados

Disponibilização do Sistema Especialista

A disponibilização consiste nos processos que permitem a implantação do

sistema no ambiente de produção, ou seja, junto ao usuário final. Neste momento o

sistema encontra-se testado, validado e pronto para utilização na atividade destinada

para ele. Os processos e cuidados necessários para realização desta tarefa são

detalhados em [13].

28

Page 33: Relatório - Engenharia de Software  · Web viewEste trabalho apresenta os principais conceitos e características relacionadas aos Sistemas ... Estes sistemas usam sensores de dados

REFERÊNCIAS BIBLIOGRÁFICAS

[01] A summary of Expert Systems,

http://wwwacn.cornell-iowa.edu/~RJOHNSON/summary.html, 1998.

[02] BARTON, A., “Experiencies in Expert Systems”, Journal of Operational

Reserarch Society, 38(10):965-974, 1987.

[03] BELHOT, R. Vairo, “Conceitos e Desenvolvimento de Sistemas Especialistas”,

USP – EESC – Engenharia da Produção, São Carlos, Brasil, 86p., 1993.

[04] BITTENCOURT, G., “Inteligência Artificial: ferramentas e teorias”,

Universidade de Santa Catarina, Florianópolis, Editora da UFSC, 362p.,

1998.

[05] BONDE, A., “Fuzzy Logic Basic”, GTE Government Systems Corp.,

Needham, http://www.austinlinks.com/fuzzy/basics.html, 1996.

[06] BROOKS, H, M., “Expert Systems and Intelligent Information Retrieval”,

Information & Processing Management, 23(4): 367-382 1987.

[07] FERNANDES, A. M. da R., “Sistema Especialista Difuso Aplicado ao Processo

de Análise Química Qualitativa de Amostras de Minerais”, Universidade

Federal de Santa Catarina, Florianópolis, Brasil, 146p., 1996.

[08] G.H.G. Corporation, “A Tool for Building Expert Systems”,

http://www.ghg.net/clips/CLIPS.html, 1998.

[09] GINSBERG, M., “Essentials of Artificial Intelligence”, San Francisco,

California, Morgan Kaufmann Publishers, Inc., 430p., 1993.

[10] GRANT, T. J., “Lessons for O. R. from A.I.: A Scheduling Case Study”,

29

Page 34: Relatório - Engenharia de Software  · Web viewEste trabalho apresenta os principais conceitos e características relacionadas aos Sistemas ... Estes sistemas usam sensores de dados

Journal of the Operational Reseach Society, 37(1):41-57, 1986.

[11] Grupo de Sistemas Inteligentes, Departamento de Informática, Universidade

Estadual de Maringá, http://www.din.uem.br/~ia/especialistas/Introdu.html,

1998.

[12] Grupo de Sistemas Inteligentes, Departamento de Informática, Universidade

Estadual de Maringá, http://www.din.uem.br/~ia/medicina/introducao.html,

1998.

[13] GUIDA, G.; TASSO, C., “Design and development of knowledge-based

systems: from life cycle to methodology”, USA, John Wiley & Sons Ltd.,

476p., 1994.

[14] HARMON, P.; SAWYER, B., “Creating expert systems for business and

industry”, USA, John Wiley & Sons, Inc., 319 p., 1990.

[15] JACKSON, P., “Introduction to expert systems”, University of Edinburgh,

Addison-Wesley Publishing Company, Inc., Great Britain, 246 p., 1986.

[16] KADEL, A., “Fuzzy expert systems”, Florida, CRC Press, Inc., 304 p., 1992.

[17] KELLER, R. “Tecnologia de Sistemas Especialistas : Desenvolvimento e

Aplicação”, Trad. Castelo, R., São Paulo, Makron Books, 292p., 1991.

[18] KIM, T. J.; WIGGINS, L. L.; WRIGHT, J. R., “Expert systems: applications to

urban planning”, USA, Springer-Verlag New York, Inc., 268p., 1990.

[19] KLIR, J.; YUAN, B., “Fuzzy Sets and Fuzzy Logic - Theory and Applications”,

Upper Saddle River, Prentice-Hall PTR, 574p., 1995.

[20] LEMOS, D., “A Utilização de Sistemas Especialistas para o Diagnóstico do Uso

do Solo e seus Limites de Ocupação”, Universidade Federal de Santa

30

Page 35: Relatório - Engenharia de Software  · Web viewEste trabalho apresenta os principais conceitos e características relacionadas aos Sistemas ... Estes sistemas usam sensores de dados

Catarina, Florianópolis, Brasil, 1996.

[21] LIEBOWITZ, J., “The handbook of applied expert systems”, USA, CRC Press

LLC, 784p., 1998.

[22] LIGEZA, A., “Expert Systems Approach to Decision Support”, European

Journal of Operational Research, 37(1):100-110, 1988.

[23] LUGER, G. F.; STUBBLEFIELD, W. A., “Artificial Inteligence: Structures and

Strategies for Complex Problem Solving”, USA, Addison Wesley Longman,

Inc., 3 edição, 824p., 1998.

[24] MAUS, R.; KEYES, J., “Handbook of Expert Systems in Manufacturing”,

McGrawHill, Inc., USA, 1991.

[25] MÜLLER, D. N., “Definições Básicas”, Universidade Luterana do Brasil,

http://www.ulbra.tche.br/~danielnm/ia/defbas/de.html, 1998.

[26] NETO, J. C, A., “Utilização de sistemas Especialistas para Diagnose Técnica

em ambiente CIMS”, São Carlos, Brasil, 81 p., 1997.

[27] NICOLETTI, M. C., “Ampliando os limites do aprendizado indutivo de

máquina através das abordagens construtiva e relacional”, Tese de

doutorado submetida ao IFQSC/USP, 1994.

[28] PENROSE, R., “A mente nova do rei: computadores, mentes e as leis da física”,

tradução de Waltensir Dutra, Rio de Janeiro, Editora Campus Ltda., 520p.,

1997.

[29] RICH, E.; KNIGHT, K., “Inteligência Artificial”, Trad. Ratto, M. C. S. R., São

Paulo, Makron Books, 722p., 1993.

[30] RUSSELL, S. J.; NORVIG, P., “Artificial Intelligence: A Modern Approach”,

31

Page 36: Relatório - Engenharia de Software  · Web viewEste trabalho apresenta os principais conceitos e características relacionadas aos Sistemas ... Estes sistemas usam sensores de dados

New Jersey, USA, Prentice-Hall, Inc., 932p., 1995.

[31] SABBATINI, R. M. E., “Uso do computador no apoio ao diagnóstico Médico”,

Revista Informédica 1(1), Núcleo de Informática Biomédica da Universidade

Estadual de Campinas, http://www.epub.org.br/informed/decisao.htm, Brasil

1993.

[32] SANTOS, F. O.; NICOLETTI, M. C., “O Uso do Modelo de Bayes em

Sistemas Baseados em Conhecimento”, Universidade Federal de São Carlos,

RT-DC 003/96, São Carlos, Brasil, 19 p., 1996.

[33] Technical University of Compiegne, “Expert Systems”, http://www.hds.univ-

compiegne.fr/~scanu/em2s/310/note85.html, 1998.

[34] TEIXEIRA, J. F., “O que é inteligência artificial”, Coleção Primeiros Passos,

Brasiliense, São Paulo, 76 p., 1990.

[35] VIDOTTI, C. C., “Tratamento de imprecisão e incerteza em Sistemas Baseados

em Regras Nebulosas”, Universidade Federal de São Carlos, Dissertação de

Mestrado, São Carlos, 106p.,1997.

[36] WATERMAN, D. A., “A Guide to Expert Systems”, Ed. Addison-Wesley

Publishing Company, Inc., USA, 419p., 1986.

[37] WINSTON, P. H., “LISP”, USA, Addison-Wesley Publishing Company, Inc.,

1984.

[38] ZADEH, L.A., “Fuzzy Set – Information and Control”, Vol. 8, pp 338-353,

University of California, USA, 1965.

[39] MINSKY, M.; PAPERT, S., “Perceptrons: an introduction to computacional

geometry”, Cambridge, MA: MIT Press, 1969.

32

Page 37: Relatório - Engenharia de Software  · Web viewEste trabalho apresenta os principais conceitos e características relacionadas aos Sistemas ... Estes sistemas usam sensores de dados

[40] PEDRYCZ, W., “Computacional Intelligence: an introduction”, USA, CRC

Press LLC, 284p., 1998.

33