IA368F Tópicos em Engenharia de Computação V

Tecnologias da Infra-estrutura de informação em Ambientes Colaborativos de Ensino

FACULDADE DE ENGENHARIA ELÉTRICA DE CAMPINAS

UNIVERSIDADE ESTADUAL DE CAMPINAS

 

Agentes Inteligentes – Tendências

 

Maria das Graças J.M. Tomazela

R A – 961384

 

Conteúdo

 

1 Introdução

2 Tendências

2.1 Itens Técnicos

2.1.1 Definição de padrões / arquitetura

2.1.2 Sistemas multiagentes

2.1.3 Agentes Móveis

2.1.4 Itens Legais e Éticos

2.1.5 Itens relacionados à Interface do Usuário

2.1.6 Itens Técnicos Diversos

2.1.7 Overview Cronológico do Desenvolvimento Técnico Esperado

2.2 O Usuário

2.2.1 Facilidade de Uso

2.2.1.1 A Interface do Usuário

2.2.1.2 Segurança e Privacidade

2.2.1.3 Aplicações Disponíveis

2.2.2 Usuários Overview Cronológico do Desenvolvimento Esperado

3 Conclusões

4. Referências

 

1. Introdução

A definição do termo agente tem sido razão de muita controvérsia, cada autor tem sua própria definição e concepção do que é um agente. Em [1] faz-se uma interessante comparação entre agentes computacionais e agentes humanos e a seguinte definição é proposta:

"Um agente é uma entidade computacional que:

Outro ponto de discussão diz respeito sobre quais as características de agentes o diferem de outros programas. Alguns pesquisadores afirmam que a técnica de agentes não é realmente nova e tudo que pode ser feito com agentes pode também ser feito com outras tecnologias existentes. Os principais pontos de críticas são [2]:

Estes pontos são refutados , particularmente pelos pesquisadores do campo da IA , com os seguintes argumentos [2]:

 Independente dos "prós" e "contras" sobre agentes e das diferentes definições, parece haver algum consenso sobre as propriedades que um agente deve apresentar [1], [2], [3]:

 Em [2] as propriedades descritas acima, são denominadas de "noções fracas de agentes", apresentadas em softwares do tipo do sistema operacional UNIX. As propriedades que serão apresentadas a seguir são mencionadas como "noções fortes de agentes":

Embora nenhum agente possua todas estas habilidades existem vários protótipos que possuem muitas delas. Ainda não se tem um consenso sobre qual a ordem de importância de cada uma destas características, mas acredita-se que a combinação destas características é que distinguem agentes de programas comuns.

Morreale [3] considera que autonomia, aprendizado e cooperação são, isoladamente, características básicas que um agente deve apresentar. Um agente que possua duas destas características pode ser considerado mais avançado e um agente com todas estas três características seria ideal. Segundo Morreale autonomia e aprendizado são características fáceis de se combinar, entretanto aprendizado e cooperação ou autonomia e cooperação é mais difícil. Pesquisas atuais tentam combinar estes três componentes.

Em [1] define-se que um sistema de agente ideal deveria ter, além de autonomia aprendizado e cooperação, no mínimo outras duas características daquelas citadas acima.

A necessidade de softwares agentes pode ser explicada pelas seguintes razões [1]:

Os domínios de aplicações que tecnologias de agentes estão sendo aplicadas ou investigadas incluem [1], [2]: workflow, administração de rede, controle de tráfego aéreo, reengenharia de processos de negócios, data mining, recuperação/administração de informação, comércio eletrônico, educação, assistente digital pessoal, elaboração de agenda, organização de e-mail, administração de acesso móvel, colaboração, etc.

Nesta seção os conceitos básicos sobre agentes foram definidos. Na próxima seção as principais pesquisas realizadas e as tendências de desenvolvimento esperadas nesta área serão descritas e, a última seção contém as conclusões deste trabalho.

 2. Tendências

Vários pesquisadores acreditam que a tecnologia de agentes terá um grande impacto. Alguns acreditam que os agentes aparecerão em produtos como um processo evolucionário. Outros acreditam que a utilização de agentes será um processo revolucionário, o que é pouco provável, porque muitas das partes envolvidas não estão ainda familiares com agentes, especialmente os futuros usuários. Provavelmente a técnica de agentes evoluirá da seguinte forma: inicialmente alavancando tecnologias mais simples disponíveis (processador de texto, sistemas baseados em conhecimento) e, depois deste estágio irá gradualmente evoluir para aplicações mais complicadas [9].

