UNIVERSIDADE DA AMAZÔNIA CENTRO DE CIÊNCIAS EXATAS E TECNOLOGIA

AGENTES INTELIGENTES – CONCEITOS, CARACTERÍSTICAS E APLICAÇÕES

BRUNO TRAVASSOS DA ROSA BRAGA JOSÉ LEONARDO AYRES PEREIRA

Belém - Pa 2001

“Exalta a sabedoria, e ela te exaltará, e abraçando-a tu, ela te honrará”. Provérbios 4:8

AGRADECIMENTOS

Gostaria de agradecer a minha família, principalmente a minha mãe, por sempre me ajudar quando eu preciso. Aos meus amigos Anamélia Contente de Souza e José Leonardo Ayres Pereira que fizeram deste trabalho um trabalho inesquecível.

BRUNO TRAVASSOS DA ROSA BRAGA

à Mestra e amiga Anamélia Contente de Souza por seu apoio. JOSÉ LEONARDO AYRES PEREIRA . ao meu companheiro de trabalho. À minha família por sua compreensão. Bruno Travassos por sua dedicação e ao meu orientador. que é por sua vontade que as coisas acontecem. Cláudio Alex Rocha por sua paciência.Devo agradecer acima de tudo a Deus. entrega e crença em nossa capacidade de vitória.

não tendo como meta abordar por completo o tema “agentes inteligentes”. Todo conteúdo é apresentado de forma a oferecer uma compreensão progressiva do assunto procurando oferecer um claro entendimento do mesmo. e sim apenas desmistificar a visão que sugere que agentes inteligentes é uma tecnologia distante da atual realidade.RESUMO O trabalho apresenta a tecnologia de agentes de forma clara e objetiva. i . A tecnologia de agentes é estudada por vários profissionais da área de computação e é uma tecnologia presente nos dias atuais e que no futuro deverá estar constantemente em evidência. Serão abordados tópicos que foram considerados importantes no estudo de agentes inteligentes e ao final do trabalho é apresentado um exemplo básico de agente que pode ser utilizados no dia-dia e permite futuros incrementos e adições.

UNIVERSIDADE DA AMAZÔNIA CENTRO DE CIÊNCIAS EXATAS E TECNOLOGIA AGENTES INTELIGENTES – CONCEITOS. CARACTERÍSTICAS E APLICAÇÕES BRUNO TRAVASSOS DA ROSA BRAGA JOSÉ LEONARDO AYRES PEREIRA AVALIADORES __________________________________ __________________________________ __________________________________ NOTA: ____________________________ DATA: ____________________________ .

BRUNO TRAVASSOS DA ROSA BRAGA JOSÉ LEONARDO AYRES PEREIRA Belém . para obtenção do grau em Tecnólogo em Processamento de Dados. CARACTERÍSTICAS E APLICAÇÕES Trabalho de Conclusão de Curso apresentado à Universidade da Amazônia.UNIVERSIDADE DA AMAZÔNIA CENTRO DE CIÊNCIAS EXATAS E TECNOLOGIA AGENTES INTELIGENTES – CONCEITOS.Pa 2001 . sob a orientação do Professor Cláudio Alex Rocha.

..........................................4...........1 CARACTERÍSTICAS GERAIS DE AGENTES .SUMÁRIO CAPÍTULO 1 – INTRODUÇÃO.....................2....................1....................................15 2....3.............1 CAPÍTULO 2 – VISÃO GERAL DE AGENTES .16 2.................. DENIFIÇÃO DO(S) TERMO(S) “INTELIGENTE/INTELIGÊNCIA ................. CLASSIFICAÇÃO GERAL DOS AGENTES .........11 2.......2...........................2...4....23 3...........................................14 2.......................4. QUANTO À TAREFA QUE EXECUTAM ..................... CLASSIFICAÇÃO DE AGENTES INTELIGENTES ......................4...4 2....ARQUITETURA DE AGENTES .......20 CAPÍTULO 3 – AGENTES INTELIGENTES ................ CARACTERÍSTICAS ESPECÍFICAS DE AGENTES INTELIGENTES ................................ ARQUITETURA BÁSICA ...................17 2...23 ................................3.16 2..........18 2......5.........................2.......5.15 2.....................................23 3. QUANTO À MOBILIDADE .... QUANTO A ÊNFASE DADA A ALGUNS ATRIBUTOS PRIMÁRIOS ......4.......................5 2................................1....1....... DEFINIÇÃO DO TERMO “AGENTE” ........................ DEFINIÇÃO DE AGENTES INTELIGENTES .................... ÁREAS DE APLICAÇÃO .......................4 2.................................................... CARACTERÍSTICAS DE AGENTES INTELIGENTES .......3................ QUANTO À AQUISIÇÃO DE INTELIGÊNCIA.........3..4..................2............2.................7 2...................................................5 2.......................... QUANTO AO NÍVEL DE INTELIGÊNCIA ............4.....................4......1...3....................................1......................1.......12 2...... HISTÓRICO ....9 2.......................................................11 2...... DEFINIÇÃO DE AGENTE INTELIGENTE ............................6...............2........

...............33 3...................1..............1..35 3............ MODELAGEM. LINGUAGENS DE PROGRAMAÇÃO DE AGENTES .... LINGUAGENS DE COMUNICAÇÃO DE AGENTES .................................2.... CARACTERÍSTICAS QUE TORNAM UMA APLICAÇÃO APROPRIADA PARA AGENTES......29 3............................4....................... ...............4.......................... SISTEMAS MULTI-AGENTES ............................................34 3.........31 3............................2......................... FUNCIONAMENTO .............. AGENTES X OBJETOS .............................................1................ PROBLEMAS RELATIVOS À DEMANDA DE INFORMAÇÃO .............. RESOLUÇÃO DISTRIBUÍDA DE PROBLEMAS ...................2.............2..........................................................................6.............42 CAPÍTULO 5 – CONCLUSÃO .2...3......29 3..................... AGENTES E INTERNET... LINGUAGENS DE AGENTES ..............39 4........................3....................36 CAPÍTULO 4 – EXEMPLO DE AGENTE – AGENTE FLASH ............................................... INTELIGÊNCIA ARTIFICIAL DISTRIBUÍDA (IAD) ......1............................................24 3..28 3................................................................................. APRESENTAÇÃO .............................27 3................................ INSTRUMENTOS DE BUSCA E AGENTES INTELIGENTES .................26 3................4............48 .....5............46 CAPÍTULO 6 – REFERÊNCIAS BIBLIOGRÁFICAS ...............3.............3.................................................6.3...................39 4.....40 4...............6.........

..........................................23 3............3................................3..............................................1......44 4....................44 .............2........... INTERAÇÃO DE AGENTES COM O AMBIENTE ATRAVÉS DE SENSORES E REAGENTES .... ARQUITETURA BÁSICA DE UM AGENTE AUTÔNOMO BASEADA EM COMPUTADOR.............................26 4............. INTERFACE DIAL-UP .....17 2...............2...........43 4......10 2............ LISTA DE SITES FORNECIDA PELO USUÁRIO.........................................18 3.......1.......................................................................1................................... ORIGEM DA INTELIGÊNCIA ARTIFICIAL DISTRIBUÍDA................ TELA INICIAL DO AGENTE FLASH ......... CLASSIFICAÇÃO DE AGENTES QUANTO A ÊNFASE DADA A ALGUNS ATRIBUTOS PRIMÁRIOS ..................LISTA DE FIGURAS 2..................................................... TOPOLOGIA DE AGENTES ...2...................................

A Internet é um campo vasto onde os agentes se proliferam e nos ajudam nas mais diversas tarefas. acesso livre e quase ilimitado à informação. No meio de tantas informações e novidades. propostas de padrões e soluções fantásticas sugerindo possibilidades infinitas para a sua utilização. as mudanças tecnológicas ocorrem em uma velocidade visivelmente maior do que a velocidade com a qual conseguimos absorver as mesmas. sendo que como meros usuários. de comunicação e acima de tudo. a tecnologia de Agentes não está tão distante de nossa realidade. E nesse emaranhado de tecnologias e necessidades que surgiram nesse novo mundo. quebrar fronteiras. a vida de toda a humanidade: a Internet. surge uma tecnologia com ares de ficção científica. A Internet veio para mudar a maneira de viver de cada cidadão que tenha acesso a ela. O termo “Agente Inteligente” provém da inteligência artificial. . novas maneiras de comércio. sem sombra de dúvida. surgiu na última década algo que revolucionou.CAPÍTULO 1 INTRODUÇÃO É indiscutível que na atual realidade em que vivemos. sugerir novos conceitos. os “Agentes Inteligentes”. às vezes não tomamos conhecimento disso. No meio do “boom” da Internet. surgiram muitas outras tecnologias. Diferente do que possamos pensar.

como foi dito acima. Ela expõe ao usuário facilidades que são baseadas. e é neste capítulo em que são apresentadas os estudos que fundamentam a tecnologia de agentes. atualmente. que o software seja um assistente ao usuário. . Também serão visto neste capítulo as Linguagens que são utilizadas para desenvolvimento de agentes. linguagens essas divididas em: Linguagens de Comunicação de Agentes e Linguagens de Programação de Agentes.A tecnologia de agentes vem mudar radicalmente o modo como o usuário utiliza seu computador. Essa tecnologia é. assim como um comparativo entre Agentes e Objetos e um breve descritivo do uso de Agentes na Internet. a Inteligência Artificial Distribuída (IAD) e suas técnicas. Ao final do capítulo são apresentadas algumas áreas nas quais os agentes são aplicados. O trabalho está organizado como se segue. Ainda no segundo capítulo veremos as classificações adotadas para agentes inteligentes assim como as características de agentes e agentes inteligentes. O terceiro capítulo é sobre agentes inteligentes. permitindo. uma das áreas de pesquisas que representa um grande interesse em desenvolvimento de novas aplicações. O terceiro capítulo também apresentada de forma simples. No segundo capítulo será apresentado um breve histórico sobre agentes e em seguida serão apresentados conceitos fundamentais para a compreensão de todo o estudo que será feito. Esta tecnologia deverá aproximar ainda mais o usuário do seu computador. por exemplo. em conceitos de inteligência artificial.

. assim como o processo de modelagem e o funcionamento do mesmo.O exemplo de agente será visto no quarto capítulo. que dedica-se a explanação completa do agente.

