RodrJoanir

48
dct-ufms Sistema Especialista para Diagnostico e Solu¸ oes de Problemas em Microcomputadores Rodrigo Eduardo dos Santos e Joanir Luna Rodrigues Projeto de Gradua¸ ao (2001) Orienta¸ ao:Prof Orientadora: Dra. Maria Bernadete Zanusso ´ Area de Concentra¸ ao: Inteligˆ encia Artificial Projeto de Gradua¸ ao Departamento de Computa¸ ao e Estat´ ıstica Centro de Ciˆ encias Exatas e Tecnologia Universidade Federal de Mato Grosso do Sul 12 de novembro de 2001

Transcript of RodrJoanir

Page 1: RodrJoanir

dct-ufms

Sistema Especialista para Diagnostico eSolucoes de Problemas em

Microcomputadores

Rodrigo Eduardo dos Santos e Joanir LunaRodrigues

Projeto de Graduacao (2001)

Orientacao:Prof Orientadora: Dra. Maria Bernadete Zanusso

Area de Concentracao: Inteligencia Artificial

Projeto de Graduacao

Departamento de Computacao e EstatısticaCentro de Ciencias Exatas e Tecnologia

Universidade Federal de Mato Grosso do Sul12 de novembro de 2001

Page 2: RodrJoanir

Conteudo

Conteudo 30.1 Resumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1 Introducao a IA 51.1 Aplicacoes de Inteligencia Artificial . . . . . . . . . . . . . . . 6

1.1.1 Sistemas Especialistas . . . . . . . . . . . . . . . . . . 71.1.2 Base de Conhecimento . . . . . . . . . . . . . . . . . . 81.1.3 Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81.1.4 SINTA . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.1.5 Processamento de Linguagem Natural . . . . . . . . . . 91.1.6 Reconhecimento de Padroes . . . . . . . . . . . . . . . 91.1.7 Robotica . . . . . . . . . . . . . . . . . . . . . . . . . . 91.1.8 Base de Dados Inteligentes . . . . . . . . . . . . . . . . 91.1.9 Jogos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

1.2 Representacao do Conhecimento em IA . . . . . . . . . . . . . 101.2.1 Logica . . . . . . . . . . . . . . . . . . . . . . . . . . . 101.2.2 Redes Semanticas . . . . . . . . . . . . . . . . . . . . . 101.2.3 Quadros . . . . . . . . . . . . . . . . . . . . . . . . . . 131.2.4 Roteiros . . . . . . . . . . . . . . . . . . . . . . . . . . 141.2.5 Regras de Producao . . . . . . . . . . . . . . . . . . . 15

2 Sistemas Especialistas 162.1 O que sao Sistemas Especialistas . . . . . . . . . . . . . . . . 162.2 Arquitetura de um Sistema Especialista . . . . . . . . . . . . . 16

2.2.1 Base de Conhecimento . . . . . . . . . . . . . . . . . . 172.2.2 Maquina de Inferencia . . . . . . . . . . . . . . . . . . 172.2.3 O Quadro Negro . . . . . . . . . . . . . . . . . . . . . 222.2.4 Sistema de Justificacao . . . . . . . . . . . . . . . . . 222.2.5 Mecanismos de Aprendizagem . . . . . . . . . . . . . 222.2.6 Sistema de Aquisicao de Conhecimento . . . . . . . . . 222.2.7 Sistema de Consulta . . . . . . . . . . . . . . . . . . . 23

2

Page 3: RodrJoanir

2.2.8 Processador de Linguagem . . . . . . . . . . . . . . . . 232.3 Sistema Especialista para Diagnostico e Solucoes de Proble-

mas em Microcomputadores . . . . . . . . . . . . . . . . . . . 232.4 Ferramenta utilizada . . . . . . . . . . . . . . . . . . . . . . . 23

2.4.1 Caracterısticas da Aplicacao . . . . . . . . . . . . . . . 242.4.2 Requisitos Basicos . . . . . . . . . . . . . . . . . . . . 242.4.3 Nıvel de Conhecimento do Usuario . . . . . . . . . . . 252.4.4 Restricoes da Aplicacao . . . . . . . . . . . . . . . . . 252.4.5 Finalidade da Aplicacao . . . . . . . . . . . . . . . . . 252.4.6 Teste e Avaliacao . . . . . . . . . . . . . . . . . . . . . 262.4.7 Revisao . . . . . . . . . . . . . . . . . . . . . . . . . . 26

3 Inteligencia Artificial Distribuıda 273.1 O que e Inteligencia Artificial Distribuıda? . . . . . . . . . . . 283.2 Breve Historico . . . . . . . . . . . . . . . . . . . . . . . . . . 283.3 Conceitos Basicos . . . . . . . . . . . . . . . . . . . . . . . . . 293.4 Principais problemas abordados em IAD . . . . . . . . . . . . 293.5 Resolucao Distribuıda de Problemas (RDP) . . . . . . . . . . 303.6 Sistemas Multiagentes . . . . . . . . . . . . . . . . . . . . . . 313.7 Relacao de Sistema Especialista com IA Distribuıda . . . . . . 323.8 Aplicacoes da IAD . . . . . . . . . . . . . . . . . . . . . . . . 32

3.8.1 Rede Cooperativa de Sistemas Especialistas . . . . . . 333.8.2 Arquitetura do Facilitador . . . . . . . . . . . . . . . . 37

4 Melhorando a Qualidade de Servicos de Busca na Internet 404.1 Inteligencia Artificial na rede . . . . . . . . . . . . . . . . . . . 414.2 A Arquitetura do Cache Plugins . . . . . . . . . . . . . . . . . 42

Cronograma 45

Referencias Bibliograficas 46

3

Page 4: RodrJoanir

0.1 Resumo

O dia a dia de quem usa o computador esta cheio de surpresas desagradaveisdecorrentes dos varios tipos de falhas que sempre acontecem nos momentosmais inoportunos. Os problemas sao os mais diversos possıveis.Alguns saograndes misterios, enquanto outros possuem solucoes simples.

Analisando os transtornos que estes problemas podem causar, decidimosapresentar um Sistema Especialista que ofereca solucoes para os diversosproblemas que afetam os microcomputadores.Portanto, principal meta desteprojeto sera apresentar um sistema especialista que ofereca solucoes para osmais diversos problemas que afetam o uso do computador.

Neste projeto tambem serao introduzidos os conceitos basicos da areade Inteligencia Artificial (IAD), as duas sub-areas da IAD - a ResolucaoDistribuıda de Problemas (RDP) e os Sistemas Multiagentes (SMA).

Outro tema que sera apresentado neste projeto, tema este que nos concen-traremos, sera como melhorar a Qualidade de Servicos de Busca na Internet.

4

Page 5: RodrJoanir

Capıtulo 1

Introducao a IA