Segundo Hermans [2] as aplicações disponíveis atualmente são preferencialmente de natureza experimental. Diversas companhias (por exemplo: IBM, Microsoft) estão realizando pesquisas na área de agentes, mas estão dando preferência a aplicações básicas, para ter resultados visíveis em um curto espaço de tempo. Exemplos destas aplicações são: agentes que manipulam e-mail, agentes que filtram ou pesquisam por artigos de interesse do usuário, agentes que elaboram agenda eletrônica.

A seguir serão apresentadas algumas tendências no desenvolvimento da tecnologia de agentes, estruturadas da seguinte forma: inicialmente serão discutidos os aspectos técnicos, em seguida itens referentes aos usuários.

2.1 Aspecto Técnicos

O desenvolvimento técnico esperado e os itens que precisam de pesquisa adicional são abordados nas seções seguintes.

2.1.1 Definição de padrões / arquitetura

Existe uma forte tendência na resolução distribuída de problemas, onde agentes cooperam uns com os outros, dividindo e compartilhando conhecimento sobre o problema e sobre o processo de obter uma solução. Nesta abordagem é necessário uma linguagem de comunicação de agentes de forma a facilitar a interoperabilidade entre estes agentes ([2],[3],[4]).

Existem duas abordagens para o projeto de linguagens de comunicação entre agentes : a abordagem procedural e a abordagem declarativa [4].

Exemplos de linguagens procedurais são: TCL, Apple Events e Telescript. Tais linguagens são simples e poderosas, permitindo que programas transmitam não somente comandos, mas programas inteiros. Em [1] e em [3] são descritos vários sistemas de agentes móveis que utilizam Telescript. Algumas desvantagens também podem ser enumeradas : as procedures algumas vezes requerem informações sobre o receptor da mensagem que muitas vezes não estão disponíveis; procedures são unidirecionais e muitas das informações que os agentes devem compartilhar são bi-direcionais e os scripts são difíceis de intercalar [4].

Na abordagem declarativa o projeto da linguagem é baseado na idéia de que a comunicação pode ser melhor modelada pela troca de comandos declarativos, e deve ser suficientemente expressiva para comunicar uma ampla gama de informações. A partir desta abordagem de comunicação pesquisadores tem definido componentes para uma linguagem de comunicação de agentes (ACL) padrão. Os dois principais padrões propostos são KQML e ARCOL [1].

KQML (Knowledge query and Manipulation Language) foi desenvolvida como parte do ARPA Knowledge Sharing Effort. É constituída de três camadas: conteúdo (conteúdo real da mensagem), mensagem ( o tipo da mensagem, por exemplo, resposta, advertência) e comunicação (o protocolo para liberar a mensagem).

KQML tem algumas falhas das quais a mais significativa é a falta de uma semântica precisa [1]. ARCOL foi desenvolvido pela Telecom (França) com o objetivo de superar esta limitação, incorporando uma lógica de atitudes mentais na camada de mensagem. As duas linguagens ainda possuem limitações, por exemplo, não existe nenhum nível de semântica na camada de comunicação, o que representa um problema em sistemas multiagentes e heterogêneos.

Outro ponto importante é a arquitetura que será adotada como padrão: homogênea ou heterogênea. Uma coleção de agentes pode colaborar em uma tarefa em uma maneira homogênea, onde pode-se assumir uma certa base comum de entendimento entre eles. Por outro lado eles podem ser heterogêneos por diversas razões, Bird [5] classifica estas razões como sintáticas, de controle e semânticas.

Diferenças sintáticas podem ocorrer por causa do uso de diferentes formalismos de representação do conhecimento. Dada a equivalência computacional destes formalismos a comunicação entre os agentes pode ser realizada.

Diferenças de controle ocorrem quando diferentes estratégias de inferências são usadas para processar o mesmo conhecimento, a dificuldade neste caso está em se identificar qual método de inferência está em uso.