através de um mecanismo denominado agentes. muitos termos estavam sendo usados para descrever agentes.CAPÍTULO 2 VISÃO GERAL DE AGENTES 2. uma barreira surgiu para a comunidade científica. Nicholas Negroponte. Vários pesquisadores como Marvin Minsk. passaram a estudar problemas que pudessem demonstrar algum tipo de comportamento dos agentes. taskbots. começou a explorar novas áreas onde sistemas de IA pudessem ter um domínio mais dinâmico. knowbots. . Entretanto. intelligent interfaces. Rodney Brooks e Pattie Maes. Era a comunidade de agentes de software. que estava explorando o desenvolvimento de partes de código menores e mais confiáveis. personal agents e network agents. Ao mesmo tempo. começaram a explorar as possibilidades de interações complexas com o mundo físico. Sendo que cada termo utilizado referenciava o papel exercido pelo agente.HISTÓRICO Durante os anos 80. a comunidade de Inteligência Artificial. Ao invés de olhar para resultados simulados. Oliver Selfridge. softbots. dentre outros. simbólicos em mundos artificiais. userbots. como: intelligent agents. adaptive interfaces.1. uma outra comunidade estava se formando usando também o termo agente. Alan Kay.

neste trabalho. Um agente é algo ou alguém que age em seu benefício. com sua permissão.DEFINIÇÃO DE AGENTES INTELIGENTES O termo agente é utilizado em muitas áreas da Ciência da Computação. mas será utilizada a definição mais aplicável para o contexto segundo o Novo Dicionário da Língua Portuguesa (HOLANDA FERREIRA. Nos últimos anos.1. . será examinada a definição das palavras “Agente” e “Inteligente/Inteligência” isoladamente e logo após apresentaremos um conceito formal sobre agentes inteligentes.2. Esta é uma palavra que sugere várias definições diferentes. provavelmente contratou um corretor para cuidar da procura para você.2. cada um de nós já usou algum tipo de agente em nossas vidas. 1975): Agente: aquele que trata de negócio por conta alheia. mas especialmente na área de Inteligência Artificial. Considerando esta definição.2. Se você um dia resolveu comprar uma casa. o termo tornou-se muito popular e tem sido usado de diversas maneiras. Para tornar mais clara toda a abordagem que será feita em torno dos Agentes Inteligentes. 2.Definição do termo “Agente” Será examinada inicialmente palavra “agente”. Se você pretende fazer uma viagem ou excursão. um agente de viagens pode resolver e preparar tudo para você. Até mesmo o contador que prepara o seu imposto de renda é seu agente.

Entretanto. • Os agentes são especializados em uma área em particular: Os agentes são cuidadosos e se preocupam em não ultrapassar os limites de seu conhecimento ou área de atuação. Imagino que você não ficaria nada feliz se o seu corretor na bolsa resolvesse vender todas as suas ações sem sua permissão. pode-se chegar a alguns pontos em comum (PALLMANN. você é o cliente e a sua vontade e seus interesses devem ser superiores a qualquer outro. por exemplo.É visível que os agentes executam as mais variadas tarefas. assim como a definição de agente segundo o Novo Dicionário da Língua Portuguesa (HOLANDA FERREIRA. se você orientasse o seu corretor para só vender algumas ações e em um determinado momento. e em conseqüência disso você tivesse um enorme prejuízo. Da mesma maneira o agente de software trabalha pra você e “defende” os seus interesses. 1999): • Os agentes agem em seu lugar: Agentes podem ser personalizados: se o software não está fazendo algo por/para você. ele só venderia as ações que ele é autorizado a vender e no momento específico. ele não pode ser chamado de Agente. • Os agentes agem com sua permissão: Os agentes executam somente as funções/tarefas autorizadas pelos seus clientes. Imagine. se um procurador seu muda um contrato que beneficiará somente a outra parte. 1975). mas como poderíamos transportar esta realidade dos agentes para o software? Quais são as qualidades pertinentes aos agentes de software e como poderíamos compará-los aos agentes humanos? Se você olhar os exemplos de agentes humanos anteriormente citados. Considerando mais um .