Neste capıtulo serao apresentados os conceitos dos termos essenciais para oprojeto. A Inteligencia Artificial (IA) busca estudar as atividades mentais doser humano e prover maquinas com a capacidade de realizar algumas dessasatividades . As atividades realizadas por essas maquinas podem envolvera senso-percepcao (como tato, audicao, visao), as capacidades intelectuais(como aprendizado de conceitos e de juızos, raciocınio dedutivo e memoria),a linguagem (como as verbais e graficas) e atencao (decisao no sentido deconcentrar as atividades sobre um determinado estımulo.

A IA permite que conhecimentos possam ser compartilhados por muitaspessoas, sem que haja a necessidade de consultar a especialistas. Deste modosurgiram os Sistemas Especialistas (SE). Um SE e uma fonte pratica capaz delidar com problemas complexos e resolver questoes do mesmo modo que espe-cialistas humanos. Para tanto, sao dotados de um conhecimento condizentecom o problema. Portanto, o proposito principal deste projeto sera o desen-volvimento de um SE para Diagnostico de Problemas de Microcomputadorese e apresentacao de possıveis solucoes.

Neste projeto tambem sera estudado a relacao de um SE com a In-teligencia Artificial Distribuıda (IAD), uma area da IA que aplica metodoscooperativos para solucionar um determinado problema. A IAD se divideem duas areas: os Sistemas Multiagentes (SMA) e a Resolucao Distribuıdade Problemas (RDP). Em SMA os agentes, especialistas na atividade quedesempenham, nao trabalham mais isolados, mas de forma cooperativa ten-tam resolver um problema da melhor forma possıvel. Em RDP, sao adotadosestrategias baseadas no conceito de decomposicao para a resolucao de umproblema complexo, isto e, a tarefa, dada a sua complexidade, requer de-composicao num conjunto de tarefas mais simples.

Ainda em IAD, tem havido um crescente interesse na pesquisa e desen-volvimento de sistemas que permitem a participacao de sistemas especialistas

5

Page 6: RodrJoanir

em redes cooperativas de trabalho. Para melhor expor este domınio de estu-do, foi tratado neste projeto um estudo de caso para a concessao de creditoem banco. Tambem foi abordado um outro tema envolvendo a IAD: ”Mel-horia da Qualidade de Servicos de Busca na Internet”, que utiliza conceitosde IAD, onde sistemas especialistas sao implementados para Resolucao Dis-tribuıda de Problemas (RDP) visando obtencao de resultados mais eficientese de melhor qualidade.

O que e Inteligencia Artificial?A definicao de Inteligencia Artificial tem sido alvo de muita discussao

entre os especialistas no assunto. Na tentativa de definir com precisao o quee Inteligencia Artificial os especialistas adotam as mais diversas definicoes,tomando a compreensao do assunto mais complexa.

Mas para se ter uma ideia do assunto, algumas definicoes serao apresen-tadas e comentadas.

Elaine Rich e Kelvin Knight (1988) propuseram a seguinte definicao: ”In-teligencia Artificial e o estudo de como fazer os computadores realizaremcoisas que, no momento, as pessoas fazem melhor”. Na verdade, a con-strucao de computadores que possam realizar as tarefas difıceis melhor doque as pessoas tem tido um lento progresso, ate mesmo abaixo da expecta-tiva do que previam os especialistas nos primeiros dias da Inteligencia Arti-ficial. Alem disso, adeptos a este conceito associam a Inteligencia Artificiala construcao de robos com sentimentos. Devido a este apelo futurıstico, es-ta definicao e rejeitada. Arnold e Bowie (1986) definem IA como sendo acapacidade de adquirir e aplicar conhecimentos e artificial como sendo tudoaquilo feito pelo homem, em vez de ocorrer na natureza. Os mesmos au-tores apresentaram outra definicao de IA:”Inteligencia Artificial e a parte daCiencia da Computacao concorrente ao projeto de sistemas computacionaisque exibem inteligencia humana:aprender novas informacoes, entender lin-guagens, raciocinar e resolver problemas”. Winston (1979) afirma que ”IA eo estudo de conceitos que permitem ao computador ser inteligente”.

Apesar das diversas conceituacoes de IA, pode-se afirmar que ”In-teligencia Artificial e um conjunto de tecnicas que permitem a solucao deproblemas que exigiriam do ser humano certo grau de raciocınio e perıcia”,Rabuske (l995).

1.1 Aplicacoes de Inteligencia Artificial

Dentro da computacao, a Inteligencia Artificial e responsavel por impor-tantes aplicacoes que sempre exigiram uma dose alta de esforco. Dentreestas aplicacoes, pode-se destacar: Sistemas Especialistas, Processamento de

6

Page 7: RodrJoanir

Linguagem Natural, Reconhecimento de Padroes, Robotica, Base de DadosInteligentes e Jogos.

1.1.1 Sistemas Especialistas

Os primeiros pesquisadores de IA desejavam projetar maquinas inteligentescapazes de solucionar quaisquer problemas. Por se tratar de um desafio muitogrande, comecaram primeiramente pelo desenvolvimento de sistemas capazesde resolver problemas especıficos.

Desta forma, durante a decada de 70 surgiram varios sistemas especial-istas, dotados de boas bases de conhecimento podendo realizar tarefas queexigiam muito conhecimento especializado, algo que a maioria das pessoasnao possui.

Dos Sistemas que mais se destacaram, estao o Mycin, um programa paradiagnosticar doencas infecciosas desenvolvido no inıcio dos anos 70 pelo Dr.Edward Shortliffe, da Universidade de Stanford - EUA e o Prospector, umsistema para assessoria a geologos na exploracao mineral.

Mycin - O sistema MYCIN foi um dos primeiros Sistemas Especialista.Seu objetivo e prover conselho a respeito de diagnostico e terapia de doencasinfecciosas. Este tipo de aconselhamento pode ser muito util, pois nem sem-pre o medico responsavel e um especialista em infeccoes, principalmente emambiente hospitalar. Uma secao do sistema inicia-se com um questionario, aser respondido pelo usuario, a respeito do paciente. Informacoes como nome,idade, sexo, tempo de manifestacao dos sintomas, resultados de exames, etc.sao solicitadas. A partir dessas informacoes, e utilizando sua base de regras,o sistema e capaz de estabelecer um diagnostico e propor uma terapia ad-equada. O sistema MYCIN utiliza o encadeamento regressivo associado auma busca em profundidade. A busca realizada e completa, no sentido emque, dado um objetivo, todas as evidencias a favor e contra o objetivo saopesquisadas.

Prospector - O sistema PROSPECTOR foi desenvolvido no SRI Interna-tional (USA) com o objetivo de auxiliar geologistas envolvidos em prospeccaomineral. A principal funcao do sistema e determinar a correspondencia entredados que descrevem uma determinada situacao com modelos que descrevemclasses disjuntas de situacoes possıveis. Os modelos sao descricoes formaisdos tipos mais importantes de depositos minerais e os dados de entrada sereferem a observacoes geologicas de superfıcie. O conhecimento geologico earmazenado na forma de uma rede de inferencia : uma rede semantica ondeos nodos representam fatos sobre o domınio, e os arcos indicam como a prob-abilidade associada a um nodo influencia um outro nodo. Um fato pode serinterpretado como um indıcio da veracidade ou da falsidade de um outro.

7

Page 8: RodrJoanir

Existem ainda fatos que sao independentes, isto e, nao existem arcos entreeles. Apesar da representacao em forma de grafo e do uso de probabilidades,os arcos de inferencia da rede podem ser interpretados como um conjunto deregras. Alem dos arcos de inferencia, o sistema dispoe de arcos de contextoque indicam que um determinado fato e um contexto necessario a outro fato.

O funcionamento do sistema e dividido em duas partes. Inicialmenteo usuario fornece as informacoes disponıveis sobre o local de prospeccao.Estas informacoes sao representadas na forma de uma rede semantica que ecomparada com os modelos disponıveis. O resultado desta primeira parte ea escolha do modelo mais adequado.

Na segunda parte, o sistema utiliza o modelo escolhido e as informacoesdisponıveis, atraves de um mecanismo de encadeamento regressivo, para refi-nar a analise. Alguns fatos sao ditos ”perguntaveis”e durante o refinamentoda analise o sistema solicitara ao usuario as probabilidades associadas aosfatos deste tipo, que sejam relevantes para a situacao analisada.

1.1.2 Base de Conhecimento

Base de Conhecimento e o conjunto de informacoes que o sistema especialistautiliza para lidar com um tipo de problema. As informacoes sao represen-tadas por um conjunto de regras de producao. Estas regras sao um conjuntode condicoes no estilo ”SE...ENTAO, com a inclusao de conectivos logicosrelacionando os atributos no escopo do conhecimento. Este topico sera mel-hor explicado na secao 2.3.

1.1.3 Shell

Sao ferramentas criadas com o objetivo de transferir a base de conhecimentode um Sistema Especialista para o computador. A principal funcao da Shelle interpretar o conhecimento representado e executa-lo em uma maquina, ap-resentando assim conclusoes sobre os problemas apresentados a ele. A Shellsimplifica ao maximo o trabalho de implementacao de um Sistema Especial-ista, permitindo seu uso por qualquer pessoa.

Uma das ferramentas e o editor de regras. Ele permite gerar rapida-mente as bases de conhecimento de sistemas especialistas. Esta ferramentae tipicamente facil de usar, utilizando-se expressoes em linguagem natural eexpressoes algebricas a fim de compor a base de conhecimento. As novas re-gras de entradas sao conferidas contra as regras existentes para consistencia.Existem varias opcoes de calculos de probabilidade que podem ser executadossobre as regras. Este topico sera melhor abordado na secao 2.11.

8

Page 9: RodrJoanir

1.1.4 SINTA

O Expert SINTA e uma ferramenta Shell desenvolvida pelo Grupo SINTAdo Laboratorio de Inteligencia Artificial da Universidade Federal do Ceara. OExpert SINTA utiliza tecnicas de IA para criar Sistemas Especialistas usandocomo modelo de representacao do conhecimento regras de producao associ-adas a calculos de probabilidade. Esta Shell dispoe de um mecanismo ocultodenominado maquina de inferencia que coloca ao usuario uma sequencia demenus, sendo fornecidas respostas condizentes com o caso que hora se apre-senta. Este sistema tambem oferece a possibilidade de incluir ajudas on-linepara cada base. Para isso o Expert SINTA possibilita a inclusao de topicos deajuda para os valores possıveis de determinados atributos, fazendo com queo usuario utilize a resposta com fins praticos. Para tanto, deve-se associara base um arquivo no formato ajuda do Windows. Este topico sera melhorexplorado na secao 2.5

1.1.5 Processamento de Linguagem Natural

E uma area de IA responsavel pela utilizacao de dispositivos que fazem atraducao de uma linguagem para outra. Esta traducao abrange tanto a lin-guagem escrita quanto a falada. No entanto, ainda existem grandes desafiosa serem superados, desafios estes decorrentes de problemas quanto ao uso delinguagem figurada e da forma humana de falar.

1.1.6 Reconhecimento de Padroes

E uma area de IA muito subdividida. Pode-se citar como exemplos de apli-cacoes: reconhecimento de impressao digital, validacao de assinatura emcheque, leitura e digitalizacao de textos e etc.

1.1.7 Robotica

Esta area nao e somente responsavel pela criacao de robos capazes apenas dereproduzir tarefas e movimentos, mas tambem de robos dotados de dispos-itivos que funcionam como um cerebro, onde sao armazenados os SistemasEspecialistas, atribuindo a estes robos certo grau de conhecimento e autono-mia.

1.1.8 Base de Dados Inteligentes

Base de Dados Inteligentes e aquela capaz de fazer raciocınios e produzirresultados, propriedade esta que a maioria das bases de dados dos sistemas de

9

Page 10: RodrJoanir

informacao nao possuem. O uso de tecnicas de IA para a criacao de Base deDados Inteligentes aumentara a produtividade dos sistemas de informacoes,pois as avancadas tecnicas de IA beneficiariam a recuperacao de informacoes.

1.1.9 Jogos

Os jogos possuem um numero pequeno de normas, mas que possibilitam umagrande combinacao de acoes, tornando-os complexos. Portanto, torna-se umvasto campo para que a computacao possa realizar experimentos e testes. Osexperimentos ja produziram bons resultados, pois atualmente o computadortem se tornado um instrumento para diversao.

1.2 Representacao do Conhecimento em IA

A parte mais importante no projeto de um SE e a escolha do metodo derepresentacao de conhecimento. A linguagem associada ao metodo escolhidodeve ser suficientemente expressiva, permitindo a representacao do conheci-mento a respeito do domınio escolhido de maneira completa e eficiente. Emtese, uma representacao geral como a logica seria suficientemente expressi-va para representar qualquer tipo de conhecimento. No entanto, problemasde eficiencia, facilidade de uso e a necessidade de expressar conhecimentoincerto e incompleto levaram ao desenvolvimento de diversos tipos de for-malismos de representacao de conhecimento. A seguir, apresentam-se algunsdos formalismos de representacao de conhecimento mais utilizados.

1.2.1 Logica

A logica e a base para a maioria dos formalismos de representacao de conheci-mento, seja de forma explıcita, como nos SE’s baseados na linguagem Prolog,seja disfarcada na forma de representacoes especıficas que podem facilmenteser interpretadas como proposicoes ou predicados logicos, por exemplo, aslistas da forma:

((atributo),(objeto),(valor),(coeficiente de certeza))

1.2.2 Redes Semanticas

Rede semantica e um nome utilizado para definir um conjunto heterogeneo desistemas. Em ultima analise, a unica caracterıstica comum a todos estes sis-temas e a notacao utilizada: uma rede semantica consiste em um conjunto denodos conectados por um conjunto de arcos. Os nodos em geral representam

10

Page 11: RodrJoanir

objetos e os arcos, relacoes binarias entre esses objetos. Mas os nodos podemtambem ser utilizados para representar predicados, classes, palavras de umalinguagem, entre outras possıveis interpretacoes, dependendo do sistema deredes semanticas em questao.

A utilizacao do formalismo de nodos e arcos para a representacao deconhecimento foi proposta por Quillian. No seu artigo, Quillian propoe ummodelo computacional da memoria humana chamado memoria semantica .Este modelo, onde conceitos sao representados por nodos, e relacoes entreconceitos, por arcos, explica diversos resultados experimentais sobre o com-portamento da memoria humana, como, por exemplo, o fato de que o re-conhecimento de objetos que pertencem a classes mais numerosas toma maistempo do que o reconhecimento dos pertencentes a classes menos numerosas.Muitas caracterısticas dos sistemas de redes semanticas desenvolvidas ulteri-ormente ja estavam presentes na proposta de Quillian.

Figura 1Exemplo 1: Considere a rede semantica da figura 1, que representa

conceitos relacionados com mobiliario [Ric83]. Os arcos e-um e e-parte saobastante comuns em sistemas de redes semanticas. Este tipo de arco e uti-lizado para determinar a heranca de propriedades. Os demais arcos (dono,cor, estofamento) sao especıficos do domınio e representam propriedades deconceitos. Esses arcos sao chamados tracos.

Durante os anos setenta, o formalismo de redes semanticas foi utilizadona implementacao de diversos sistemas para a compreensao de linguagemnatural. O sistema HAM [AB73] e o sistema Active Structural Network[RN75] sao dois exemplos deste tipo de sistemas.

Dois artigos publicados em 1975 tiveram uma grande influencia napesquisa relacionada as redes semanticas: o artigo de Minsky [Min75], pro-pondo o formalismo de quadros, e o artigo de Woods [Woo75], analisando osignificado dos arcos nas redes semanticas. O artigo de Minsky introduziua nocao de nodos com estrutura interna, criando uma nova forma de repre-sentacao de conhecimento, derivada das redes semanticas, chamada quadros.O artigo de Woods chamou a atencao para a necessidade de uma semanticaformal que fundamentasse os sistemas baseados em redes semanticas. Esteartigo foi seguido de uma serie de outros, onde as redes semanticas eramassociadas ao formalismo logico. Alguns destes artigos utilizavam as redessemanticas apenas como uma notacao sintatica alternativa para formulaslogicas; outros apresentavam as redes semanticas como um metodo inde-pendente de representacao de conhecimento, utilizando o formalismo logicoapenas como ferramenta para a definicao de uma semantica para nodos earcos.

A heranca de propriedades atraves de caminhos formados por arcos e

11

Page 12: RodrJoanir

uma das caracterısticas mais importantes do metodo de representacao porredes semanticas. Esta caracterıstica permite que propriedades de um nodosejam especificadas apenas uma vez, no mais alto nıvel de uma hierarquia deconceitos, sendo herdadas por todos os conceitos derivados, implicando umaeconomia substancial de memoria. Os algoritmos de heranca utilizados emredes semanticas na forma de arvores sao bastante simples e muito eficientes,mas se herancas multiplas forem permitidas, especialmente na presenca dearcos que definam excecoes, o problema da determinacao de caminhos deheranca se torna bastante complexo. Mais grave ainda e o fato de que napresenca de heranca multipla e excecoes, a intuicao sobre o que e uma polıticade heranca coerente passa a ser discutıvel, levando diferentes sistemas a im-plementarem diferentes polıticas de heranca [THT87].

Figura 2: O problema das excecoes em redes semanticas

Alem da heranca de propriedades, um outro mecanismo de inferencia uti-lizado em redes semanticas e a correspondencia de um fragmento de rede emrelacao a uma rede dada. A especificacao da semantica deste mecanismo eainda mais complexa que a do mecanismo de heranca, por depender da escol-ha do significado dos arcos da rede. Estes arcos receberam uma variedade designificados; uma revisao das diferentes interpretacoes pode ser encontradaem [BFL83].

12

Page 13: RodrJoanir

1.2.3 Quadros

Quadro e uma estrutura de dados que pode ser usada para representar qual-quer entidade real ou imaginaria, objetos ou conceitos. O quadro e consti-tuıdo por um nome e um conjunto de atributos chamados ”Slots”, onde saocolocadas as informacoes ligadas ao objeto.

Ex: Quadro: Cadeira do RenatoSlot: numero de pernas - 4Slot: tipo de assento - anatomicoSlot: numero de bracos - nenhumSlot: cor - incolorOs quadros (do ingles, ”frames”), e sua variacao, os roteiros (do ingles,

”scripts”), foram introduzidos para permitir a representacao das estruturasinternas dos objetos, mantendo a possibilidade de representar a heranca depropriedades como as redes semanticas a faz.

As ideias fundamentais destes metodos foram introduzidas por MarvinMinsky [Min75] em seu artigo ”A framework to represent knowledge”. Asaplicacoes propostas por Minsky para o novo metodo foram analise de cenas,modelagem da percepcao visual e compreensao de linguagem natural. Noentanto, o artigo nao propoe uma metodologia de implementacao, nem umadefinicao formal do metodo. Desde 1975, diversos sistemas foram implemen-tados baseados na ideia de quadros, e diversas definicoes formais foram pro-postas. O metodo de quadros tambem esta na origem das ideias que levaramas linguagens de programacao orientadas a objetos. Os roteiros foram pro-postos por Schank e Abelson [SA75], [SA77], e consistem em sistemas dequadros especializados na descricao de sequencias de eventos.

13

Page 14: RodrJoanir

Figura 3Em geral, um quadro consiste em um conjunto de atributos que, atraves

de seus valores, descrevem as caracterısticas do objeto representado peloquadro. Os valores atribuıdos a estes atributos podem ser outros quadros,criando uma rede de dependencias entre os quadros. Os quadros sao tambemorganizados em uma hierarquia de especializacao, criando uma outra di-mensao de dependencia entre eles. Os atributos tambem apresentam pro-priedades, que dizem respeito ao tipo de valores e as restricoes de numeroque podem ser associados a cada atributo. Essas propriedades sao chamadasfacetas .

Exemplo: Quadros descrevendo um comodo e uma sala sao mostradosna figura 6. Por esta descricao, pode-se concluir que uma sala e um tipo decomodo, normalmente com quatro paredes e de formato retangular, com ummobiliario especıfico. As facetas dos atributos especificam os tipos de valoresesperados e, se for o caso, procedimentos adequados para calcular o valor do

14

Page 15: RodrJoanir

atributo.Da mesma maneira que as redes semanticas, os sistemas baseados no

metodo de quadros nao sao um conjunto homogeneo; no entanto, algumasideias fundamentais sao compartilhadas por estes sistemas. Uma dessasideias e o conceito de heranca de propriedades, o que permite a especifi-cacao de propriedades de uma classe de objetos atraves da declaracao de queesta classe e uma subclasse de outra que goza da propriedade em questao. Aheranca pode ser um mecanismo de inferencia muito eficiente em domıniosque apresentem uma taxonomia natural de conceitos, como a biologia ou apaleontologia.

Outra ideia comum aos dois tipos de sistemas baseados em quadros eo raciocınio guiado por expectativas. Um quadro contem atributos, e estesatributos podem ter valores tıpicos ou, “a priori”, os chamados valores deexcecao (do ingles, “default values”). Ao tentar instanciar um quadro paraque corresponda a uma situacao dada, o processo de raciocınio deve tentarpreencher os valores dos atributos do quadro com as informacoes disponıveisna descricao da situacao. Para o processo de raciocınio, saber o que procurarpara completar a informacao necessaria (e caso esta nao esteja disponıvel,que valores tentativos atribuir aos atributos nao preenchidos) pode ser umfator fundamental para a eficiencia do processo de reconhecimento de umasituacao complexa.

Uma terceira ideia e a ligacao procedimental . Alem dos valores por“default”, um atributo pode ser associado a um procedimento que deve serexecutado quando certas condicoes forem satisfeitas, por exemplo: ao sercriado o atributo, ao ser lido o valor do atributo, ao ser modificado o valordo atributo, ou ao ser destruıdo o valor do atributo.

1.2.4 Roteiros

Os roteiros sao estruturas de dados que descrevem sequencias estereotipadasde eventos em um contexto particular. O raciocınio com roteiro serve espe-cialmente para verificar se determinado evento ocorreu e tambem para ver-ificar a relacao entre os eventos, que pode ser obtido pelo exame da cadeiacausal. Esta cadeia causal e a sequencia com que os eventos sao descritos noroteiro.

1.2.5 Regras de Producao

Este metodo foi idealizado pelo matematico Emil Post (1943) e constitui umconjunto de regras que envolvem condicoes e acoes. A condicao e constituıdapor um padrao que determina a aplicabilidade de regra, enquanto a acao

15

Page 16: RodrJoanir

indica o que sera realizado quando a regra for aplicada. A parte ”Condicao”da regra possui varias denominacoes :lado esquerdo, antecedente ou premis-sa, enquanto a parte que expressa a acao a ser executada denomina-se ”ladodireito” ou ”consequente”. Um sistema podera ser formado por uma ou maisbases de regras que podem estar separadas segundo as exigencias do funciona-mento do problema. As Regras de Producao sao a forma de representacaomais usada em IA.

16

Page 17: RodrJoanir

Capıtulo 2

Sistemas Especialistas

Neste capıtulo sera fornecida uma visao geral sobre Sistemas Especialistas.Sera dada enfase quanto a estrutura e funcionamento de um sistema espe-cialista.

Para uma melhor compreensao do que e um Sistema Especialista, nestecapıtulo sera feita uma abordagem sobre o funcionamento e estrutura de umSistema Especialista. Tambem sera feita uma abordagem sobre o funciona-mento da Shell SINTA, ferramenta a ser utilizada para implementacao doSistema Especialista para Diagnostico e Solucao de Problemas em micro-computadores.

2.1 O que sao Sistemas Especialistas

Sistemas Especialistas sao programas de computador que procuram resolverproblemas do mesmo modo que especialistas humanos. Sao possuidores deum conhecimento especializado sobre areas restritas do conhecimento.

Para tanto, os Sistemas especialistas devem possuir um conhecimentopoderoso que facilite a busca da resposta requerida.

2.2 Arquitetura de um Sistema Especialista

Um Sistema Especialista generico possui uma arquitetura como mostra aFigura 4 abaixo:

Figura 4: Arquitetura de um Sistema Especialista

17

Page 18: RodrJoanir

2.2.1 Base de Conhecimento

Base de Conhecimento e o conjunto de informacoes que o SE utiliza para lidarcom um tipo de problema. A base de conhecimento e considerada o modulomais importante da Arquitetura de um sistema especialista, pois como disseFeigenbaum, em 1.983, ”A potencia de um sistema especialista deriva doconhecimento que ele possui e nao dos formalismos e esquemas especıficosque ele emprega”.

O conhecimento de uma Base de Conhecimento pode ser representadopelas diferentes formas de representacao do conhecimento, conforme foi vistona secao 1.2, mas as regras de producao sao as formas mais usadas. Naoe a forma de representacao ou o volume de conhecimento que distingue osistema especialista das demais bases de dados, mas a capacidade de obterinformacoes nao contidas na base de conhecimento atraves de um somatoriode fatos e de heurısticas.

Maquina de Inferencia, mecanismo de aprendizagem e quadro negro saoos principais modulos da arquitetura de um Sistema Especialista com os quaisa Base de conhecimento esta interligada.

2.2.2 Maquina de Inferencia

Maquina de Inferencia e o modulo responsavel pelo raciocınio, no caso de umsistema especialista baseado em regras de producao. Utiliza duas tecnicaspara solucao de problemas: ”forward chainning” (encadeamento para frente)e ”backward chainning” (encadeamento para tras).

Este modulo e implementado atraves de softwares que podem ser adquiri-dos ou entao ser elaborados, dependendo da especificacao do problema. Emambos os casos existem vantagens e desvantagens. Os softwares adquiridospara funcionarem como maquina de inferencia nem sempre sao eficientes,pois nao sao precisos na justificacao de resposta. Ja os softwares elaboradospermitem inserir detalhes para satisfazerem melhor as respostas, no entantoimplicam em custo e tempo adicionais.

Encadeamento para frente - Forward Chaining

Este metodo e aplicado em bases de conhecimento representado atraves dasregras de producao. Quando o usuario fornecer respostas as perguntas do Sis-tema Especialista, este metodo faz referencia as informacoes armazenadas nobanco de conhecimentos aplicando as tecnicas do encadeamento para frentepara fornecer conclusoes e resultados que o usuario precise. Um Sistema Es-pecialista que e implementado atraves do encadeamento para frente funciona

18

Page 19: RodrJoanir

atraves dos seguintes passos:

1. O sistema pede uma ou mais condicoes para o usuario;

2. Para cada condicao, o sistema pesquisa em sua base de conhecimentoas regras que contenham essa condicao na parte SE da regra;

3. Cada regra pode, por sua vez, gerar novas condicoes a partir das con-clusoes da parte ENTAO que for chamada;

4. Essas novas condicoes sao incorporadas ao sistema onde e processada.Se houver tal condicao, o sistema volta ao passo 2 e pesquisa novamenteas regras na base de conhecimento. Se nao houver nenhuma condicaonova, a sessao termina.

Exemplo usando encadeamento para frente

Eis aqui um conjunto simples de regras que podem fazer parte de umsistema especialista em mercado de acoes.

Regra 1 SE TAXA DE JUROS = BAIXA ENTAO BOLSA DE VAL-ORES = ALTA

Regra 2 SE TAXA DE JUROS = ALTA ENTAO BOLSA DE VAL-ORES = BAIXA

Regra 3 SE COTACAO DO DOLAR = BAIXA ENTAO TAXA DEJUROS = ALTA

Regra 4 SE COTACAO DO DOLAR = ALTA ENTAO TAXA DEJUROS = BAIXA

Usando essas regras pode-se montar uma empresa em consultoria emmercado de acoes. Um cliente visita a empresa e diz que a cotacao dodolar esta caindo em relacao ao valor da moeda das principais nacoesindustrializadas. Ele quer saber o que fazer no mercado de acoes. Ob-viamente, o objetivo e fazer bons negocios na Bolsa de Valores, masse o cliente tera ou nao lucros sera decidido por condicoes ainda naodeterminadas. Deve-se lembrar que os sistemas de encadeamento parafrente fazem prognosticos atraves da analise de condicoes definidas naparte SE da regra e chegam a conclusoes definidas na parte ENTAO.Nesse caso a condicao e COTACAO DO DOLAR = BAIXA

Analisando as regras, verifica-se que a regra 3 continha COTACAO DODOLAR em sua clausula SE. Ou seja:

Regra 3 SE COTACAO DO DOLAR = BAIXA ENTAO TAXA DEJUROS = ALTA

19

Page 20: RodrJoanir

A partir daı pode-se concluir que a taxa de juros ira subir. Analisando orestante das regras SE-ENTAO em relacao a COTACAO DO DOLAR,ela e encontrada novamente na regra 4. Mas a clausula SE COTACAODO DOLAR = ALTA nao coincide com a condicao conhecida da quedadas cotacoes do dolar. Portanto a regra 4 nao e aplicada. Ainda naoterminou, porque a regra 3 apresentou uma nova condicao: TAXA DEJUROS = ALTA

Agora deve-se analisar as regras para ver se essa condicao leva a outrasconclusoes, e verifica-se que a regra 1 nao e aplicada, mas que a regra2 e.

A cadeia prossegue com a introducao de uma nova condicao: BOLSADE VALORES = BAIXA

Ainda nao terminou. Deve ser verificado todas as regras em relacao aessa nova condicao. Pesquisando todas as clausulas SE, verifica-se quenenhuma delas contem BOLSA DE VALORES. Assim a sessao estaencerrada, sendo entregue ao cliente o relatorio que se segue: Quandoa cotacao do dolar esta em baixa, as taxas de juros sobem e a Bolsa deValores fica em baixa.

Encadeamento para tras - Backward Chaining

E utilizado em Sistemas Especialistas que podem chegar a um grandenumero de conclusoes, mas que nao possuem meios suficientes paraalcanca-los. Assim como no encadeamento para frente, e usado em SEbaseado em regras. Fundamenta-se na recursao, um metodo eficientede programacao.

Um SE que utiliza o encadeamento para tras funciona utilizando osseguintes passos:

(a) A maquina de inferencia encarrega-se de encontrar valores paraas condicoes ou objetivos que ja sao incluıdos pelo projetista nadefinicao da base em uma estrutura denominada lista de objetivos;

(b) Estes valores podem ser encontrados nas conclusoes, isto e, naparte ENTAO das regras. Para tanto, o Sistema Especialista(SE)pesquisa em seu banco de conhecimento as regras que contenhamesse objetivo na parte ENTAO;

(c) Quando uma regra e encontrada, para que a parte ENTAO sejaaceita, suas premissas devem ser satisfeitas, obrigando a maquina

20

Page 21: RodrJoanir

a encontrar atributos para as variaveis de condicao para se poderefetuar um julgamento das mesmas;

(d) Para poder encontrar atributos para estas variaveis, o S.E. voltaao passo 2, acionando um encadeamento recursivo;

(e) Caso o atributo procurado nao seja encontrado em nenhuma con-clusao de regra, uma pergunta e feita ao usuario.

O Expert SINTA utiliza o encadeamento para tras, mas e possıvelsimular o encadeamento para frente tambem. Para tanto, as variaveisou condicoes que o usuario deseja encontrar devem ser colocadas nalista de objetivos.

Exemplo usando encadeamento para tras

Neste exemplo tambem sera utilizada o conjunto de regras de um sis-tema especialista em mercado de acoes:

Regra 1 SE TAXA DE JUROS = BAIXA ENTAO BOLSA DE VAL-ORES = ALTA

Regra 2 SE TAXA DE JUROS = ALTA ENTAO BOLSA DE VAL-ORES = BAIXA

Regra 3 SE COTACAO DO DOLAR = BAIXA ENTAO TAXA DEJUROS = ALTA

Regra 4 SE COTACAO DO DOLAR = ALTA ENTAO TAXA DEJUROS = BAIXA

Agora sera verificado o que acontece no mercado de acoes se a bolsa devalores estiver em queda. Neste caso, a variavel objetivo sera BOLSADE VALORES.

Analisando a base em busca de regras que contenham a variavel obje-tivo BOLSA DE VALORES, ela e encontrada na regra 1.

A regra 1 e selecionada e a variavel de clausula desta regra, TAXA DEJUROS, e inserida no topo da pilha de variaveis objetivo. Verifica-seentao se esta variavel ja foi instanciada. Como ainda nao foi instanci-ada, e iniciada uma busca na base para encontrar regras que tenhama variavel TAXA DE JUROS na parte ENTAO. Ela e encontrada naregra 3.

A regra 3 e selecionada e a variavel de clausula desta regra COTACAODO DOLAR e inserida no topo da pilha de variaveis objetivo. Verifica-se entao se esta variavel ja foi instanciada. Como ainda nao instanci-ada, e iniciada uma busca na base para encontrar regras que tenham

21

Page 22: RodrJoanir

a variavel COTACAO DO DOLAR na parte ENTAO. Como ela naoesta na parte ENTAO de nenhuma regra da base, e feita uma pergun-ta: A cotacao do dolar esta em baixa ou em alta? Considerando que aresposta seja ’baixa’ a variavel COTACAO DO DOLAR e instanciadacom BAIXA.

A clausula da regra 3 e analisada e como e verdadeira, a parte ENTAOe aceita e a variavel TAXA DE JUROS e instanciada em ALTA.

A variavel COTACAO DO DOLAR e retirada do topo da pilha devariaveis objetivo e a proxima variavel a ser selecionada e a variavelTAXA DE JUROS.

A busca por regras que contenham a variavel objetivo TAXA DE JU-ROS e retomada e e encontrada na regra 4. Como a variavel da clausuladesta regra ja foi instanciada em BAIXA, a clausula e falsa e a parteENTAO e descartada. A busca por regras que contenham a variavelobjetivo TAXA DE JUROS termina e como ela ja foi instanciada, elae retirada da pilha de variaveis objetivo.

A proxima variavel a ser selecionada na pilha de variaveis objetivo ea variavel BOLSA DE VALORES. Como inicialmente esta variavel foiencontrada na parte ENTAO da regra 1 e a variavel de clausula dessaregra (TAXA DE JUROS) ja foi instanciada em ALTA, a clausula eanalisada e considerada falsa.

A busca por regras que tenham BOLSA DE VALORES na parteENTAO continua e e encontrada na regra 2. Como a variavel declausula da regra da foi instanciada em ALTA, a premissa e analisadae considera verdadeira, insntanciando-se novamente a variavel BOLSADE VALORES como BAIXA.

A busca por regras que tenham a variavel BOLSA DE VALORES naparte ENTAO e retomada. Como nao e encontrada mais nenhumaocorrencia da variavel BOLSA DE VALORES na parte ENTAO dasdemais regras e por nao existirem mais variaveis objetivos na pilha devariaveis objetivos na pilha de variaveis objetivos, a consulta e encer-rada e a sessao termina. Assim, o seguinte relatorio e mostrado: Coma bolsa de valores em baixa, a taxa de juros aumenta e a cotacao dodolar cai.

22

Page 23: RodrJoanir

2.2.3 O Quadro Negro

O quadro negro, ou ”blackboard” e considerado a area de trabalho deum sistema especialista. Contem informacoes e fatos sobre o assunto empauta, oferecendo um suporte ao funcionamento do sistema especialista.

Segundo Hayes Roth (1983), o quadro negro e formado por um conjuntode 3 modulos independentes.

O primeiro modulo, conhecido como ”plano de atuacao” trabalha dire-tamente com o interpretador de regras e com o justificador. O interpre-tador e responsavel pela validacao das condicoes da regra, relacionandovariaveis a estas condicoes.

O segundo modulo denominado de ”agente”, e responsavel pelaescalonacao das regras, isto e, qual regra sera executada no instanteseguinte.

O terceiro modulo, conhecido como ”solucao” e responsavel pelo ar-mazenamento das possıveis solucoes que servirao para compor as re-spostas para o problema.

2.2.4 Sistema de Justificacao

E o modulo capaz de permitir ao usuario realizar um questionamentosobre uma solucao fornecida ao mesmo. Sao exemplos de justificacaoas seguintes perguntas: Como chegou a esta conclusao? Porque chegoua esta conclusao? Porque nao chegou a tal outra conclusao?

2.2.5 Mecanismos de Aprendizagem

E um modulo capaz de realizar algumas acoes que visam melhorar odesempenho do sistema e a qualidade das respostas. Estas acoes per-mitem que sejam feitos acrescimos e alteracoes na base de conhecimentoatraves da depuracao da base de conhecimento, reordenacao de prior-idades e estabelecimento de mecanismos de controle para a expansaode arvore de busca.

2.2.6 Sistema de Aquisicao de Conhecimento

E o modulo que permite acrescentar e alterar o conhecimento de umSistema Especialista. Estas tarefas sao realizadas com o auxılio de

23

Page 24: RodrJoanir

outros recursos tais como editores, ordenadores, classificadores, queauxiliam a extrair e aproveitar o conhecimento.

2.2.7 Sistema de Consulta

O sistema de consulta e o modulo dotado de recursos para consultaque permite aos usuarios acessar sem maiores dificuldades o sistemaespecialista, haja visto que o usuario nao conhece a estrutura do S.E.e nem as formas de representacao do conhecimento.

2.2.8 Processador de Linguagem

Este modulo e responsavel por estabelecer uma linguagem orientadapara o S.E. a fim de suprir os requisitos de linguagem tecnica da com-putacao. Este modulo entra em acao toda vez que o usuario estiveracessando o Sistema Especialista.

2.3 Sistema Especialista para Diagnostico

e Solucoes de Problemas em Microcom-

putadores

Esta secao tem por objetivo descrever o desenvolvimento de um SistemaEspecialista para Diagnostico e Solucoes de Problemas em Microcom-putadores. Trata-se de uma ferramenta destinada a usuarios comunsde microcomputadores, com o objetivo de auxilia-los na identificacaodas causas e solucoes de falhas que ocorrem nos microcomputadores.

2.4 Ferramenta utilizada

O SE par Diagnostico e Solucoes de Problemas em Microcomputadoresfoi desenvolvido atraves da ferramenta Shell Expert SINTA, versao1.1b, software este que tem como principal objetivo a geracao au-tomatica de sistemas especialistas, onde a representacao do conheci-mento e baseada em regras de producao e uso de probabilidades. Den-tre suas caracterısticas podemos destacar:

24

Page 25: RodrJoanir

(a) Utilizacao de maquina de inferencia compartilhada fundamentadano encadeamento para tras (bacward chainning);

(b) Construcao automatica de telas e menus;

(c) Tratamento probabilıstico das regras de producao, atraves do usode fatores de confianca;

(d) Explicacoes sensıveis ao contexto da base de conhecimento;

(e) Adequacao com problemas de classificacao;

2.4.1 Caracterısticas da Aplicacao

O SE para Diagnostico e Solucoes de Problemas em Microcom-putadores foi desenvolvido utilizando-se como forma de represen-tacao do conhecimento um conjunto de regras de producao capazesde auxiliar na solucao dos problemas mais comuns que um com-putador esta propenso a apresentar. Surgiram algumas duvidassobre quais seriam esses problemas. Foram selecionados proble-mas tanto de hardware quanto de software a fim de enriquecera capacidade de resolucao, ou seja, a capacidade de resolver ummaior numero de problemas.

Para a construcao das regras de producao, recorreu-se ao auxıliode livros tecnicos, revistas especializadas e experiencias adquiri-das. As regras de producao foram armazenadas em sua base deconhecimento. Essas regras sao manipuladas pela maquina de in-ferencia durante uma consulta e e fundamentada no encadeamentopara tras. Desta forma, numa consulta somente sao avaliadas asregras relacionadas com a situacao atual do problema.

2.4.2 Requisitos Basicos

Para instalar o SE para Diagnostico e Solucao de Problemas emMicrocomputadores, e necessario definir os requisitos basicos deexecucao do mesmo. Como foi desenvolvido utilizando-se a ShellExpert SINTA, necessita-se de um computador equipado com sis-tema operacional Windows 95 ou superior.

Vale lembrar que as condicoes mınimas de hardware do Windowssatisfazem as condicoes de execucao da aplicacao. Contudo, enecessario que haja no mınimo 5MB de espaco disponıvel em dis-co para a instalacao da Shell e da aplicacao. O software Expert

25

Page 26: RodrJoanir

SINTA versao 1.1b pode ser obtido no site www.lia.ufc.br, jun-to ao grupo SINTA. E importante salientar que a execucao daaplicacao utilizando os recursos mınimos de hardware, afeta con-sideravelmente o tempo de execucao, ou seja, quanto mais robustaa aplicacao, maior capacidade de hardware e exigida.

2.4.3 Nıvel de Conhecimento do Usuario

Apesar do SE para Diagnostico e Solucao de Problemas em Mi-crocomputadores conter modulos bastante simples, existem out-ros que exigem conhecimentos relativamente mais avancados, ondeapenas pessoas com alguma experiencia na area sao capazes de in-teragir com o mesmo. Portanto, para que a aplicacao apresenteresultados satisfatorios, sua utilizacao e indicada para aqueles quepossuam nıvel de conhecimento intermediario e que tambem este-jam familiarizamos com o uso da linguagem tecnica dos computa-dores.

2.4.4 Restricoes da Aplicacao

Devido ao curto perıodo de tempo dispensado para a elaboracaodo projeto, a aplicacao desenvolvida nao tem a pretensao de re-solver todo e qualquer problema inerente a falhas de computa-dores. Contudo houve esforco contınuo na busca de respostas aoscasos mais comuns que um dispositivo aleatorio poderia apresen-tar.

Apos um numero consideravel de questoes levantadas junto aousuario, o SE para Diagnostico e Solucao de Problemas em Micro-computadores tenta chegar a conclusoes que satisfacam a solucaodo problema,porem existem situacoes em que todas as alternati-vas possıveis nao conduzem a solucao. Nesses casos, o SE para Di-agnostico e Solucao de Problemas em Microcomputadores concluique nao se pode atingir uma solucao, ficando a cargo do usuariotentar outros tipos de diagnosticos de falhas.

2.4.5 Finalidade da Aplicacao

O proposito principal do desenvolvimento da aplicacao, alem deilustrar a funcionalidade de um SE, esta voltado ao auxılio na

26

Page 27: RodrJoanir

busca de solucoes para problemas relativos a falhas de computa-dores. Com isso, podemos estender sua utilizacao tambem parafins de treinamento par aqueles que possuam conhecimento teoricoe pouca experiencia pratica, incluindo-se nesta situacao, tecnicose analistas recem-formados.

2.4.6 Teste e Avaliacao

Como o SE para Diagnostico e Solucao de Problemas em Mi-crocomputadores foi desenvolvido atraves da implementacao demodulos independentes, cada processo pertencente a um modulo,foi testado e avaliado de forma que todas suas possibilidades fos-sem abrangidas. Assim sendo, todas as respostas, as interacoescom o usuario, as aceitacoes, a credibilidade e a precisao foramsendo avaliadas a medida que o sistema era implementado.

2.4.7 Revisao

O processo de revisao utilizado na implementacao do SE paraDiagnostico e Solucao de Problemas em Microcomputadores foifeito de forma contınua, ou seja, a medida que o sistema era im-plementado. Como esta e uma etapa posterior a etapa de teste eavaliacao, as alteracoes foram feitas melhorando os aspectos prob-lematicos levantados na referida etapa.

27

Page 28: RodrJoanir

Capıtulo 3

Inteligencia ArtificialDistribuıda

Neste capıtulo serao abordados os temas e conceitos da area de In-teligencia Artificial Distribuıda (IAD). Inicialmente sera feita umadefinicao de IAD e um breve historico da area sera apresentado.A seguir os principais problemas da IAD serao abordados.

Sistemas de Inteligencia Artificial tradicionais concentram suasatencoes em um unico agente, o qual seria provido de algumaespecie de inteligencia, e sozinho seria especialista na realizacaode uma tarefa especıfica.

A Inteligencia Artificial Distribuıda (IAD) baseia-se no compor-tamento social, considerando sociedades de agentes inteligentese autonomas, dotadas de capacidade cognitiva. Os agentes, es-pecialistas na atividade que desempenham, nao trabalham maisisolados, mas de forma cooperativa tentam resolver um problemada melhor forma possıvel, caracterizando a area da IAD, denomi-nada Sistemas Multiagentes (SMA). Na outra area da IAD, a Res-olucao Distribuıda de Problemas (RDP), sao adotados estrategiasbaseadas no conceito de decomposicao para a resolucao de umproblema complexo, isto e, a tarefa, dada a sua complexidade,requer decomposicao num conjunto de tarefas mais simples.

28

Page 29: RodrJoanir

3.1 O que e Inteligencia Artificial Dis-

tribuıda?

A IA Distribuıda e uma area da IA que aplica metodos cooper-ativos para solucionar um determinado problema. Um sistemabaseado em Inteligencia Artificial Distribuıda e formado por umconjunto de partes.

As vezes um Sistema Especialista pode estar lidando com um prob-lema tao complexo que sozinho nao o consiga resolver. Para tanto,a IAD procura atacar estes problemas complexos, decompondo-osem problemas mais simples, cada um com caracterısticas distintas.

Para melhor compreensao do funcionamento da IAD, pode-setracar um paralelo com os seres vivos na natureza, que se agru-pam, formando o que se conhece como sociedade, para melhorpoder resolver o problema da luta pela vida e pela sobrevivenciada especie. Pode-se citar como exemplo as abelhas e as formi-gas, que se agrupam, formando uma sociedade organizada e comespecializacoes de funcoes. No campo da Inteligencia Artificial,tem-se como exemplo o uso de varios robos autonomos, cada umtrabalhando em um unico problema.

3.2 Breve Historico

As pesquisas academicas em Inteligencia Artificial Distribuıda(IAD) comecaram nos anos 70, epoca em que ocorreram asprimeiras experiencias para resolver problemas de modo coopera-tivo.

Vale destacar entre essas primeiras experiencias o projeto HEARSAYII, que se tratava de um sistema para reconhecimento de fala. Nadecada de 80, quando se iniciou a discussao sobre a utilizacao demodelos organizacionais humanos em sistemas computacionais, ostrabalhos de Inteligencia Artificial Distribuıda se concentravamem aplicacoes de reconhecimento de palavras, interpretacao desensores e controle de robos.

Na area de robotica foram testados os chamados robos reativos,cuja ideia basica era a de utilizar uma arquitetura simples,baseada em comportamentos elementares, para projetar um roboautonomo. Atualmente aplicacoes no campo da Inteligencia Arti-ficial Distribuıda nao param de se multiplicar.

29

Page 30: RodrJoanir

3.3 Conceitos Basicos

A seguir, serao introduzidos alguns conceitos basicos de In-teligencia Artificial Distribuıda (IAD), como agentes, sociedades,ambientes, organizacoes e interacoes, que serao utilizados nassecoes subsequentes.

Dado um determinado sistema, denomina-se agente cada uma desuas entidades ativas. Um agente raciocina sobre o ambiente,sobre os outros agentes e decide racionalmente quais acoes devetomar. O termo ativo tem como objetivo indicar que o agenteesta ligado a um mecanismo de controle para sua ativacao. Asentidades passivas formam o ambiente. O conjunto de agentesforma uma sociedade.

O termo interacao designa as trocas de informacao que podemocorrer entre os agentes. Organizacao descreve as restricoes apli-cadas aos agentes pertencentes a uma sociedade.

3.4 Principais problemas abordados em

IAD

Os principais problemas abordados em IAD sao os seguintes:

i. Descricao, decomposicao e alocacao de tarefas: refere-se acomo deve ser escrita e decomposta uma tarefa complexa emsubtarefas e como essas subtarefas serao realizadas e alocadas,tanto estaticamente como dinamicamente;

ii. Interacao, linguagem e comunicacao: que primitivas basicasde um protocolo de comunicacao devem ser utilizadas pararepresentar conceitos semanticos de um trabalho cooperativo;

iii. Coordenacao, controle e comportamento coerente: como garan-tir um comportamento global coerente num conjunto deagentes, cada qual com os seus objetivos e habilidades;

iv. Conflito e incerteza: considerando que os agentes nao temuma informacao completa sobre o seu ambiente, surgem con-flitos e estes devem ser resolvidos. Os dados incertos e incom-pletos devem ser manipulados de forma a garantir resultadosglobais coerentes;

v. Linguagens e ambientes de programacao: devem ser definidaslinguagens de programacao a serem utilizadas em tais sis-

30

Page 31: RodrJoanir

temas que suportem os diferentes requisitos necessarios a cadaagente pertencente ao sistema.

Alguns destes problemas tem sido pesquisados por pesquisadoresde outras areas, como por exemplo em sistemas distribuıdos elogica. No entanto, a IAD tem por objetivo reunir tais problemasnum mesmo contexto cientıfico.

3.5 Resolucao Distribuıda de Proble-

mas (RDP)

O principal objetivo desta estrategia de resolucao e solucionarum problema inicial preciso. Para tanto, apresenta as seguintescaracterısticas:

i. Divisao do problema: o problema e resolvido atraves da di-visao das tarefas, que sao realizadas por um conjunto deagentes, sendo que cada agente esta incumbido de solucionaruma determinada tarefa particular. Os agentes podem aplicardiferentes estrategias de resolucao para um mesmo problema;

ii. Organizacao: Os agentes estao fisicamente distribuıdos emdiversas maquinas conectadas via rede, tambem denominadade nos. A disposicao dos agentes e definida durante a fasede concepcao do sistema e tem por objetivo desenvolver umaarquitetura de comportamento cooperativo;

iii. Interacao entre nos: a interacao entre os agentes e realiza-da atraves de troca de mensagens e pelo compartilhamentode dados. Estas interacoes tem por objetivo possibilitar aoagente interagir com os demais para compartilhar informacoesou resultados parciais, permitindo que primeiro resolva o seuproblema particular. Somente apos estas interacoes o objetivoglobal pode ser alcancado;

iv. Execucao: os agentes sao executados de forma concorrente,aumentado assim a velocidade de resolucao;

v. Controle do Sistema: pode ser implementado de forma cen-tralizada, onde um agente e responsavel pelo controle do sis-tema, ou de modo distribuıdo;

A figura abaixo possibilita uma melhor compreensao das tecnicasde RDP para resolucao de um problema:

31

Page 32: RodrJoanir

3.6 Sistemas Multiagentes

O principal objetivo desta area e oferecer meios para que osagentes possam cooperar na resolucao de um problema especıficoquando este for apresentado ao sistema. Para tanto, apresenta asseguintes caracterısticas:

i. Concepcao: os agentes sao concebidos independentemente deum problema particular a ser resolvido, isto e, nao sao enti-dades capazes de realizar um processamento especıfico pararesolver um problema particular, mas sim capazes de realizarqualquer processamento;

ii. Interacao: sao desenvolvidos protocolos de interacoes genericos,isto e, que podem ser utilizados em varias aplicacoes;

iii. Organizacao: os agentes sao implementados com todas as fun-cionalidades necessarias para resolucao de um problema;

iv. Controle do Sistema: nao existe um controle global do sis-tema, este e implementado de forma totalmente descentral-izada.

A figura 5 permite uma melhor compreensao do funcionamento domodelo de SMA para solucao de um problema.

Figura 5

32

Page 33: RodrJoanir

3.7 Relacao de Sistema Especialista

com IA Distribuıda

Os sistemas baseados em IAD iniciaram uma verdadeira revolucaona forma de pensar e resolver problemas. Os Sistemas Especialis-tas que sempre tiveram uma visao global e uma abordagem cen-tralizada do problema, puderam ter uma visao local do problema,a nıvel de agente, onde o comportamento coletivo e a funcionali-dade global sao resultantes das interacoes entre os agentes. Como particionamento do problema em subproblemas funcionalmentedistribuıdos, cada subprocesso (agente) e um subsistema especial-ista em certos tipos de atividades. Neste paradigma, o agente devefazer suas proprias decisoes sobre o subproblema a solucionar.

Esta nova maneira de pensar os problemas permitem que sistemasespecialistas ainda mais complexos sejam projetados e desenvolvi-dos, sistemas estes mais abertos, flexıveis, interativos e confiaveis.O interesse maior e em sistemas nos quais os agentes sao sistemasde IA que podem gerar e executar planos e fazer inferencias. Ger-

33

Page 34: RodrJoanir

ar planos consiste em um meio de cada agente poder planejar suasacoes, considerando as acoes potenciais de outros agentes, isto e,cada agente deve possuir conhecimento de algumas caracterısticasde outros agentes (raciocınio social).

Cada agente tem uma visao limitada da situacao global, o quenao e suficiente para resolver o problema. A interacao entre osmultiplos especialistas ou agentes torna-se necessaria para resolvero problema. Para tanto, os agentes tem permissao de comunicar-sede forma limitada para compartilhar objetivos comuns e trabalharneles.

3.8 Aplicacoes da IAD

Sistemas de Inteligencia Artificial Distribuıda sao a classe desistemas que permite a varios processos autonomos, chamadosagentes, realizarem atos de inteligencia global atraves de proces-samento local e comunicacao interprocessos. Enfim, a meta desistemas especialistas baseados em conhecimento e distribuıdos epoder coordenar atividades de grupo resolvendo problemas que ossistemas compartilham - totalmente ou em parte.

Utilizando-se da IAD, pode-se resolver problemas que nao seri-am resolvidos com a tecnologia tradicional. Com a IAD a basede conhecimentos pode ser subdividida em areas, assim como oproblema. Dessa maneira, cada processo procura um problema,resolve a sua parte e devolve os dados trabalhados a base, paraque um outro processo identifique o seu padrao e possa seguirmanipulando os mesmos dados, adiantando mais a resolucao doproblema em questao.

Como exemplo de uma situacao real do emprego da IAD, temoso sistema de defesa dos EUA. O sistema e composto de mais deum sistema especialista, todos com a mesma funcao, contudo comformas diferenciadas de armazenar e decidir sobre os problemas.Dessa maneira, para uma resolucao ser feita, mais de um sistemadeve chegar na mesma solucao, de formas diferentes e por metodosdiferentes. O sistema e composto por um numero ımpar de pro-cessos distribuıdos para que nao ocorra empate de decisoes. Aose projetar um sistema especialista distribuıdo, devem ser feitasalgumas perguntas basicas como:

O que um agente ira dizer ao outro?, Que linguagem eles usarao?,

34

Page 35: RodrJoanir

O que eles devem descrever? e etc.

E muito importante, como em qualquer projeto, que seja feita umaexcelente analise do problema para que o custo de uma reestrutu-racao seja minimizado.

3.8.1 Rede Cooperativa de Sistemas Especial-istas

No campo da IAD, tem havido um crescente interesse na pesquisae desenvolvimento de sistemas que permitem a participacao desistemas especialistas ja existentes em redes cooperativas de tra-balho[ ].

Este problema e de grande importancia devido a suposicao basicaque a heterogeneidade de sistemas e inerente ao universo daciencia da computacao. Isto nao significa que os esforcos parapadronizacao sao inuteis, muito pelo contrario. Entretanto, estesesforcos sempre deixam para tras novas aplicacoes e tecnologiasque saem dos laboratorios de pesquisa e das industrias que pro-duzem programas.

Ate ha poucos anos atras, a linha de pesquisa predominante daIAD respondia a necessidade de desenvolvimento de sistemas parasistemas cooperativos. O foco causou uma concentracao inicial nosaspectos mais fundamentais do campo, por exemplo, estrategias decooperacao, dinamica de comunicacao de agentes, arquitetura deagentes, etc. Conforme se progrediu nestes aspectos, tem havidoexperimentacoes em diferentes ambientes de programacao parasistemas cooperativos.

Varios grupos de pesquisa tem empreendido a tarefa de integrarestes agentes cooperativos em sistemas mais amplos que assegureminteroperabilidade de sistemas heterogeneos. Exemplos disso saoos sistemas Carnot[ ] e Archon[ ].

A aplicacao desses sistemas na industria e no setor de servicos fezperceber novas dimensoes de problemas, sendo que duas das maisimportantes sao:

i. Heterogeneidade na representacao do conhecimento, na basede dados, nas linguagens de programacao, e na comunicacaode servicos;

ii. Integracao: conceito que assegura o funcionamento harmo-niosamente do conjunto de aplicacoes, sistemas e servicos;

35

Page 36: RodrJoanir

Em 1990, um projeto desenvolvido na MCC, sob a direcao deMichael Huhns, marcou o inıcio de estudos mais especıficos. As-sim como os sistemas Carnot e Archon, esse projeto consistia dodesenho de uma rede de comunicacao para conectar sistemas espe-cialistas existentes. Esta intercomunicacao permite a distribuicaode dados e conclusoes, facilitando assim o trabalho cooperativo nasolucao de problemas mais complexos.

A proposta de Huhns consistia na criacao de uma rede de modulosque assegurasse a comunicacao dos sistemas especialistas, focal-izando principalmente a comunicacao e administracao das partesda rede, prevenindo principalmente, o problema do impasse nosdialogos. Neste projeto identifica-se a necessidade de se ter ummodulo adicional cuja funcao e garantir a cooperacao entre os sis-temas especialistas, isto e, coordenar a chamada dos sistemas es-pecialistas envolvidos na solucao cooperativa de um determinadoproblema.

Metafora de uma Rede Cooperativa

O objetivo desta secao e apresentar o esboco de uma rede de co-operacao, que tambem pode ser denominada junta cooperativa,que incorpora os modulos de cooperacao necessarios para que sis-temas especialistas correntemente em us resolvam problemas co-operativamente. Esta proposta faz parte de um projeto a longoprazo, chamado RESH que estava sendo desenvolvido pelo Labo-ratorio Nacional de Informatica Avancada (LANIA) da cidade deVera Cruz no Mexico[ ].

O domınio de aplicacao escolhido para expor a rede foi a des-ignacao de credito em banco. Antes porem, vamos introduzir umametafora para a rede cooperativa, isto e, faremos uma analogiacom ambiente de trabalho num escritorio.

Suponha que o escritorio funciona como um tipo de rede coop-erativa formada por um grupo de pessoas que incluem chefes esecretarios. Cada chefe tem,como seu associado, um secretario ex-ecutivo a que ele esta hierarquicamente relacionado. Os servicosde comunicacao disponıveis para esses chefes e secretarios sao:telefone, fax e servico de mensagem. O secretario esta apto naosomente a assumir a comunicacao de seu chefe, mas tambem in-terpretar e executar suas ordens, e resolver todos os problemasrelacionados a esta execucao.

36

Page 37: RodrJoanir

O modelo descrito esta apto a discriminar entre pelo menos tresnıveis hierarquicos de comunicacao: nıvel (n) chefes, nıvel (n-1)secretarios e nıvel (n-2) servicos de comunicacao.

Em adicao, e importante estabelecer, tambem, tres tipos diferentesde dialogos: chefe.n - chefe.n, chefe.n - secretario.n-1, secretario.n-1 - secretario.n-1.

Esses dialogos sao realizados usando os varios servicos de comu-nicacao existentes no escritorio. Eles podem ser descritos em ter-mos de camadas de dialogos que sao controlados por protocolos denıveis inferiores n-1, e servicos de nıveis mais baixos. Em resumo,cada camada deve fornecer servico de comunicacao basica para acamada imediatamente acima.

A comunicacao com o exterior e sempre realizada atraves de umdos secretarios. O ambiente externo e identificado com o cliente darede. O cliente conta seu problema a rede atraves do ”secretario.n-1” que esta associado com o ”chefe.n”.

Algumas restricoes podem ser impostas sobre esta analogia:

i. Nao existe dialogo direto entre chefe e chefe.

ii. Cada chefe pode se comunicar somente com seu/sua se-cretario, por meio de ordens, questoes e afirmacoes.

iii. Dialogos entre secretarios estabelece comunicacao atraves datransmissao de pedidos, perguntas, assercoes e transmissao dedocumentos.

Em vista dessas restricoes, cada chefe e concebido como um es-pecialista isolado cuja unica conexao com o resto do escritorio eatraves de seu/sua secretario, que assume a responsabilidade dacooperacao. O secretario tem familiaridade com o ambiente glob-al, os diferentes interlocutores diretos do chefe, tem domınio dosprotocolos apropriados para os diferentes assuntos, e sabe comointerpretar as ordens de seu/sua chefe e tambem como dividı-lasem tarefas envolvendo um ou mais interlocutores.

A metafora que foi descrita anteriormente serve como uma basepara a definicao de uma arquitetura para a rede cooperativa desistemas especialistas. Para comecar o papel exercido pelos chefesna metafora esta associado aos sistemas especialistas distribuıdosno escritorio. O problema que os autores em [ ] se propoem aresolver consiste do planejamento e construcao de uma rede desistemas que assume o papel dos secretarios executivos da rede.Estes sistemas sao chamados facilitadores porque seu proposito

37

Page 38: RodrJoanir

e facilitar a cooperacao entre os sistemas especialistas que foramconstruıdos para trabalhar independentemente.

Modelo de uma Rede Cooperativa

O modelo de rede cooperativa de sistemas especialistas que esta-mos expondo e organizada em tres camadas:

i. A rede de Sistemas Especialistas

ii. Rede de facilitadores

iii. Comunicacao da rede

A Rede de Sistemas Especialistas e composta por um conjunto desistemas especialistas, que podem resolver juntos problemas maiscomplexos do que aqueles que cada um poderia resolver sozinho.Essa cooperacao para solucao de problemas e possıvel com a ajudada rede de facilitadores.

A rede de facilitadores abrangem um conjunto de sistemas capazesde definir e coordenar uma solucao cooperativa dos problemas dosusuarios.

A solucao do problema e feita atraves do intercambio, por umlado entre os proprios facilitadores, e por outro lado, entre os fa-cilitadores e os usuarios ou tambem com os sistemas especialistas.Internamente, cada facilitador possui algumas interfaces que per-mitem liga-lo com um usuario, uma base de dados gerenciadora dosistema e um sistema especialista. Externamente, cada facilitadore associado aos demais facilitadores da junta.

A comunicacao da rede corresponde a rede de computador e a redede comunicacao fısica, cujas principais tarefas sao:

i. assegurar a interconexao logica da rede de facilitadores

ii. assegurar o servico de transmissao de mensagem

Em termos do esquema das camadas em sistemas abertos, osusuarios de um sistema facilitador estao situados na ultima cama-da de um sistema aberto cooperativo, a camada n de aplicacoes, osfacilitadores estao situados na penultima camada, n-1, e portantose constitue na camada de servicos de comunicacao da camadasuperior.

38

Page 39: RodrJoanir

3.8.2 Arquitetura do Facilitador

O principal objetivo do facilitador e assegurar a coordenacao deum Sistema Especialista que esta ligado a ele com os demais Sis-temas Especialistas da rede, assegurando a solucao global dosproblemas dos usuarios.

As principais tarefas dos facilitadores e controlar diferentes tiposde dialogos envolvidos na solucao de um problema e selecionaruma estrategia de cooperacao para esta solucao. Para tanto, osfacilitadores contam com dois modulos:

i. Modulo de Controle de Cooperacao;

ii. Modulo de Controle de Dialogo;

O modulo de Controle de Cooperacao e o modulo principal do fa-cilitador. A primeira tarefa em um problema e criar o grupo deagentes disponıveis na junta e depois escolher a estrategia coop-erativa para solucao do problema e, a seguir, os tipos de dialogosenvolvidos. Esse modulo tem conhecimento total do domınio darede de Sistemas Especialistas, das diferentes estrategias de co-operacao, assim como um modelo de seu SE todos os sistemas darede.

O modulo de controle de dialogo e responsavel pela aplicacao daestrategia selecionada e gerenciamento dos dialogos correspon-dentes. Existem tres diferentes tipos de dialogos:

i. Entre o facilitador e o usuario;

ii. Entre o facilitador e seu Sistema Especialista;

iii. Com outros facilitadores da rede.

Estudo de Caso: Concessao de Credito Bancario para Empresas

Este estudo de caso focaliza a concessao de credito em banco. Paraesse proposito, sao considerados uma rede cooperativa formadapor tres sistemas especialistas:

i. SE1 Para concessao de credito;

ii. SE2 Para avaliar projetos;

iii. SE3 Para Calculos

Cada um desses sistemas especialistas possui uma base de conhec-imento. As principais caracterısticas desses sistemas especialistassao:

i. SE1 - Esse sistema e um especialista em operacoes bancariasque admite diferentes tipos de creditos bancarios. Ele possui

39

Page 40: RodrJoanir

um conjunto de polıticas bancarias que lhe permitem ofere-cer credito com base em alguns criterios tais como: solvencia,garantia de lucro para o banco, capacidade de gerenciamentodos indivıduos que solicitam o credito para suas companhias,viabilidade tecnica e financeira do projeto, etc. Este sistematambem tem acesso a uma base de dados que contem arquivosde aplicacao daqueles que estao solicitando o emprestimo, in-formacoes sobre polıticas bancarias, taxas de interesse atual,etc.

ii. SE2 - Esse sistema e um especialista faz avaliacao de projetos.Seu proposito e analisar e avaliar projetos de investimentos.Ele possui a incumbencia de ordenar os projetos de acordocom o tamanho do projeto, os custos relevantes, se e seguroou de risco, se possui todas as informacoes necessarias e seestas sao favoraveis. Nesse exemplo ele sera usado somentecomo um assistente da rede cooperativa.

iii. SE3 - Este e um sistema especialista em calculos que podeaplicar diferentes modelos e realizar calculos de complexidadevariada. Para tanto, acompanha a conduta do mercado epode acessar a base de dados contendo todas as informacoesnecessarias para realizar estes calculos. Esse sistema tambemsera usado como um assistente.

Existe uma base de dados que contem informacoes gerais da em-presa, isto e, situacao financeira e dados referentes ao projeto parao qual a aplicacao de credito foi feita. Ela pode ser acessada porqualquer um dos tres sistemas especialistas atraves de seus re-spectivos facilitadores. Em qualquer situacao, o usuario requisi-tara primeiramente o facilitador do SE1. O SE1, atraves de seufacilitador, solicitara a ajuda dos outros dois sistemas especialis-tas assistentes para posteriormente aplicar uma solucao definitivapara o problema apresentado pelo usuario.

O que se pode concluir desta aplicacao e que o conceito de facilita-dor e elemento poderoso em sistemas distribuıdos complexos queimplica na inter-operacao de sistemas heterogeneos.

Sua aplicabilidade vai alem de executar a comunicacao de sistemasespecialistas existentes, e pode ser extendidoa sistemas auxiliares,como tambem a problemas de interoperatividade gerais que ex-igem solucoes em nıvel de semantica.

O problema de ligar sistemas especialistas para tarefas coopera-tivas e um campo fertil de experimentacao, pois problemas que

40

Page 41: RodrJoanir

demandam solucoes efetivas usando redes cooperativas homem-maquina sao frequentes.

41

Page 42: RodrJoanir

Capıtulo 4

Melhorando a Qualidadede Servicos de Busca naInternet

O crescimento subito e desordenado da World Wide Web tornou asferramentas de busca aplicacoes essenciais para viabilizar o acessoa informacoes, documentos e servicos na Internet. Nos ultimosanos, essas ferramentas de busca tem se transformado em ” por-tais” que atuam como ponto de partida para acessos a Internet.Devido a sua ampla utilizacao e a sua relevancia, eficiencia e ve-locidade na realizacao das buscas sao fundamentais.

A velocidade de resposta dos servidores de busca nao depende,entretanto, apenas da quantidade de requisicoes recebidas, mastambem da complexidade dessas. Mas ainda, o volume de infor-macoes retornado aos usuarios varia muito entre pesquisas, resul-tando em variabilidade e dificuldade de predicao do comportamen-to do servidor e do trafego das redes de interconexoes entre este eo cliente. Neste artigo sera apresentado uma estrategia chamadacache plugins, estrategia esta que vem sendo implementada emservicos de busca para melhorar a qualidade dos mesmos.

A implementacao desta tecnica utiliza conceitos de processamentodistribuıdo e Inteligencia Artificial. Os plugins sao pequenos pro-gramas executados em servidores cache WWW. Plugins tambempodem funcionar como concentradores que contabilizam acessosfeitos as paginas.

42

Page 43: RodrJoanir

4.1 Inteligencia Artificial na rede

E curioso como alguns aspectos revolucionarios da Internet aindanao estao sendo explorados em todo o seu potencial. Um delese a possibilidade de transformar o microcomputador do usuarioem algo mais do que um simples terminal de acesso, atraves dosistema denominado ”execucao distribuıda”. O que e isso? Osprogramas do tipo Netscape e Internet Explorer, a partir de suaversao 2, ja permitem a execucao de programas (softwares) nasCPUs do computador do usuario.

A tecnologia mais recente e a Java, que consiste de um aplicativousualmente pequeno (applet), que e descarregado para o com-putador do usuario quando ele acessa uma pagina na Web, e eexecutado localmente. E uma linguagem poderosa, que tem avantagem de ser independente de plataforma. Apesar disso, amaior parte dos sites na WWW ainda utiliza aplicacoes simplespara a execucao distribuıda e raro encontrar usos das tecnologiasde Inteligencia Artificial, como os sistemas especialistas. Eles im-plementam conhecimento em alguma area especializada, e ajudamo usuario a tomar decisoes, planejar, criticar, etc., procurando im-itar a maneira como o intelecto humano funciona.

Um bom exemplo e um sistema especialista na area medica, quepode auxiliar o profissional a chegar a um diagnostico, com basenos sinais, sintomas e resultados de exames de laboratorio ou out-ros. O resultado e enviado atraves da Web para o usuario que osolicitou. O bom de um sistema desse tipo e que ele pode ser usadode qualquer lugar do mundo, usando qualquer marca ou modelode computador, a qualquer hora do dia. No futuro, a Internet vaiser muito mais inteligente do que hoje, usando programas dessetipo.

Um aplicativo de Inteligencia Artificial que ja esta comecando afazer sucesso e o ”softbot”ou ”agente inteligente”, um softwareque navega em sites especıficos na Internet para colher dados deuma certa natureza. Por exemplo, os softbots do site MySimonsao capazes de buscar um determinado item que voce queira com-prar, em centenas de sites de mercadores on-line, e volta com osprecos. No Brasil ja existe a serie de ”mineradores automaticos dedados”na UOL. Tem o PeopleMiner, o BookMiner, o DoctorMin-er, o CDMiner, e muitos outros. A tendencia de personalizar ossites tambem vai utilizar muitos recursos de Inteligencia Artificial,

43

Page 44: RodrJoanir

assim como os sites de monitoracao ativa dos habitos de navegacaoe de consumo. O ceu e o limite quando se trata de fazer convergirvarias tecnologias de Informatica, tais como multimıdia, hipertex-to, Inteligencia Artificial, bancos de dados, etc.

4.2 A Arquitetura do Cache Plugins

Cache Plugins sao programas normalmente executados de maneiradistribuıda em micros interligados com conexoes de alta velocidadea um servidor cache.A implementacao da arquitetura de cache plu-gins utiliza conceitos de Inteligencia Artificial Distribuıda, ondeSE sao implementados para resolucao distribuıda de problemas(RDP) visando obtencao de resultados mais eficientes e de melhorqualidade.

Uma vez operacional, os plugins sao capazes de realizar varias dastarefas do servidor, com geracao de paginas seguindo um padraoespecificado ou a contabilizacao de acessos.Desta forma, o uso deplugins faz com que a computacao necessaria para responder auma requisicao seja distribuıda, diminuindo a carga do servidorde busca, e dos canais de comunicacao que chegam a ele, ja que ocustao da operacao e minimizado com a distribuicao do problema.

Quando chega uma requisicao, o plugins a analisa e determinatodos os objetos estaticos (como baners, applets e outros dados)necessarios para se gerar a resposta. Estes objetos sao entao requi-sitados ao servidor cache, que os trata com uma requisicao normal:com aplicacao de conceitos de Inteligencia Artificial ele procurauma copia local, se esta for encontrada no cache, ela e retornada;senao, o objeto estatico e buscado do servidor remoto, envian-do ao plugin e armazenado localmente para atender a requisicoesfuturas. Apos receber todos os objetos estaticos necessarios, oplugin os combina de acordo as caracterısticas da busca sendorealizada, gerando a pagina que sera enviada como resposta aoservidor cache, que a repassa ao cliente.

O plugin tambem pode ter outras funcionalidades, como coletase manter informacoes sobre usuarios e contabilizar o numero deacessos realizados a uma pagina ou o numero de ”cliques”efetuadosem um anuncio, reportando esses dados ao servidor de busca pe-riodicamente. Este processo e totalmente transparente ao cliente,e pode ser visualizado de maneira resumida na FiguraX . Os

44

Page 45: RodrJoanir

numeros mostrados na figura se referem as seguintes atividades:

i. O cliente requisita uma pagina dinamica ao servidor cache;

ii. O servidor cache redireciona a requisicao ao cache plugin;

iii. O cache analisa a requisicao e busca todos os objetos estaticosdo servidor cache;

iv. Caso ainda nao estejam armazenados localmente, os objetosestaticos sao buscados do servidor original;

v. O plugin monta e envia ao servidor cache a resposta a requi-sicao;

vi. O servidor cache retorna essa pagina ao cliente;

vii. O cache plugin informa ao servidor o acesso e pode criar umcanal de comunicacao para buscar novas diretrizes de geracaode paginas.

Uma premissa importante para o funcionamento da arquiteturaproposta e que paginas dinamicas podem ser construıdas a partirde um certo conjunto de objetos estaticos. Note que o plugin querepresenta um determinado servidor deve ser fornecido pelos re-sponsaveis pelo mesmo servidor, de forma que o plugin implementeos mecanismos de recuperacao de objetos estaticos necessarios e decombinacao desses objetos. Todo o controle de consistencia da in-formacao presente nos objetos a partir dos quais o plugin compoesua resposta pode ser feito pelo servidor de conteudo, que deter-mina qual o tempo de expiracao de cada um. Esta informacaoe utilizada na determinacao da validade de objetos presentes nocache, que requisita copias atualizadas ao servidor caso necessario.O uso de cache plugins traz benefıcios tanto para os provedores deconteudo e de acesso, que terao reduzidas as suas cargas de pro-cessamento e nos canais de comunicacao, quanto para os clientes,cujo tempo de resposta sera menor. Obviamente, o ganho obtidocom o uso de plugins depende da localidade de referencia existentenas requisicoes submetidas.

A utilizacao de caches plugins e uma estrategia que objetiva mel-horar a qualidade de servico de requisicoes a objetos gerados di-namicamente na World Wide Web. Essa estrategia e ilustradapela integracao de maquinas de busca, servidores cache, conceitosde IAD e processamento distribuıdo. Usando a arquitetura pro-posta, os resultados das buscas e o conteudo de paginas dinamicaspodem ser efetivamente armazenados por servidores cache, o quenao e possıvel usando tecnologia atual.

45

Page 46: RodrJoanir

Essa estrategia reduz tanto o tempo de resposta para o clientequanto a carga no servidor e na rede. A implementacao de cacheplugins possibilita tambem a contabilizacao de numeros de visitasa paginas e numeros de acessos a paginas de anunciantes, ateentao uma das maiores restricoes para resplicacao de paginas deconteudo dinamico.

46

Page 47: RodrJoanir

Cronograma

Atividade Data de conclusaoEscrever as regras do domınio de conhecimento

conhecimento para a base do S.E. julhoproposto e implementa-la noExpert SINTA e realizar os Agosto

testes necessarios

Sera tambem construıdo um help para a basede conhecimento atraves de uma Setembro

ferramenta de ajuda a ser definidaDescrever sobre o seguinte tema em

IAD: Melhorando a Qualidade Outubrode Servicos de Busca na Internet

Editar o projeto atraves do Novembrouso do editor LATEX.

Elaborar a apresentacao 24 Novdo projeto a banca

Entrega do Projeto de Graduacao 03 Dez

Tabela 5.1: Cronograma da monografia

47

Page 48: RodrJoanir

Referencias Bibliograficas

[BL76] K. S. Booth e G. S. Lueker. Testing for the consecutiveones property, interval graphs, and graph planarity us-ing PQ-tree algorithms. Journal of Computer and SystemSciences , 13:335–379, 1976.

[Got98] S. M. Gotz. Communication-Efficient Parallel Algo-rithms for Minimum Spanning Tree Computations . Tesede Doutoramento, Department of Mathematics and Com-puter Science - University of Paderborn - Alemanha, Maio1998.

[JaJ92] J. JaJa. An Introduction to Parallel Algorithms . Addison-Wesley, 1992.

[Ste97] M. A. Stefanes. Algoritmos e Implementacoes Paralelaspara Florestas Geradoras Mınimas . Tese de Mestrado, In-stituto de Matematica e Estatıstica - USP - Sao Paulo/SP- Brasil, Dezembro 1997.

[Ste00] M. A. Stefanes. Algoritmos paralelos para modelo re-alısticos, Marco 2000. Qualificacao de Doutorado - Insti-tuto de Matematica e Estatıstica - USP - Sao Paulo/SP -Brasil.

48