Diferenças semânticas ocorrem quando o mesmo conhecimento, quando expressados, tem diferentes significados para diferentes agentes ( por exemplo o mesmo símbolo pode ter diferentes significados em diferentes domínios).

Existem vários fatores que podem influenciar na definição de uma arquitetura padrão [2]:

Se o produtor não compartilhar seu código fonte outras entidades (universidades, por exemplo) começarão a desenvolver sua própria linguagem. Se o produtor compartilha o código fonte com outros pesquisadores, mas também com competidores estes serão capazes de elaborar melhor as técnicas e desenvolver suas próprias aplicações. Resumindo, o que pode ocorrer é um protecionismo por parte dos produtores, combinado com pesquisas de universidades e do mercado que provavelmente resultarão no desenvolvimento de múltiplas técnicas e assim levando a uma arquitetura heterogênea.

Além disso sistemas de agentes serão desenvolvidos em muitos lugares, em diferentes momentos, com diferentes necessidades ou restrições. É improvável que um único projeto funcione bem para todos os sistemas.

Embora a arquitetura homogênea tenha suas vantagens, acredita-se que a arquitetura adotada no futuro seja a heterogênea, não pelos seus méritos, mas pelos restrições impostas pela arquitetura homogênea [2].

2.1.2 Sistemas multiagentes

Agentes podem interagir para resolver um problema comum, tal sociedade é denominada Sistema Multiagente (Multi-Agent System – MAS). As razões para o crescente interesse na pesquisa em MAS incluem sua habilidade para [1]:

Para um MAS resolver problemas comuns coerentemente os agentes devem se comunicar entre eles, coordenar suas atividades e negociar quando entrarem em conflito. Conflitos podem resultar de contenção de recursos limitados até questões mais complexas de computação onde os agentes descordam por causa de discrepâncias entre seu domínios de especialidade. Coordenação é requerida para determinar a estrutura organizacional entre um grupo de agentes e para alocação de tarefas e recursos, enquanto negociação é requerida para a detecção e resolução de conflitos. Os agentes interagem e trocam informações através de uma linguagem de comunicação, que pode variar de uma ACL ad hoc até uma ACL padrão, conforme descrito na Seção 2.1.1.

As pesquisas realizadas em MAS têm abordado os seguintes aspectos [2]:

2.1.3 Agentes Móveis

Uma importante área de pesquisa atualmente é a tecnologia de agentes móveis. Um agente é móvel se ele é capaz de se mover de máquina para máquina em uma rede heterogênea ([1], [3]).

Um agente móvel deve conter os seguintes modelos: um modelo de agentes, um modelo de ciclo de vida, um modelo computacional, um modelo de segurança e um modelo navegacional [1].

O modelo de agentes define a estrutura interna do agente inteligente. Esta estrutura especifica, entre outras, as características de autonomia, aprendizado, cooperação.

O modelo de ciclo de vida define os diferentes estados de execução de um agente móvel e os eventos que causam movimento de um estado para outro. Um dos modelos de ciclo de vida contém os seguintes estados: start, running, death e frozen..

O modelo computacional define como o agente móvel se comporta no estado "running". Como parte deste modelo um conjunto de instruções primitivas pode ser especificado, para definir as habilidades de um agente.

O modelo de segurança pode ser dividido em duas áreas. A primeira envolve a proteção do nós hosts contra a ação de agentes móveis destrutivos e a segunda envolve a proteção de agentes móveis contra a ação de hosts destrutivos.

O modelo de comunicação implementa um ou mais protocolos para a comunicação entre agentes móveis e outras entidades.

O modelo de navegação diz respeito aos aspectos de mobilidade do agente móvel, da definição do host destino até a maneira na qual um agente é transportado.

É importante notar a diferença entre Remote Procedure Calling e Remote Programming utilizando agentes. Na primeira abordagem cada mensagem trocada na rede envolve uma requisição de serviço ou um reconhecimento da informação recebida, o transporte das procedures e dos dados é realizado separadamente, requer conexão persistente, com uma sobrecarga de comunicação bastante alta. Na abordagem que utiliza agente móveis uma mensagem consiste de uma procedure e seus argumentos (dados a serem processados), que interage localmente com o serviço remoto, diminuindo assim o tráfego pela rede.