intelectualidade.Definição do(s) termo(s) “Inteligente/Inteligência” Já que. o seu agente precisa saber onde você quer ir e quais são suas preferências. E finalmente o seu agente tem que vislumbrar a melhor escolha de roteiro considerando todo o . 1975): Inteligência: faculdade de aprender. Uma pessoa que toma boas decisões ou faz boas escolhas é considerada inteligente. nós podemos assumir que os agentes inteligentes devem ser bons no que fazem. De forma simples. um agente de software representa você e seus interesses. O seu agente tem que saber quais são as opções disponíveis de roteiro assim como as opções não disponíveis. como usuários devemos evitar utilizar agentes em tarefas para as quais eles não foram preparados. atuam nas áreas para as quais eles foram preparados. Inteligente: que tem ou revela inteligência. percepção. Consideremos como exemplo um agente de viagens. Antes de mais nada. intelecto. Imagine se você pedisse para o seu agente de viagem fazer o seu imposto de renda ou até mesmo um balancete de sua empresa. apreensão. absurdo não? Os agentes são especializados. sabe-se o que é um Agente. Agentes fazem somente as coisas que você diz que tem que fazer. de forma resumida.2. A partir disso.2. serão examinadas as definições das palavras “Inteligente/Inteligência” dentro de nosso contexto segundo o Novo Dicionário da Língua Portuguesa (HOLANDA FERREIRA. 2. apreender ou compreender.exemplo de agentes humanos.

Tenhamos em mente que um agente de software mal concebido/desenvolvido pode tornar a vida de uma pessoa que depende dele bem complicada.perfil que você forneceu a ele. no mínimo esperamos que eles sejam os melhores no que fazem. Afinal. O fato de usarmos a palavra “inteligente” só reforça esta idéia. humanos ou não. Os agentes devem ser bons no que fazem ou então ninguém fará uso deles. os agentes nos representam em nossa ausência e tomam atitudes que nos afetam. Quando definimos a palavra “agente” há alguns momentos. a nossa expectativa em torno da competência deles é a mesma. nós comentamos a respeito da especialização. que surge como um dos pontos da competência. Se pensarmos nisso vê-se que sempre esperamos o máximo de competência de qualquer profissional que se propõem a fazer um trabalho. . Com agentes. isto indiscutivelmente requer um balanço cuidadoso de todos os prós e contras da situação.

Estar situado em um ambiente corresponde a capacidade do agente de receber entrada através de sensores do ambiente e executar ações que alterem o mesmo de alguma maneira através de reagentes. (Figura. em que a capacidade de aprendizado do agente é muito importante e em outras não.” Ted Selker. esta se faz necessária para que o termo não acabe por perder seu significado. que é o que determina o tipo de ação do agente. 2. existem situações.2. De forma mais clara. por exemplo. autonomia e flexibilidade. Centro de pesquisas da IBM em Almaden (SILVA e MENESES. aplicam-se em diferentes contextos de atuação. devemos atentar para o fato de que certas características.3.DEFINIÇÃO DE AGENTE INTELIGENTE “Um agente é um software que sabe fazer coisas que provavelmente você faria você mesmo se tivesse tempo. 2001). concorda-se que a “autonomia” é seu ponto principal (SILVA e MENESES.1) . Considerando este ponto. 2001) A definição de agentes é um assunto sobre o qual não existe um consenso único. Existem três conceitos nesta definição: ambiente. Embora não exista uma definição genérica formada para agentes. Contudo. às vezes é até indesejável.2. a fim de satisfazer seus objetivos de projeto”. WOOLDRIDGE (1999) define agente como: “Um agente é um sistema de computador que está situado em algum ambiente e que é capaz de executar ações autônomas de forma flexível neste ambiente.

com outros agentes artificiais ou humanos para completar suas próprias soluções de problemas ou ajudar outros com suas atividades. 1995) Autonomia. • Pró-ativo: agentes não devem simplesmente atuar em resposta ao ambiente.1 . 2. reativo. 2.Figura. são suficientes para classificar um agente como inteligente.CARACTERÍSTICAS DE AGENTES INTELIGENTES .3. próativo e social. flexibilidade significa que o sistema é: • Reativo: agentes devem perceber seu ambiente e responder oportunamente às mudanças que ocorrem nele. significa dizer que o sistema pode executar tarefas sem o intermédio do usuário e que possui o controle de suas ações e de seu estado interno. Segundo WOOLDRIDGE (1999) as três características citadas. quando apropriado. devem exibir um comportamento oportunista e direcionado ao seu objetivo e tomar a iniciativa quando apropriado. A “flexibilidade” das ações é o que distingue um agente de um programa de controle de processos. • Social: agentes devem interagir.Interação de Agentes com o ambiente através de sensores e reagentes (RUSSEL e NOVIG. aqui. Segundo JENNINGS (1998).

que aborda as características comuns aos Agentes e Agentes Inteligentes. um usuário através de uma interface gráfica. são (WOOLDRIDGE e JENNINGS. Agentes e Agentes Inteligentes possuem características independentes. Para tornar mais clara essa “separação”.3. reatividade. as características serão apresentadas em dois tópicos: Características Gerais de Agentes. e Características Específicas de Agentes Inteligentes. • Habilidade Social: interagem com outros agentes e em alguns casos com seres humanos por algum tipo de linguagem de comunicação.Características Gerais de Agentes Alguns atributos que caracterizam os agentes de forma geral.1. que como o próprio título diz. • Reatividade: percebem seu ambiente (que pode ser o mundo físico. segundo WOOLDRIDGE (1999). pró-atividade e sociabilidade são características suficientes para que um agente seja considerado inteligente. . outros agentes. 2.Como foi citado anteriormente. Em alguns casos o agente fica em stand-by e só é ativado se algum evento específico ocorrer no ambiente. Apesar disto. 1995): • Autonomia: atuam sem a necessidade de interferência do usuário e possuem algum tipo de controle sobre suas ações e seu estado interno. a Internet ou talvez tudo isto combinado) e respondem às mudanças ocorridas. aborda as caracteríticas presentes somente nos Agentes Inteligentes.

Geralmente os pesquisadore querem que um agente seja um sistema de computador que. consideram que o termo agente possui um significado muito mais amplo do que o significado citado anteriormente. e em qual ordem e de que modo devem ser executadas. • Continuidade Temporal: executam continuamente processos que tanto podem estar ativos. deve ser feita pelo próprio agente. A decisão de como uma tarefa é melhor subdividida em tarefas menores. como: Psicologia. métodos de trabalho e preferências de seus usuários. • Orientação a Objetivos: deve ser capaz de lidar com tarefas complexas em alto nível.3. eles são capazes de atingir suas metas tomando iniciativas para o cumprimento das mesmas. em foreground. sejam implementados usando conceitos que são mais bem aplicáveis aos humanos. Sociologia e Ciência da Computação. 2. . em background.Características Específicas de Agentes Inteligentes Atualmente os "Agentes Inteligentes" são pesquisados em vários campos. quanto adormecidos. além de ter as características identificadas anteriormente. • Autonomia: é a capacidade do agente operar separadamente e decidir o que fazer enquanto opera separadamente. Alguns pesquisadores. 1998): • Adaptabilidade: um agente deve ser capaz de ajustar-se aos hábitos.2. que trabalham no campo da Inteligência Artificial. Os agentes que se enquadram nesse grupo têm uma ou mais das seguintes características (GIESE.• Pró-Atividade: não agem simplesmente em resposta ao seu ambiente.

Benevolência: é a suposição de que os agentes não têm objetivos contraditórios e que todo agente consequentemente sempre tentará fazer o que lhe é solicitado;

Colaboração: um agente não deve aceitar (e executar) instruções sem considerações, ele deve levar em conta que o usuário humano comete erros, omite informações importantes e/ou fornece informações ambíguas. Neste caso, um agente deve checar estas ocorrências fazendo perguntas ao usuário. Deve ser permitido a um agente recusar executar certas tarefas que possam sobrecarregar a rede ou causar danos a outros usuários;

Comunicabilidade: também chamado de habilidade social. Um agente deve ser capaz de se comunicar com outros agentes, usuários, objetos e seu ambiente;

Degradação Gradual: é a capacidade do agente executar parte de uma tarefa quando existe incompatibilidade na comunicação ou domínio. No contexto das noções de risco, agentes trabalham melhor quando apresentam esta característica;

Flexibilidade: um agente deve ser capaz de fazer uma escolha dinâmica das ações e da seqüência de execução das mesmas, em um determinado estado do ambiente;

Inteligência: é o conjunto de recursos, atributos e características que habilitam o agente a decidir que ações executar, bem como a capacidade de tratar ambigüidades. O raciocínio desenvolve-se através de regras, conhecimento e evolução artificial;

Mobilidade: é a habilidade de um agente se mover pela rede;

Planejamento: é a habilidade de sintetizar e escolher entre diferentes opções de ações desejadas para atingir os objetivos;

Pró-Atividade:

um

agente

deve

exibir

oportunismo

e

comportamento direcionado a objetivos; • Reatividade: um agente deve perceber o ambiente e responder às modificações que ocorrerem nele; • Representabilidade: um agente deve representar o usuário em suas ações.

2.4.CLASSIFICAÇÃO DE AGENTES INTELIGENTES

Apesar de toda a polêmica que ronda o desenvolvimento de agentes, o estudo quanto a sua usabilidade e aplicabilidade continua, e deste estudo surgiram classificações que nos permitem visualizá-los de uma forma mais ampla. Essas classificações são, por exemplo: quanto ao nível de inteligência, quando à tarefa que executam, quando à mobilidade, quanto à aquisição de inteligência, e quanto à ênfase dada a alguns atributos primários. 2.4.1.Quanto ao Nível de Inteligência

Conforme SOUZA (1996), as aplicações com agentes apresentam diferentes níveis de inteligência, podendo ser classificados nos seguintes níveis: • Baixo - neste nível, os softwares agentes desempenham tarefas rotineiras, disparadas por eventos externos. Estes agentes executam redes de regras complexas, não se adaptam a mudanças e não demonstram oportunismo com o passar do tempo;

Médio - estes agentes utilizam uma base de conhecimento para desenvolver raciocínio em eventos monitorados. Podem adaptar-se a mudanças de condições na base de conhecimento e manipular as novas condições, porém, normalmente não demonstram

oportunismo; • Alto - neste nível de inteligência, os software de agentes utilizam tanto aprendizado quanto raciocínio na base de conhecimento. Aprendem com o comportamento do usuário, podem adaptar-se à mudanças e demonstram oportunismo com o passar do tempo.

2.4.2.Quanto à Tarefa que Executam

De acordo com JENNINGS (1995), os agentes podem ser classificados quanto à tarefa que executam, da seguinte forma: • Gopher - são agentes que executam tarefas mais simples, baseandose em suposições e regras pré-especificadas. Por exemplo, o agente pode avisar o usuário que ele possui uma reunião marcada para sexta-feira as 14:00 hs; • Prestadores de Serviço - são agentes que executam tarefas de alto nível, bem definidas, quando requisitadas pelo usuário. Estes agentes podem organizar uma reunião (negociar datas e horários da reunião com os participantes); • Pró-Ativo - são agentes que desempenham as tarefas mais complexas, eles podem pesquisar informações, filtrar dados ou até mesmo executar tarefas para o usuário sem que o mesmo as

2. em resposta ao estado atual do ambiente no qual estão inseridos.Quanto à Mobilidade De acordo com NWANA (1996). os agentes podem ser classificados de acordo com sua capacidade de se mover na rede em: • Agentes Estáticos . • Agentes móveis . ou seja. diferentemente dos deliberativos.são agentes que possuem a habilidade de se mover pela rede. atuam localmente. segundo NWANA (1996) eles podem ser deliberativos e reativos. um agente pode monitorar novos grupos sobre a Internet e retornar discussões que ele acredita serem de interesse do usuário. sempre que isto for julgado apropriado.Quanto à Aquisição de Inteligência Dentro da classificação de agentes quanto à aquisição de inteligência. executam apenas quando estimulados. Agentes deliberativos são aqueles que possuem um modelo de raciocínio e um modelo simbólico e interno. . Eles não possuem um modelo simbólico e interno dos mesmos.4. Por exemplo. Agentes reativos. Eles também são denominados reflexivos. utilizado para tomar decisões e executar tarefas necessárias para alcançar seus objetivos.3.são agentes que não podem se mover pela rede.4. 2.4. existem duas categorias. Estes agentes também são chamados de simbólicos ou cognitivos.requisite.

Por exemplo.2.2 . (Figura. agentes de aprendizado colaborativo. 1996).3). . possuem mais ênfase sobre as propriedades de cooperação e autonomia do que sobre aprendizado. (Figura. isto não quer dizer que os agentes deliberativos nunca aprendem.QUANTO A ÊNFASE DADA A ALGUNS ATRIBUTOS PRIMÁRIOS De acordo com NWANA (1996). os agentes deliberativos.5.2). reforça a idéia de que estas diferenças não são definitivas.6. e autonomia) em: agentes inteligentes.Classificação de Agentes quanto a ênfase dada a alguns atributos primários (NWANA. NWANA (1996). 2. agentes de interface e agentes colaborativos. aprendizado. 2. baseando-se nas classes de agentes apresentadas anteriormente podem ser identificados vários tipos de agentes. 2. 2. os agentes podem ser classificados levando em conta a ênfase dada para alguns atributos primários e considerados ideais (cooperação. Agentes Inteligentes Agentes de Aprendizado Colaborativo Cooperação Aprendizagem Autonomia Agentes Colaborativos Agentes de Interface Figura.Classificação Geral dos Agentes Conforme NWANA (1996).4.4.

e são capazes . 1996). Agentes de interface são agentes que interagem com o usuário. recebendo especificações do usuário e entregando resultados.Agente Agentes Colaborativos Agentes Autônomo Sistemas de Agentes Heterogêneos Agentes Móveis Agentes de Informações Agentes Reativos Agentes Híbridos Agentes de Interface Figura. • De Interface: Enfatizam autonomia e aprendizado para executar suas tarefas. Os agentes podem ser classificados em: • Colaborativos: Focalizam autonomia e cooperação (com outros agentes) para executar suas próprias tarefas. • De Informação: Agentes de informações são agentes que acessam uma. o qual pode ser despachado remotamente de um computador cliente e transportado para um computador servidor para a sua execução.Topologia de Agentes (NWANA.3 . Geralmente agentes colaborativos podem negociar para alcançar um consenso sobre alguma questão. 2. Eles podem aprender. • Móveis: Agentes móveis são programas escritos tipicamente em uma linguagem script. mas não é dado muita ênfase a esta característica em suas operações. e potencialmente muitas fontes de informações.

• Autônomos: Agentes autônomos são agentes que podem interagir independente e efetivamente com seus ambientes. Abaixo são listadas as aplicações onde os Agentes de software fazem-se mais presentes. e exemplos de ferramentas utilizadas nestes domínios: . Não precisam necessariamente do usuário. os quais pertencem a duas ou mais classes de agentes diferentes. • Reativos: São agentes que executam tarefas quando estas são solicitadas pelo usuário.de colecionar e manipular informações obtidas destas fontes para responder consultas solicitadas pelo usuário ou outros agentes. 2. ou seja possuem determinado comportamento quando estimulados. • Sistemas Heterogêneos: Sistemas de Agentes Heterogêneos.ÁREAS DE APLICAÇÃO O crescimento do estudo em torno dos Agentes fez com que a indústria de software despertasse para as mais variadas possibilidades de aplicações para os mesmos. Um sistema de agente heterogêneo pode também conter um ou mais agentes híbridos. • Híbridos: Agentes híbridos são os agentes que combinam a filosofia de um ou mais tipos de agentes. Sistemas de Agentes Heterogêneos também são entendidos como sistemas multi-agentes. referem-se a um conjunto de dois ou mais agentes.5.

• Comércio Eletrônico: O BargainFinder é um agente que compara lojas virtuais na Internet para encontrar o melhor preço para um determinado CD. Para minimizar as perdas durante o transporte de energia.é responsável pelo gerenciamento de energia. Neste sistema. e é dado um feedback . Sistema Especialista Agente para Análise de Alarmes não Cronológicos Existentes. a voltagem é alta (132 kV ou mais). Um agente NewT é treinado fornecendo a ele uma série de exemplos. O agente começa a oferecer sugestões para o usuário. 1995). 1995). o qual é um processo de monitoração e controle do ciclo de geração. Supervisor de Breakers e Relés. antes de ser colocada em uma rede de transporte. • Internet: NewT . Agente de Restauração de Serviço e Agente de Interface do Usuário (JENNINGS. transporte e distribuição de energia elétrica para consumidores industriais e doméstico. baseado nestas informações o agente realiza uma procura nas lojas virtuais existentes. a voltagem é diminuída e a eletricidade é enviada aos consumidores usando uma rede de distribuição. Finalmente. Interface do Sistema de Controle pré-existente. • Indústria: CIDIM (Sistema de Gerenciamento Distribuído de Eletricidade) . o usuário informa ao agente os dados referentes ao CD que gostaria de comprar. comparando o preço para obter o CD mais barato (NISSEN. Este sistema é composto pelos seguintes agentes: Identificador da área de blackout.é um filtro de notícias da USENET. artigos ilustrativos que o usuário escolheria ou não para ler.

• Simulação: HOMER . e a flexibilidade de permitir ao sistema distribuído uma degradação mais suave (BUSUIOC e GRIFFITHS. As características mais notáveis deste processo são: é distribuído e sujeito a falhas. 1994). mas representar uma extensão de seus desejos: o objetivo é do agente ser capaz de trazer para o usuário artigos que sejam de seu interesse (WOOLDRIDGE e JENNINGS. As principais funções realizadas pelos agentes são: estabelecimento e restauração de rotas em uma rede física e satisfação das necessidades do cliente. Instruções podem conter referências temporais sofisticadas moderadamente. 1995). o qual existe em “mundo marítimo” de duas dimensões.é um agente desenvolvido com o objetivo de simular um robô submarino. suporta a possibilidade de melhorar a performance sobre o sistema centralizado e o escopo de redução da quantidade total de dados passados para um ponto central. Ele executa instruções do usuário limitadas a um subconjunto de palavras em inglês com aproximadamente 800 palavras. sobre o qual ele possui somente conhecimento parcial. O agente NewT não pretende remover a escolha humana. Este agente possui uma memória episódica . • Redes de Comunicação: Uma comunidade aberta de diferentes agentes que cooperam para solucionar uma variedade de problemas em um sistemas de gerenciamento de redes de telecomunicações complexo é descrita.sobre suas sugestões. e planejamento do fornecimento e restauração do serviço.

1995).limitada. e utiliza isto para ser apto para responder questões sobre suas experiências passadas (WOOLDRIDGE e JENNINGS. .

Isto determina a forma como os agentes devem ser decompostos para a construção de um conjunto de módulos-componentes e como estes módulos podem interagir entre si.1). todos os agentes autônomos baseados em computador possuem mais ou menos a mesma arquitetura.CAPÍTULO 3 AGENTES INTELIGENTES 3.Arquitetura Básica Conforme DAVIDSSON (1992).1 .1.1. O conjunto total dos módulos e suas interações providenciam uma resposta para a questão de como sensores de dados e o estado interno do agente determinam as ações e futuros estados internos do agente. p i964g4c9b` h a fe d a F Y WXVT44PH6GE U SR Q I F # " ¢!¤   ¥©§¥¢£¤¡¢  ¡¨ ¦ 1 5 @8 5 3 2 1 DC62¤BA9764!!0 ' ( ' & % ¤)§¢¤$ . 3.ARQUITETURA DE AGENTES Segundo WOOLDRIDGE e JENNINGS (1995) a arquitetura de agentes envolve técnicas e algorítmos utilizados por uma metodologia específica para a construção de agentes.Arquitetura básica de um Agente Autônomo Baseada em Computador (DAVIDSSON. (Figura. 1992). 3. 3. Figura.1.

A seguir. • Mecanismo de Inferência .CARACTERÍSTICAS QUE TORNAM UMA APLICAÇÃO APROPRIADA PARA AGENTES. o agente necessita desenvolver habilidades para executá-la aprendendo melhores ou novos meios. Sensores . 1994): • Adaptação: Tarefa que requer um certo grau de adaptabilidade.as setas simbolizam o fluxo de dados. desejos e objetivos pessoais do usuário. as características especificadas por Andrew Wood (WOOD. O que também inclui métodos para evitar falhas e se adaptar as necessidades.A seguir é apresentado uma breve descrição sobre cada uma das partes que compõe a arquitetura do agente: • • Setas .os sensores recebem informações do ambiente e providenciam dados para o mecanismo de inferência. • Atuadores . o mecanismo de inferência opera sobre conjuntos de regras e execução de raciocínio simbólico complexo para determinar como reagir ao evento e qual ação executar. 3.o mecanismo de inferência é o cérebro do agente inteligente. pode-se identificar um conjunto de características que tornam uma tarefa ou aplicação apropriada para ser abordada com base na tecnologia de agentes. • Base de Conhecimento . Tomando como bases as características comuns dos agentes.os atuadores são responsáveis pela execução das ações do agente sobre o ambiente. .é o local onde o agente armazena seu conhecimento. Quando notificado de algum evento.2.

O agente poderia fazer críticas construtivas ao modo de trabalhar do usuário. por outro lado. Este intervalo poderia ser devido ao processamento de grandes quantidades de informação ou mesmo a falta de informações vitais para o processamento em um determinado momento. • Autonomia: A tarefa requer atenção constante ou regular.• Pesquisa: A tarefa não é completamente definida. o agente deve considerar uma grande quantidade de soluções. onde uma mudança no comportamento poderia gerar a execução automática de alguma tarefa ou ação. • Ajuda: A tarefa requer um certo grau de cooperação entre o usuário e o agente. ou dar " dicas " sobre com o utilizar melhor os recursos do sistema. delegar esta tarefa seria muito útil e benéfico. Isto inclui ensinar os usuários a usar ferramentas de software de maneira mais eficaz e também. mas pouca ou nenhuma entrada ou interação. Dessa forma. 3.INTELIGÊNCIA ARTIFICIAL DISTRIBUÍDA (IAD) . fornecer explicações de que o próprio agente está fazendo. • Assincronia: A tarefa tem um intervalo significativo entre seu início e término. • Demonstração: A tarefa envolve aprendizado e treinamento.3. Um exemplo seria o monitoramento de sistemas simples. escolhendo a melhor de acordo com sua experiência.

espacialmente. 1997).Origem da Inteligência Artificial Distribuída (STONE e VELOSO. 3. consiste na possibilidade de utilizar mais de um processador para trabalhar sobre um problema computacional (STONE e VELOSO. da Computação Computação Distribuída IAD Inteligência Artificial Inteligência Artificial Distribuída Figura. no momento. Inteligência Artificial Distribuída distingue-se do paradigma simbólico representante da Inteligência Artificial Tradicional nos seguintes aspectos: • Inteligência Artificial .2 . é a interseção Distribuída 1 (CD) e da Inteligência Artificial 2 (IA). . 2 Inteligência Artificial é o estudo de como fazer os computadores realizarem coisas que. é o estudo e projeto de sistema em que vários agentes interagem. estando voltada para a construção de um programa inteligente. 1993). (Figura 3. onde podem ser de chamados autônomos e inteligentes (STONE e VELOSO. 1997). Inteligência Artificial Distribuída.A Inteligência Artificial Distribuída (IAD). 1997). as pessoas fazem melhor (RICH e KNIGHT.2).Preocupa-se com a representação do conhecimento e métodos de inferência. ou algumas vezes. distribuindo-se logicamente. De acordo com SOUZA (1996). 1 Computação Distribuída.

o resultado de diferentes sub-tarefas são combinadas. Este gerenciamento de informações consiste em: • • decomposição de tarefas. . síntese de solução. Na decomposição de tarefas.Resolução Distribuída de Problemas Os Sistemas de Resolução Distribuída de Problemas. trabalham com o gerenciamento de informações. Ainda de acordo com STONE e VELOSO (1997).3. conforme STONE e VELOSO (1997).1.Preocupa-se com a interação e o comportamento social. uma tarefa complexa é dividida em diversas sub-tarefas e enviadas para processadores diferentes. Já na síntese de solução. Inteligência Artificial Distribuída divide-se em duas áreas: Resolução Distribuída de Problemas (RDP). estando voltada para a construção de uma sociedade de programas inteligentes. 3.• Inteligência Artificial Distribuída . e Sistemas Multi-Agentes (SMA).

permitindo que os agentes possam: pedir informações de outros agentes. uma abordagem que promova a união delas seria mais prática. a pergunta que surge é: Como os agentes devem ser organizados para conseguirem maior interação entre si? Duas abordagens diferentes tem sido exploradas: • • comunicação direta . coordenação auxiliada.os agentes mesmos cuidam da coordenação.2. É um sistema em que os agentes não se comunicam diretamente entre si. mas fazem uso de um “intermediário”.Sistema Multi-Agentes Ainda conforme STONE e VELOSO (1997).3. LINGUAGENS DE AGENTES . na qual há programas especiais para organizar a coordenação. que se encarrega de se comunicar entre os diversos supervisores e estes por sua vez. 3.3. O supervisor precisará suportar alguns requisitos básicos.4. uma espécie de supervisor. observar e saber das atividades de outros agentes. Utiliza-se então a abordagem chamada de sistema federado. Apesar das duas abordagens serem interessantes. encarregam-se da comunicação entre seus agentes. interceptar e mudar os pedidos destinados a outros agentes e estabelecer comunicação com agentes sob o controle de outros supervisores. uma vez que existe a linguagem de comunicação (ou protocolo) e a capacidade de construir agentes está disponível.

Para desenvolver agentes inteligentes são utilizados dois tipos de linguagens: linguagens de comunicação de agentes e linguagens de programação de agentes (GIESE. Apple Events.1.Linguagem de Comunicação de Agentes Conforme GENESERETH e KETCHPEL (1994). Linguagens script (tal como TCL. existem várias linguagens propostas para realizar a comunicação entre agentes. muitos protocolos de coordenação tais como protocolo de redes de contrato tem sido propostos. suposições. e Telescript) são baseadas nesta aproximação. são descritas algumas destas linguagens: • Agent Talk: É uma linguagem de descrição de protocolos de coordenação para sistemas multi-agentes. A linguagem ACL é baseada nesta aproximação. 1998). e o gosto). Atualmente. • Aproximação Declarativa . e muitos . existem duas aproximações populares para o projeto de uma linguagem de comunicação de agente: • Aproximação Procedural . 3.4.é baseada na idéia de que a comunicação pode ser melhor modelada com trocas de diretivas procedurais. A seguir.é baseada na idéia que a comunicação pode ser melhor modelada com trocas de sentenças declarativas (definições. Na área de Inteligência Artificial Distribuída.

onde baseia-se na idéia que a comunicação pode ser modelada melhor com a troca de sentenças declarativas (definições. suposições e gostos) (IBM. definidos coordenação incrementalmente e serem facilmente personalizados para ajustar-se ao domínio da aplicação incorporando um mecanismo de herança (FININ. 1997). representação de regras de raciocínio não monotônicos e definição de objetos. utilizada para representar o conhecimento sobre a representação de conhecimento.é uma linguagem baseada na aproximação declarativa. seu vocabulário (dicionário de palavras apropriadas para áreas de aplicações comuns). O propósito de KIF é proporcionar o . Possui uma semântica declarativa. uma “linguagem interna” KIF e uma “linguagem externa” KQML. 1994). ACL é composta de três partes. • ACL: Agent Communication Language / Linguagem de Comunicação do Agente . funções e relações. • KIF: Knowledge Interchange Format / Formato de Troca de Conhecimento é uma linguagem formal para troca de conhecimento entre programas disparados. Uma mensagem ACL é uma expressão KQML no qual os argumentos são termos ou sentenças em KIF formadas de palavras do vocabulário ACL (GENESERETH e KETCHPEL.protocolos para aplicações específicas serão requeridos quanto mais softwares Permite de protocolos agentes de forem serem construídos. e compreendida logicamente. 1995).

Pode ser utilizada por um programa para interagir com um sistema inteligente ou para o compartilhamento de conhecimento por dois ou mais sistemas inteligentes para resolução de problemas cooperativamente.é uma linguagem e protocolo para troca de informações e conhecimentos. • KQML: Knowledge Query and Manipulation Language / Linguagem de Manipulação e Consulta de Conhecimento . 3. 1997). Algumas das Linguagens de Programação de Agentes são linguagens utilizadas para o desenvolvimento de aplicações comerciais.4. .desenvolvimento independente de programas de manipulação de conhecimento (FININ.Linguagem de Programação de Agentes Linguagem de Programação de Agentes é a linguagem com que é desenvolvido um agente.2. são relacionadas algumas linguagens de programação existentes: • Java: É uma linguagem de programação similar em sintaxe ao C++. mas similar em outros meios com Smalltalk e Objective C. KQML concentra-se a um conjunto extensivo de primitivas as quais define as operações permitidas que os agentes podem realizar sobre o conhecimento e objetivos de cada outro agente (FININ. O sistema inclui um compilador de código de byte e uma máquina virtual. 1997). A seguir.

chamadas de . mesmo onde um programa é distribuído através da rede (ITA. incluindo atribuição de variáveis. • Obliq: É uma linguagem interpretada e orientada a objetos com suporte para computação móvel. tal como agente móvel. e utilizado como um bit para processamento de textos e roteiros administrativos que freqüentemente utilizam Perl (FININ. tais como sistemas de conferência distribuída. jogos em rede. Tcl suporta muitos dos fatores das linguagens procedurais convencionais. interativas e em larga escala. • Tcl/Tk: É um sistema de programação de fácil utilização. Um programa escrito em LALO é traduzido em código fonte C++. • Python: É uma linguagem script orientada a objetos no espírito do ABC e Modula-3. Obliq mantém seu escopo léxico. e ferramentas de trabalho colaborativo (FININ. para depois ser compilado. e utiliza KQML para comunicação entre agentes (FININ. O sistema Tcl/Tk pode ser configurado para trabalhar cooperativamente com outra linguagens tal como C ou C++. É utilizado como um bit em uma linguagem estendida/embutida em projetos hypermídia. 1997).• LALO: É uma linguagem de programação orientada a agentes e um ambiente para desenvolvimento de sistemas multi-agentes. • Phantom: É uma linguagem interpretada projetada para aplicações distribuídas. 1997). 1997). enquanto Tk é um conjunto de objetos gráficos. 1997). O Tcl é a linguagem de programação básica.

próatividade e sociabilidade) e o modelo padrão de orientação a objetos não diz nada sobre este comportamento. . 3. 2001). Na verdade existem algumas semelhanças e muitas diferenças entre agentes e objetos.procedures. • Agentes são capazes de comportamento flexível (reatividade. conforme cita (WOOLDRIDGE. 1996). 1996). ou métodos neste estado e se comunicam através de mensagens.AGENTES X OBJETOS Quem trabalha com orientação a objetos pode pensar por um momento que Agentes são na verdade objetos pensantes. no entanto. 1999): • Agentes incorporam uma noção mais forte de autonomia que os objetos. É uma linguagem de programação remota orientada a objetos o qual divide todos os processos em agentes e locais. e permite comunicação entre processos (NOSCHANG. decidem por eles mesmos se executam ou não uma ação a pedido de outro agente. são habilidosos na execução de ações. • Telescript: É um software para construção de aplicações distribuídas utilizando agentes móveis. As diferenças.5. se mostram mais fortes do que se imagina. e possui acesso fácil para objetos gráficos (TCL. em particular. estruturas de controle. Objetos podem ser definidos como entidades de software que encapsulam um estado. As semelhanças são muito claras: modularidade e controle sobre seu estado interno (SILVA e MENESES.

exigindo conhecimento especializado para sua utilização. acompanhando as várias melhorias e facilidades oferecidas pela Internet. A Internet é um enorme “banco de dados” acessível mundialmente. • Complexidade dos serviços oferecidos. alguns problemas: • A rede é lenta nas respostas às solicitações dos usuários e facilmente congestionável pelo excesso de pedidos. POUCA GENTE SABE. ou seja. foi uma das maiores revoluções da humanidade. ela promove melhorias e facilidades jamais vistas. Porém. A Internet apresenta-se como um ambiente apropriado para a utilização de agentes inteligentes. OU SEJA.6. 3. EXISTEM TEMPLATES E PACOTES PARA PROGRAMAÇÃO DE AGENTES EM LINGUAGENS COMO JAVA (EX. trabalha com vários processos. 1 http://java. JAT – JAVA AGENT TEMPLATE1). como foi citado anteriormente.Agentes e Internet É fato que a Internet. e cada thread (processo) é controlado por pelo menos um agente. PODEMOS TIRAR PROVEITO DAS SEMELHANÇAS PARA EXPLICITAMENTE PROGRAMAR AS CARACTERÍSTICAS DE AGENTES NÃO PREVISTAS NO MODELO DE ORIENTAÇÃO A OBJETOS.edu . surgiram junto.• Um sistema multi-agentes é inerentemente multi-thread .stanford. EM LINGUAGENS ORIENTADAS A MAS NADA IMPEDE QUE AGENTES SEJAM PROGRAMADOS OBJETOS.

Estes métodos são baseados no princípio do que é conhecido e qual informação está disponível e onde exatamente pode ser achada. o usuário verá se a informação solicitada pôde ou não ser encontrada no banco de dados. 3. mas freqüentemente somente partes podem ser recuperadas.1. perde-se um tempo extraordinário tentando encontrar estas informações e .• O usuário pode receber como respostas. • Obtenção de informações irrelevantes junto às solicitadas. Dificuldade para usuários leigos operarem os diversos serviços de informação oferecidos pela WWW.Problemas relativos à demanda de informação A informação disponibilizada pela Internet é muito vasta e quanto solicitada provavelmente estará disponível em algum ou em vários lugares distintos. Para fazer isto possível. • • Interrupção na transmissão. Na Internet esta estratégia falha e as razões para isto são: . ou algumas vezes não se consegue nada. os mecanismos de busca convencionais não parecem ser capazes de sanar tais problemas. endereços desatualizados ou incompletos. são utilizados sistemas de informação e banco de dados providos com grande quantidade de índices para proporcionar ao usuário a informação desejada. Em muitas situações. Com o auxílio de tais índices. em geral.6.

Qualquer pessoa que quer usar e/ou oferecer informação ou serviços na Internet. • A natureza dinâmica da informação na Internet: a informação que não pode ser achada hoje. 3.2. Abaixo são apresentadas as características dos instrumentos de busca atualmente utilizados e em seguida as melhorias que a ulitização de agentes oferece: As características do instrumentos de busca atuais são: . a informação que estava disponível.Instrumentos de busca e agentes inteligentes Embora os instrumentos de busca na Internet sejam um valioso serviço. pode estar disponível amanhã. E o contrário também acontece. A utilização de agentes para executar buscas na Internet apresentam certas vantagens comparadas aos atuais métodos.• A natureza dinâmica da própria Internet: não há nenhuma supervisão central no crescimento e desenvolvimento da Internet. pode desaparecer de repente. • A informação e os Serviços de Informação na Internet são muito heterogêneos: a informação na Internet está sendo oferecida em muitos tipos diferentes de formatos e de formas diferentes. os agentes poderão ser o único modo eficiente para procurar na Internet. eles também apresentam algumas desvantagens. é livre para fazê-lo. Considerando que no futuro o ritmo de crescimento da informação será sempre maior.6. Uma solução para este problema seria o uso dos "Agentes Inteligentes".

Estes instrumentos não aprendem com estas buscas e não são capazes de ajustar estas informações para seus usuários. • O mapeamento é realizado pela coleta de (meta-)informações a partir das informações e documentos que estão disponíveis na Internet. recuperando informações irrelevantes. dando uma localização desconhecida ou desaparecida. quando as palavras chaves são muito grandes ou muito pequenas. • A procura por informação é limitada freqüentemente a poucos serviços da Internet. • A informação na Internet é muito dinâmica: os instrumentos de busca freqüentemente referem-se às informações que foram movidas de um lugar para outro. As consultas estarão sujeitas a erros. .• Uma busca de informação é baseada em uma ou mais palavras chaves informadas pelo usuário. É um método muito demorado que causa muito tráfego de dados e não considera a natureza dinâmica da Internet e das informações que podem ser encontradas nela.

• Os agentes podem criar a sua própria base de conhecimento sobre fontes de informação disponíveis na Internet. . Além disso. Isto os habilitará a executar buscas de informação de forma mais rápida e eficiente. • Os agentes assistem o usuário nas suas necessidades. • Agentes se ajustam de acordo com as preferências e desejos dos usuários. que é atualizada e ampliada depois de toda busca. no futuro. Isto conduzirá a agentes que mais e mais se auto ajustarão. reduzindo o tráfego na rede. utilizando ferramentas que possibilitam a pesquisa em termos relacionados ou até mesmo através de conceitos. agentes serão capazes de comunicar e cooperar com outros agentes. aprendendo através das tarefas executadas e do modo como os usuários reagem aos resultados encontrados.A utilização de agentes oferece as seguintes melhorias: • Os agentes são capazes de buscar informação de forma mais inteligente. não precisando se preocupar como os vários serviços da Internet são operados.

alerta o usuário da alteração efetuada e executa o browser Web para a exibição do site. será apresentado o agente FLASH. a necessidade de se manter atualizado e a “facilidade” com que a Internet permite o acesso a estes conteúdos fez com que o usuário se perdesse entre sites e mais sites com os mais variados conteúdos. . APRESENTAÇÃO Como já foi dito anteriormente.1. Agora a história da sociedade moderna pode ser divida em dois períodos: “antes da Internet” e “depois da Internet”. a ascensão da Internet mudou completamente a forma como a sociedade analisa o seu processo evolutivo. O fato da Internet ter alcançado o usuário doméstico fez com que ela sofresse uma radical expansão tornando-a. O FLASH é um software que monitora uma lista de sites determinada pelo usuário. por assim dizer. sem que sofra “stress tecnológico”. checa alterações no conteúdo do site.Capítulo 4 Exemplo de Agente – Agente Flash 4. Tendo em vista a real necessidade do usuário poder ter acesso ao conteúdo que deseja. uma “moda definitiva”. No meio de todo o reboliço causado pelo crescimento desacelerado da Internet. Provou-se que a tão pregada “facilidade” não é tão real assim.

apesar de existirem pesquisadores estudando propostas de modelagem exclusivamente de agentes. • O aplicativo deve executar o browser Web do usuário sempre que for detectada alguma alteração em algum dos sites da lista. como por exemplo: a mudança de conteúdo em um web site. outros detalhes que devem ser cuidadosamente observados devido a natureza do software e a forma de atuação do mesmo. ele deve preencher alguns requisitos que satisfaçam o usuário. Os requisitos que o agente FLASH deve preencher para executar as tarefas para as quais ele se propõe. Além do Sistema Operacional utilizado. foi dito que este é um componente de um contexto que age em favor do usuário ou por ele. são listados abaixo: • O software deve permitir que o usuário insira a lista de sites que ele gostaria que fossem monitorados. 4. O browser Web executará e exibirá o site que sofreu a alteração detectada. . • O programa deve checar periodicamente a lista de sites e detectar quando houverem mudanças.MODELAGEM A modelagem de um Agente passa por alguns passos que as metodologias de desenvolvimento de software atuais colocam como necessárias.2. Para que se faça uso de um agente.Quando foi definido o termo “Agente” neste trabalho. a linguagem no qual será desenvolvido. existem de fato.

que permitem que eles percebam a situação na qual estão inseridos. • Papel do agente: refere-se a responsabilidade que o Agente assumirá diante da área de atuação no qual ele foi inserido. Foi dito neste trabalho que o Agente é um “ator” em um contexto. O FLASH. são eles: os “sensores”. • Abrangência da atuação: refere-se ao alcance da atuação do Agente. podendo ser . Por exemplo. tem o papel de checar alterações em web sites e informar o usuário de tais alterações através da exibição da página alterada. No caso apresentado a área de atuação do Agente é a Internet. e que ele possui recursos que fazem com que ele atue no contexto. Os sensores de um Agente captam eventos ocorridos no contexto e os reagentes atuam baseados nos eventos ocorridos. no caso do programa FLASH. Dois dos recursos que os Agentes possuem são visíveis neste exemplo. Quando é feita a modelagem de um Agente.Alguns detalhes que devem ser considerados no momento de modelarmos um Agente. por exemplo. são: • Área de atuação do Agente: refere-se ao ambiente onde o Agente irá atuar. o alcance dele limita-se a lista de web sites que o usuário irá informar e não a toda Internet. e os “reagentes” que são os responsáveis por atuar no contexto. deve-se considerar que recursos do Agente aplicar-se-ão à realidade na qual ele será inserido. É importante que fique claro que os eventos não são necessariamente os eventos nativos do Sistema Operacional em uso.

eventos externos ao Sistema Operacional. Quando ocorrer a alteração de qualquer web site da lista o Agente entenderá como uma situação na qual ele deve atuar. Nos processos de análise de requisitos e modelagem do Agente puderam ser identificados alguns pontos fundamentais para a execução das tarefas. . Para que o objetivo seja alcançado o funcionamento deve obedecer alguns passos que são exibidos abaixo: • O Agente utilizará uma conexão de Internet ativa. caso não haja uma conexão ativa com a Internet o agente ativa o Dial-up. Será descrito em linhas gerais quais são os pontos principais deste funcionamento. e a partir daí ele executará as ações para o qual ele foi designado. no caso. Funcionamento O agente FLASH possui um funcionamento relativamente simples. executar o browser default do usuário exibindo a página alterada. No caso do Agente apresentado. o evento que irá ativa-lo é um evento externo ao Sistema Operacional: a alteração de algum web site que esteja na lista determinada pelo usuário.3. 4.

2 – Tela inicial do Agente FLASH . será solicitado ao usuário a inclusão de pelo menos 1 site na lista. Esta lista será salva em um arquivo de texto. Figura 4.1 – Interface Dial-Up • O Agente possuirá uma lista de web sites. Esta lista poderá sofrer inclusões e adições a qualquer tempo.Figura 4. No caso do Agente estar sendo executado pela primeira vez.

1999). O browser exibirá o site que sofreu alteração. • Será executado o browser default do usuário no momento em que o Agente detectar alteração de algum dos sites da lista. O exemplo apresentado neste trabalho foi extraído do livro de David Pallmann (PALLMANN. Ele foi desenvolvido utilizando-se o Microsoft Visual C++ 6. Figura 4.• O Agente fará o “download” do conteúdo do site e o armazenará para usá-lo como referência para a checagem das alterações (comparação de conteúdo).3 – Lista de sites fornecida pelo usuário • O Agente fará checagem nos sites da lista fornecida de três em três minutos. No Anexo I deste trabalho são apresentados os códigos fonte do agente Flash. .

CAPÍTULO 5 CONCLUSÃO O desenvolvimento deste trabalho teve como objetivo fundamental apresentar a tecnologia de agentes como algo real e acessível a comunidade acadêmica. Neste trabalho procurou-se apresentar uma visão menos científica e teórica para se apresentar uma visão mais didática e prática. permitindo assim que faça-se um estudo dirigido de forma a estimular o desenvolvimento de pesquisas nesta área que se mostra tão promissora. Apesar de algumas críticas lançadas sobre os agentes inteligentes. a linguagem C++. No exemplo apresentado neste trabalho. o mercado de tecnologia de hoje tem se mostrado muito receptivo a eles. pode-se perceber características básicas de um agente. o agente FLASH. como por exemplo: reatividade e benevolência. o intuito foi de mostrar que os agentes inteligentes são mais simples do que se prega. O agente FLASH também apresenta-se como fruto do desenvolvimento em uma das linguagens citadas neste trabalho. a tecnologia de agentes é seriamente estudada e aplicada em algumas áreas de muita importância. O exemplo apresentado neste trabalho é aplicável a contextos simples e está passível de incrementos e melhorias. são “pedaços” de software com características especiais. Neste trabalho foram citadas algumas áreas onde os agentes inteligentes estão sendo utilizados. Apesar desta aparente simplicidade. A principal motivação para o estudo de agentes é o fato de esta tecnologia ser mais realidade do que conceitos propriamente ditos. .

eles mostram-se presentes nos dias atuais. Assim como outras fantásticas tecnologias que temos hoje em dia precisaram de um tempo de amadurecimento. Apesar de toda essa incerteza quanto ao futuro dos agentes. pode-se dizer que a tecnologia de agentes é uma realidade de um potencial muito grande.Fazer previsões sobre qual será o papel dos agentes inteligentes no futuro é algo que não se pode fazer. pode-se dizer que a tecnologia de agentes está caminhando para esta fase e que é bem possível que no futuro. Em resumo. . entre outros. mas que precisa de atenção e seriedade ao ser estudada. Ensino a Distância. em ferramentas que são utilizadas no dia-a-dia da Internet. existirão mais destas novas “formas de vida” cercando cada usuário de computador do que imaginamos. visto que a tecnologia de agentes ainda está em processo de desenvolvimento e os grupos envolvidos nas pesquisas ainda exercem influência uns sobres os outros. se próximo ou distante não se sabe. como por exemplo: Comércio Eletrônico. Mecanismos de Busca.

Architectures. p. and Languages. . FRANKLIN. Inc.REFERÊNCIAS BIBLIOGRÁFICAS BUSUIOC.1994. NY. . R. 21326. Lund University.Is it an Agent. . In Second World Conference on the Fundamentals of Artificial Intelligence. Java Report. Belém: Centro de Ensino Superior do Pará. 2001. Springer-Verlag. S. Redação e Apresentação Gráfica de Monografia. .Cooperating intelligent agents for service management in communications networks. 85-96. p.On the Concept of Concept in the Context of Autonomous Agents. DAVIDSSON. Fátima. P. 1997. or just a Program?: A Taxonomy for Autonomous Agents. Suécia. Lund University Cognitive Studies 12. ISSN 11018453. FRAYA. M. D. GRIFFITHS. SIGS Publications. P. 1992. A. GRAESSER. New York. FARLEY. . 1996.Mobile Agent System Architecture: A flexible alternative to moving data and code to complete a given task.. S.. Proceedings of the Third International Workshop on Agent Theories. 1995.Concept Acquisition by Autonomous Agents: Cognitive Modeling versus the Engineering Approach. . Proceedings of the Special Interest Group on Cooperating Knowledge Based Systems. DAVIDSSON. Selected Papers from the Workshop.

Faculdade Dartmouth. 1995. IBM Corporation. n° 7. julho. 1994. S. . Universidade Federal de Santa Catarina. KETCHPEL. HOLANDA FERREIRA.Intelligent Software Agents on the Internet: an inventory of currently offered functionality in the information society & a prediction of (near) future developments. 1998 GRAY. Rio de Janeiro: Nova Fronteira.Estrutura de Agentes para os Processos de Compra e Venda utilizando Tomada de Decisão Difusa.. Dissertação de Mestrado. Departamento de Ciências da Computação. Alemanha. IBM . 1996. S. B.1. . 1995. Número do Documento G325-6592-00. vol. . HERMANS. F. Holanda.Communicatons of the ACM. Aurélio Buarque de. 1975. abril. julho. Berlin. Documentação do Sistema Agente Tcl. First International Workshop on Mobile Agents 97 (MA'97). Tilburg University. L. . Tilburg.Software Agents. Hanover.Open Blueprint: Intelligent Agent Resource Manager. R. GIESE. M. . R.Agent Tcl: Alpha Release 1. CACM .Concordia: An Infrastructure for Collaborating Mobile Agents. 1997. p. 48-53. 37. P. ITA (Mitsubishi Electric Information Technology Center America) . – Novo Dicionário da Língua Portuguesa.GENESERETH.

JENNINGS. 1998. 661p.Agent Software. M. PALLMANN. KNIGHT. S. N. P. 17-20. 49-63. . Artificial Intelligence: A Modern Approach.Artificial Intelligence. Washington: Microsoft Press. Inc. D’INVERNO. janeiro. Spiders. 1997. 1995. E. S. vol. 1993 RUSSEL.. 11. M. . Nova Iorque. LUCK. p. e WOOLDRIDGE.. Knowledge Engineering Review Press. K. H. p. IEEE Review. 1999. K. . UK. p. 1-40. NWANA. 1996.. A Roadmap of agent research and development. .From Agent Theory to Agent Construction: A Case Study. 12-27. . SYCARA. McGrawHill. WOOLDRIDGE. . Prentice Hall. N. Proceedings UNICOM Seminar on Agent Software. 1995. M. New Jersey. Lecture Notes in AI.Software Agents. Architectures and Languages.. Londres.JENNINGS. Wooldridge e Jennings (eds.). Springer-Verlag.. n° 3. N. JENNINGS.Software Agents: An Overview. M. In Intelligent Agents III: Proceedings of the Third International Workshop on Agent Theories. Mueller. 1193. USA. GRIFFITHS. N. David – Programming Bots. p. e NORVIG. 1996. and Intelligent Agents in Microsoft Visual C++. RICH.. R.

The MIT Press. 1997. Anais do Congresso da Sociedade Brasileira de Computação. . Flávio Soares Corrêa e MENESES. . 2001]. K. FININ. School of Computer Science . Fortaleza: 2001. The University of Birmingham. 115-152. M. p. 2001]. VELOSO.net. . CMU CS technical report number CMU-CS-97-193. R. Eudênia Xavier. M. 1999. AUER. M. 1997. WOOLDRIDGE. Maio. 10. USA.Towards a Medium for Agent-Based Interaction. Intelligent Agents In G. Disponível: http://www. . A.Agent Programming and Scripting languages [on-line]. 209-253. Weiss..edu/agents/technology/asl. 1997.SILVA.htm [capturado em 15 set.au/~kauer/project/main. STONE. The Knowledge Engineering Review.umbc.shtml [capturado em 15 set.tip. Disponível: http://www. p. 1994 WOOLDRIDGE.cs. Integração de Agentes de Informação. vol. Agents [on line]. JENNINGS. T. editor: Multiagent Systems. Jan. .. n° 2. 1995.Multiagent Systems: A Survey from a Machine Learning Perspective. N.Intelligent Agents: Theory and Practice. WOOD. April. P.

E. TCL. Disponível: http://www.w3.htm [capturado em 20 set.sco. . TCL WWW Info [on-line]. 1996 Disponível: http://www.dek/issues/issue2_3/index.com/Courses/Agents/index.pacificspirit. Disponível: http://www. Mobile Code [on line]. Disponível: http://www.html WORLD WIDE WEB CONSORTIUM. Disponível: http://www.Intelligent Software Agents on the Internet [on line]. S. Intelligent Agents [on line].html ORCHARD.br/disserta96/eliane/index/ . 1996. 1999. – Uma Estrutura de Agentes para Assessoria na Internet [on line]. Maio. 1996. Nov.eps. 1997. M.ufsc. SOUZA. D. .org/pub/WWW/MobileCode/ .HERMANS. 2001].com/Technology/tcl/Tcl.firstmonday. Nov. B.

CPP // FLASH.H" #INCLUDE "FLASHDLG. // DO NOT EDIT WHAT YOU SEE IN THESE BLOCKS OF GENERATED CODE! //}}AFX_MSG ON_COMMAND(ID_HELP. CWINAPP) //{{AFX_MSG_MAP(CFLASHAPP) // NOTE .ANEXO I CÓDIGOS FONTE Os códigos fonte deste anexo são em C++. ARQUIVOS FONTE FLASH.H" #IFDEF _DEBUG #DEFINE NEW DEBUG_NEW #UNDEF THIS_FILE STATIC CHAR THIS_FILE[] = __FILE__. Todos os códigos fonte apresentados neste anexo estão separados em: Arquivos Fonte e Arquivos de Cabeçalho. e foi utilizada a ferramenta de desenvolvimento Visual C++ 6.CPP : DEFINES THE CLASS BEHAVIORS FOR THE APPLICATION. #ENDIF ///////////////////////////////////////////////////////////////////////////// // CFLASHAPP BEGIN_MESSAGE_MAP(CFLASHAPP. CWINAPP::ONHELP) END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CFLASHAPP CONSTRUCTION CFLASHAPP::CFLASHAPP() { // TODO: ADD CONSTRUCTION CODE HERE.THE CLASSWIZARD WILL ADD AND REMOVE MAPPING MACROS HERE. // PLACE ALL SIGNIFICANT INITIALIZATION IN INITINSTANCE } .H" #INCLUDE "FLASH. AGENTE FLASH 1. // #INCLUDE "STDAFX.

IF (NRESPONSE == IDOK) { // TODO: PLACE CODE HERE TO HANDLE WHEN THE DIALOG IS // DISMISSED WITH OK } ELSE IF (NRESPONSE == IDCANCEL) { // TODO: PLACE CODE HERE TO HANDLE WHEN THE DIALOG IS // DISMISSED WITH CANCEL } // SINCE THE DIALOG HAS BEEN CLOSED. } FLASHDLG. RETURN FALSE SO THAT WE EXIT THE // APPLICATION. INT NRESPONSE = DLG. M_PMAINWND = &DLG.CPP // FlashDlg. ///////////////////////////////////////////////////////////////////////////// // CFLASHAPP INITIALIZATION BOOL CFLASHAPP::INITINSTANCE() { AFXENABLECONTROLCONTAINER(). SHARED DLL #ELSE ENABLE3DCONTROLSSTATIC(). #IFDEF _AFXDLL ENABLE3DCONTROLS().cpp : implementation file // . RATHER THAN START THE APPLICATION'S MESSAGE PUMP.///////////////////////////////////////////////////////////////////////////// // THE ONE AND ONLY CFLASHAPP OBJECT CFLASHAPP THEAPP. // STANDARD INITIALIZATION // IF YOU ARE NOT USING THESE FEATURES AND WISH TO REDUCE THE SIZE // OF YOUR FINAL EXECUTABLE. YOU SHOULD REMOVE FROM THE FOLLOWING // THE SPECIFIC INITIALIZATION ROUTINES YOU DO NOT NEED. #ENDIF // CALL THIS WHEN USING MFC IN A // CALL THIS WHEN LINKING TO MFC STATICALLY CFLASHDLG DLG. RETURN FALSE.DOMODAL().

CDialog) END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CFlashDlg dialog CFlashDlg::CFlashDlg(CWnd* pParent /*=NULL*/) : CDialog(CFlashDlg::IDD. CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD) { } void CAboutDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX). pParent) { . #endif ///////////////////////////////////////////////////////////////////////////// // CAboutDlg dialog used for App About class CAboutDlg : public CDialog { public: CAboutDlg().h" #include "FlashDlg.#include "stdafx.h" #include "CRobot.h" #include "Flash. enum { IDD = IDD_ABOUTBOX }. } BEGIN_MESSAGE_MAP(CAboutDlg. // Implementation protected: DECLARE_MESSAGE_MAP() }.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__. protected: virtual void DoDataExchange(CDataExchange* pDX).h" #include "CRobotInternet.

OnTrayNotify) ON_COMMAND(IDC_CONFIGURE.m_urls = _T(""). ASSERT(IDM_ABOUTBOX < 0xF000).LoadString(IDS_ABOUTBOX). m_urls_ctl). ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX). IDC_URLS. } } IDM_ABOUTBOX. CMenu* pSysMenu = GetSystemMenu(FALSE). pSysMenu->AppendMenu(MF_STRING. if (pSysMenu != NULL) { CString strAboutMenu. } void CFlashDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX). m_urls). CFlashDlg::OnMenuExit) END_MESSAGE_MAP() //////////////////////////////////////////////////////////////////// // CFlashDlg message handlers BOOL CFlashDlg::OnInitDialog() { CDialog::OnInitDialog(). } BEGIN_MESSAGE_MAP(CFlashDlg. strAboutMenu). OnRemove) ON_WM_TIMER() ON_MESSAGE(WM_TRAY_NOTIFY.IsEmpty()) { pSysMenu->AppendMenu(MF_SEPARATOR). if (!strAboutMenu. DDX_Control(pDX. OnAdd) ON_BN_CLICKED(IDC_REMOVE. strAboutMenu. IDC_URLS. DDX_CBString(pDX. CFlashDlg::OnMenuConfigure) ON_COMMAND(IDC_EXIT. . CDialog) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() ON_BN_CLICKED(IDC_ADD. m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME).

you will need the code below // to draw the icon. if (nSites > 0) { ShowWindow(SW_MINIMIZE). // Set small icon nSites = 0. m_nTrayData. void CFlashDlg::OnPaint() { if (IsIconic()) . MAKEINTRESOURCE(IDR_MAINFRAME)). m_nTrayData.hIcon = LoadIcon (AfxGetInstanceHandle(). TRUE).uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP.szTip. lParam).uCallbackMessage = WM_TRAY_NOTIFY. FALSE).DoModal(). // Set big icon SetIcon(m_hIcon. strcpy (m_nTrayData. NULL). SetTimer(1.SetIcon(m_hIcon.hWnd = m_hWnd. 1000. dlgAbout. } // End if return TRUE. &m_nTrayData). LoadURLs(). } else { CDialog::OnSysCommand(nID. "Agente Flash").cbSize = sizeof(NOTIFYICONDATA) . m_nTrayData.uID = 0 . } void CFlashDlg::OnSysCommand(UINT nID. Shell_NotifyIcon (NIM_ADD. m_nTrayData. bHidden = false. } } // If you add a minimize button to your dialog. For MFC applications using the document/view model. LPARAM lParam) { if ((nID & 0xFFF0) == IDM_ABOUTBOX) { CAboutDlg dlgAbout. // this is automatically done for you by the framework. m_nTrayData. m_nTrayData.

(WPARAM) dc. MB_ICONEXCLAMATION).Width() . informe um endereço. HCURSOR CFlashDlg::OnQueryDragIcon() { return (HCURSOR) m_hIcon.Height() . // device context for painting SendMessage(WM_ICONERASEBKGND.". } // End if if (nSites == MAX_SITES) { MessageBox("O número máximo de sites foi alcançado.cyIcon + 1) / 2.cxIcon + 1) / 2. m_hIcon). int cyIcon = GetSystemMetrics(SM_CYICON). int x = (rect. // Draw the icon dc. máximo alcançado". } void CFlashDlg::OnAdd() { // Validate the input UpdateData(true). MB_ICONEXCLAMATION). // Center icon in client rectangle int cxIcon = GetSystemMetrics(SM_CXICON). return.{ CPaintDC dc(this). } else { CDialog::OnPaint(). } // End if // Add the site "Limite . GetClientRect(&rect). 0). int y = (rect. if (m_urls == "") { MessageBox("Por favor. CRect rect.GetSafeHdc(). return.DrawIcon(x. "Endereço necessário". } } // The system calls this to obtain the cursor to display while the user drags // the minimized window. y.".

} void CFlashDlg::OnRemove() { CString sURL.Empty(). nSite < nSites. nSite = nSites. sSiteHTML[nSites]. return.CWaitCursor wc. sSiteHTML[nSite] = sSiteHTML[nSite + 1]. int nSiteIndex = -1. for (int nSite = 0. GetDlgItem(IDC_URLS)->SetFocus().Empty().1. UpdateData(false). MB_ICONEXCLAMATION). m_urls = "".AddString(m_urls). // Delete URL from site variables for (nSite = nSiteIndex.". nSite++) { if (sSiteURL[nSite] == sURL) { nSiteIndex = nSite. nSites++. } // End if } // End for if (nSiteIndex == -1) { MessageBox("Você não pode remover " + sURL + " porque ele não está na lista. nSite < nSites . sURL = m_urls. "Endereço não encontrado". sSiteURL[nSites] = m_urls. } // End if CWaitCursor wc. m_urls_ctl. . nSite++) { sSiteURL[nSite] = sSiteURL[nSite + 1]. sSiteHTML[nSites] = "". } // End for sSiteURL[nSites]. UpdateData(true).

NULL). NULL). "Nenhum site na lista". for (int nSite = 0. } // End if ShowWindow(SW_HIDE).DeleteString(m_urls_ctl. SetTimer(1.nSites--. } void CFlashDlg::OnTimer(UINT nIDEvent) { KillTimer(1). CString sErrMsg. int nResult. nSite < nSites. CString sHTML. nSite++) . } // ******************* // * * // * CheckWebPages * // * * // ******************* // Description: Visits each web page to see if it has changed void CFlashDlg::CheckWebPages() { // Check web pages CRobotInternet internet. } // End if CheckWebPages(). 3 * 60 * 1000. 1000. MB_ICONEXCLAMATION).". SaveURLs(). if (bHidden) { ShowWindow(SW_HIDE).GetCurSel()). // Delete URL from the list box m_urls_ctl. bHidden = true. return. SetTimer(1. CDialog::OnTimer(nIDEvent). } void CFlashDlg::OnOK() { if (nSites == 0) { MessageBox("Você deve fornecer o endereço de 1 ou mais sites.

{ if (sSiteHTML[nSite] != sHTML) { if (sSiteHTML[nSite] != "") ShellExecute(NULL. } void CFlashDlg::OnMenuExit() { Shell_NotifyIcon (NIM_DELETE. NULL. SW_SHOWNORMAL). sSiteURL[nSite]. &m_nTrayData). ASSERT(pPopup != NULL). sSiteHTML[nSite] = sHTML.Right-button down: Pop-up menu ---if (lParam == WM_RBUTTONDOWN) { CMenu menu. LPARAM lParam) { // ---. screen.httpGet(sSiteURL[nSite]. sHTML.bottom. GetDesktopWindow()->GetWindowRect(screen). nResult. screen. } // End if return LRESULT(0). NULL. ShowWindow(SW_NORMAL). CMenu* pPopup = menu. AfxGetMainWnd()). VERIFY(menu.right.GetSubMenu(0). } // End if } // End if } // End for nSite } // ****************** // * * // * OnTrayNotify * // * * // ****************** // Tray notification handler LRESULT CFlashDlg::OnTrayNotify(WPARAM wParam. sErrMsg)) "open".{ if (internet. } void CFlashDlg::OnMenuConfigure() { KillTimer(1).LoadMenu(IDR_MENU1)). pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON. . CRect screen.

. CFile::modeRead)) { while (file. } // ************** // * * // * LoadURLs * // * * // ************** // Description: Loads URL list from previous session // If Flash. Contains the actual URLs .Close(). } // End while file. m_urls_ctl....url file exists. m_urls_ctl... Number of URLs // sSiteURL[] .. CString sLine.EndDialog(0).url and writes one URL per // line to it // // Inputs: nSites ......ResetContent().ReadString(sLine)) { sSiteURL[nSites] = sLine.AddString(sLine). nSites = 0..Open("flash...... Contains the actual URLs void CFlashDlg::LoadURLs() { CStdioFile file.url". nSites++.. loads URLS from it // (one URL per line) // // Outputs: nSites . Number of URLs // sSiteURL[] .. } // End if } // ************** // * * // * SaveURLs * // * * // ************** // Description: Saves URL list for the sake of future sessions // Creates file Flash. if (file.

//}}AFX_VIRTUAL .Close().H // Flash.h" // main symbols ///////////////////////////////////////////////////////////////////////////// // CFlashApp: // See Flash.h' before including this file for PCH #endif #include "resource. // Overrides // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CFlashApp) public: virtual BOOL InitInstance(). CFile::modeCreate|CFile::modeWrite). } 2. u < nSites. file.cpp for the implementation of this class // class CFlashApp : public CWinApp { public: CFlashApp().Open("flash. file.url". u++) file.h : main header file for the FLASH application // #if !defined(AFX_FLASH_H__385D4245_82F5_11D2_BD1F_00C04F96A9C3__INCLUDED_ ) #define AFX_FLASH_H__385D4245_82F5_11D2_BD1F_00C04F96A9C3__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 #ifndef __AFXWIN_H__ #error include 'stdafx. ARQUIVOS DE CABEÇALHO FLASH. for (int u = 0.WriteString(sSiteURL[u] + "\n").void CFlashDlg::SaveURLs() { CStdioFile file.

h : header file // #if !defined(AFX_FLASHDLG_H__385D4247_82F5_11D2_BD1F_00C04F96A9C3__INCLU DED_) #define AFX_FLASHDLG_H__385D4247_82F5_11D2_BD1F_00C04F96A9C3__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 //////////////////////////////////////////////////////////////////// // CFlashDlg dialog #defineWM_TRAY_NOTIFY #define MAX_SITES 100 class CFlashDlg : public CDialog { // Construction public: CFlashDlg(CWnd* pParent = NULL). ///////////////////////////////////////////////////////////////////////////// //{{AFX_INSERT_LOCATION}} // Microsoft Visual C++ will insert additional declarations immediately before the previous line.// Implementation //{{AFX_MSG(CFlashApp) // NOTE .the ClassWizard will add and remove member functions here. WM_USER + 0 . // DO NOT EDIT what you see in these blocks of generated code ! //}}AFX_MSG DECLARE_MESSAGE_MAP() }. // standard constructor LRESULT OnTrayNotify(WPARAM wParam. NOTIFYICONDATA m_nTrayData.H // FlashDlg. LPARAM lParam). #endif // !defined(AFX_FLASH_H__385D4245_82F5_11D2_BD1F_00C04F96A9C3__INCLUDED_ ) FLASHDLG.

void CheckWebPages(). //{{AFX_INSERT_LOCATION}} // Microsoft Visual C++ will insert additional declarations immediately before the previous line. CString m_urls. afx_msg HCURSOR OnQueryDragIcon(). //}}AFX_DATA // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CFlashDlg) protected: virtual void DoDataExchange(CDataExchange* pDX). #endif // !defined(AFX_FLASHDLG_H__385D4247_82F5_11D2_BD1F_00C04F96A9C3__INCLU DED_) // DDX/DDV support . LPARAM lParam). CString sSiteHTML[MAX_SITES]. //}}AFX_VIRTUAL // Implementation protected: HICON m_hIcon. afx_msg void OnRemove().CString sSiteURL[MAX_SITES]. // Generated message map functions //{{AFX_MSG(CFlashDlg) virtual BOOL OnInitDialog(). BOOL bHidden. afx_msg void OnSysCommand(UINT nID. int nSites. afx_msg void OnPaint(). afx_msg void OnAdd(). // Dialog Data //{{AFX_DATA(CFlashDlg) enum { IDD = IDD_FLASH_DIALOG }. virtual void OnOK(). afx_msg void OnTimer(UINT nIDEvent). //}}AFX_MSG DECLARE_MESSAGE_MAP() }. void LoadURLs(). void OnMenuConfigure(). void OnMenuExit(). void SaveURLs(). CComboBox m_urls_ctl.

#endif // !defined(AFX_STDAFX_H__385D4249_82F5_11D2_BD1F_00C04F96A9C3__INCLUDE D_) .H // stdafx.STDAFX.h> // MFC core and standard components #include <afxext.h> // MFC extensions #include <afxdisp.h> // MFC support for Internet Explorer 4 Common Controls #ifndef _AFX_NO_AFXCMN_SUPPORT #include <afxcmn.h> // MFC support for Windows Common Controls #endif // _AFX_NO_AFXCMN_SUPPORT //{{AFX_INSERT_LOCATION}} // Microsoft Visual C++ will insert additional declarations immediately before the previous line.h> // MFC Automation classes #include <afxdtctl. but // are changed infrequently // #if !defined(AFX_STDAFX_H__385D4249_82F5_11D2_BD1F_00C04F96A9C3__INCLUDE D_) #define AFX_STDAFX_H__385D4249_82F5_11D2_BD1F_00C04F96A9C3__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 #define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers #include <afxwin.h : include file for standard system include files. // or project specific include files that are used frequently.

Sign up to vote on this title
UsefulNot useful