Alguns pesquisadores afirmam que qualquer tarefa executada por agentes móveis pode ser executado por outros paradigmas de computação tal como a computação cliente-servidor. Entretanto acredita-se que em certos casos os agentes móveis têm vantagens sobre as abordagens convencionais. Algumas destas vantagens são [1]:

Agentes móveis podem ser utilizados na educação a distância, trazendo material que será requerido em breve pelo estudante. Este processo de busca de material antes de ser requisitado é baseado em análise em tempo real do comportamento do estudante e cálculo de probabilidade de uma requisição. O exato futuro da aplicação de agentes na educação é difícil de prever, mas as funcionalidades oferecidas até o momento são muito promissoras [2].

2.1.4 Itens Legais e Éticos

 Os itens abaixo são relacionados aos aspectos técnicos e precisam de pesquisa adicional para serem resolvidos ([2], [4]):

 2.1.5 Itens relacionados à Interface do Usuário

Computadores estão sendo usados em uma crescente faixa de atividades do dia a dia, ao mesmo tempo um crescente número de usuários não treinados estão interagindo com computadores. A metáfora de interação dominante atualmente é a da manipulação direta, que requer que o usuário inicie todas as tarefas explicitamente e monitore todos os eventos. Esta metáfora terá que mudar a medida que usuários não treinados passem a fazer uso efetivo do computador [6]. Neste novo estilo de interação o usuário é engajado em um processo cooperativo no qual agentes e usuários iniciam comunicação, monitoram eventos e executam tarefas , a metáfora usada é a do assistente pessoal que colabora com o usuário no mesmo ambiente de trabalho.

Inicialmente duas abordagens foram utilizadas para projetar agentes de interface [6]. A primeira abordagem consiste em fazer o usuário final programar o agente de interface. A vantagem desta abordagem é que ela dá total controle ao usuário, isto torna fácil para o usuário confiar nas regras, já que ele mesmo as criou. A desvantagem, entretanto, é que a carga da tarefa de programação é do usuário, e isto pode não ser desejável devido à inexperiência do usuário.

A segunda abordagem é a baseada no conhecimento, que consiste em dotar o agente de interface com extensivo conhecimento baseado no domínio específico da aplicação. A vantagem neste caso é que o usuário não tem mais que se preocupar em programar o agente, contudo o problema agora é que o agente não pode ser customizado para as preferências individuais do usuário. Pode ser difícil para o usuário confiar no agente desde que ele não tem idéia de como ele funciona e quais são suas limitações.

Uma terceira abordagem usa técnicas de aprendizado de máquina para superar as falhas das duas outras abordagens. O objetivo desta abordagem é construir agentes que adquiram sua competência e se adaptem aos requisitos do usuário. Em ambientes computacionais que envolvam tarefas repetitivas e, em que estas tarefas repetitivas sejam diferentes para usuários diferentes, esta abordagem é potencialmente muito útil. O agente pode aprender observando e imitando o usuário, reagindo ao feedback do usuário e aprendendo de exemplos de treinamento providos pelo usuário. A abordagem de aprendizado de máquina parece ser uma tendência no item aquisição de conhecimento.

Outros itens que estão sendo pesquisados são:

2.1.6 Itens Técnicos Diversos

Existem muitos outros itens técnicos que precisam ser resolvidos [2]:

2.1.7 Overview Cronológico do Desenvolvimento Esperado

Hermans [2] faz algumas previsões do desenvolvimento técnico esperado baseada no estágio atual da tecnologia de agentes, estas previsões têm um caráter arbitrário, uma vez que definições precisas são praticamente impossíveis na área computacional, em virtude do contínuo desenvolvimento tecnológico.

A curto prazo: aplicações de agentes tecnicamente melhores

Neste período espera-se que aplicações mais elaboradas de agentes estejam disponíveis, como por exemplo agentes móveis. Espera-se ainda que padrões relacionados a agentes estejam definidos e claros. A diferença entre subtipos de agentes (agentes de interface, agentes de informações, etc) deverá estar madura e ser assunto de pesquisas especializadas).

Os sistemas de agentes móveis e os sistemas multi-agentes serão usados de forma significante. O uso crescente dos agentes provavelmente gerará maior tráfego na Internet do que o gerado pelas pessoas.

A médio prazo (a partir do ano 2000): maturidade de agentes

Espera-se que os agentes se aproximem da "verdadeira" inteligência. Usuários finais começarão a usar interfaces antropomórficas. Agentes estarão cada vez mais interagindo com agentes de outras aplicações, sem ajuda de seus usuários.

Usuários poderão especificar requisições em linguagem natural, onde os agentes resolverão problemas como ambigüidades, através do modelo das preferências do usuário.

2.2 O Usuário

 Mitos, promessas e realidade se confundem quando se diz respeito a tecnologia de agentes, especialmente quando modificado pelo termo inteligente. Mas as principais dificuldades são sociais e não técnicas: Como os agentes vão interagir com as pessoas e, como as pessoas podem pensar a respeito de agentes? [7]

Para assegurar que a introdução da tecnologia de agentes não apresente dificuldades alguns fatores devem ser considerados:

Um dos primeiros problemas que devem ser tratados é o sentimento de controle ([2], [7]). O usuário deve se sentir confortável com as ações executadas pelos agentes em parte pelo sentimento de entendimento e, em parte pela confiança no sistema. Uma área para pesquisa futura envolve a criação de ferramentas para ajudar usuários a desenvolver um modelo satisfatório de agentes [8].

Existem duas abordagens para resolver este problema. Primeiro, o estado interno de um agente deveria ser acessível e compreensível ao usuário. Segundo, o agente tem que ser capaz de fornecer explicações significantes para todas as suas ações ([7],[8]).

Em futuras implementações o usuário deveria poder experimentar situações com cenários "o que – se", por exemplo, o usuário pode querer saber que tipos de artigos serão recuperados se uma palavra-chave extra for adicionada ao perfil da consulta.

O segundo método para aumentar o entendimento sobre os agentes é prover explicações para o comportamento do agente. Assim uma explicação razoável deveria estar disponível para justificar porque o documento foi selecionado. Além disso as interfaces devem permitir ao usuário consultar qualquer ação do agente.

2.2.1 Facilidade de Uso

Em geral facilidade de uso ( ou falta dela) será um dos mais importantes itens na área de agentes. Se os usuários não se sentirem confortáveis trabalhando com agentes, se eles se sentirem inseguros ou não sentirem confiança, ou se eles tiverem que tratar com problemas de hardware ou de softwares, agentes não serão usados efetivamente [2]. Alguns itens importantes para se obter facilidade de uso são discutidos a seguir.

2.2.1.1 A Interface do Usuário

Uma boa interface entre usuário e agentes terá que parecer amigável para usuários novatos. Existem debates sobre se a utilização ou não de interfaces antropomórficas (interfaces que exibem características humanas) é uma boa forma de obter este objetivo. Alguns acreditam que pessoas gostam de tratar computadores como se eles fossem humanos e desta forma uma interface com aparência humana deixaria o usuário mais a vontade, outros acreditam que interfaces antropomórficas podem dar uma aparência infantil ao software, ou pode desapontar pelo nível de inteligência de sua interface ( isto é, pela percepção das limitações da interface). Portanto interfaces além de parecerem boas terão que ser inteligentes, inteligência neste contexto se relaciona a habilidades como ser capaz de entender comandos em linguagem natural ( preferencialmente com a habilidade adicional de entender sentenças ambíguas ) ou a habilidade de levar o contexto em consideração.

2.2.1.2 Segurança e Privacidade

Conforme citado acima, usuários devem sentir confiança em seu agentes inteligentes. Eles devem sentir segurança nas ações executadas pelos agentes autônomos. O surgimento de sistemas multi-agentes traz complicações adicionais à segurança e confiabilidade. É muito difícil ter uma visão geral da situação quando várias camadas de agentes e tipos de agentes estão envolvidos: como se pode assegurar que nada é perdido, mudado ou tratado de maneira errada, em um sistema onde múltiplos tipos de agentes necessitam trabalhar juntos para satisfazer um requisição?

Uma possibilidade para oferecer segurança em um sistema de agentes é usar uma linguagem comum, mas como já foi citado anteriormente é pouco provável que agentes usarão a mesma linguagem.

Outro fator complicante é o fato que agentes são programados assincronamente, são construídos em diferentes momentos no tempo, assim cada agente terá sua própria agenda e habilidades, que podem não ser compatíveis com outros agentes.

Privacidade pode ser considerado um sub-conjunto do sentimento de controle, mas merece uma consideração especial por causa das implicações sociais. É um tópico complexo e profundamente enraizado na cultura humana e em sistemas legais.

Segurança e privacidade são itens que devem ser abordados rapidamente, não apenas no sentido técnico, mas também no sentido social, para que a tecnologia de agentes seja efetivamente utilizada no futuro, onde espera-se uma sociedade totalmente "interconectada" [7].

2.2.1.3 Aplicações Disponíveis

"Facilidade de uso" está ligada a outro fator para a aceitação e adoção dos usuários da tecnologia de agentes: a disponibilidade de aplicações que o usuário considera, útil, conveniente, etc. Hermans [2] considera que a adoção de agentes não será dirigida pelas capacidades da técnica de agentes, mas pelas aplicações disponibilizadas.

Algumas das principais aplicações de agentes (relacionadas às necessidades de informações) são descritas a seguir, algumas já disponíveis, outras que serão liberadas dentro de alguns anos [2].

2.2.2 Usuários - Overview Cronológico do Desenvolvimento Esperado

Hermans [2] esboça as seguintes previsões de desenvolvimento da técnica de agentes no que diz respeito à interação com o usuário:

A curto prazo : crescimento da confiança do usuário no uso de agentes

 

A médio prazo ( a partir do ano 2000): adicional confiança e delegação de tarefas a agentes?

É difícil prever qualquer tipo de desenvolvimento num prazo mais longo. O que se espera é que a confiança do usuário na tecnologia de agentes aumente e que os agentes sejam utilizados para:

 3. Conclusões

Neste trabalho foram apresentadas as tendências de desenvolvimento e utilização da tecnologia de agentes. Inicialmente foi definido o termo agente, as características que um agente deve possuir e as principais áreas de aplicações desta tecnologia.

Foram apresentados diversos tópicos que precisam ser tratados para que o uso de agentes possa se tornar efetivo. Foram também discutidos a importância da definição de padrões, principalmente na linguagem de comunicação de agentes.

Discutiu-se sobre sistemas multi-agentes e agentes móveis, que são áreas que têm recebido bastante atenção por parte dos pesquisadores.

Foi apresentado, de uma forma empírica. o desenvolvimento tecnológico esperado para os próximos anos. Previsões nesta área são difíceis pois a tecnologia de agentes está em seus primórdios e existem diversos fatores envolvidos.

Existe muita discussão sobre se a tecnologia de agentes é um conceito novo ou não. Neste trabalho procurou-se evidenciar que para um software ser definido como agente ele deve possuir um conjunto de características básicas, entretanto tudo que pode ser realizado por um agente pode também ser realizado por outras tecnologias, o que os pesquisadores argumentam é que a aplicação da tecnologia de agentes em algumas áreas trazem melhores resultados que a utilização de outras tecnologias.

 4. Referências

[1] Green S., Hurst L. and otthers; Software Agents: A Review; http://www.cs.tcd.ie/research_groups/iag/iag/ ; 1997;

[2] Hermans B.; Intelligent Software Agents On The Internet; http://www.firstmonday.dk/issues/ ; 1996;

[3] Morreale P.; Agents on the Move; http://www.lexitech.com/bobrich/hun14.htm ; 1998;

[4] Genesereth M.R. e Ketchpel S.P.; Software Agents; Communications of the ACM, vol. 37, n. 7, July 1994;

[5] Bird, S.S.; Towards a Taxonomy of Multi-agent Systems; Inter. J. M. Stud, vol. 36, 1993;

[6] Maes P.; Agents that Reduce Work and Information Overload; Communications of the ACM, vol. 37, n. 7, July, 1994;

[7] Norman D. A. ; How Might People Interact with Agents; Communications of the ACM, vol. 37, n. 7, July, 1994;

[8] Maes P.; Software Agents; http://agents.www.media.mit.edu/groups/ ; 1997

[9] Greif I.; Desktop Agents in Group-Enabled Products, Communications of the ACM, vol. 37, n. 7, July, 1994;