Página Principal Noções
Básicas Algoritmos
Genéticos Redes Neurais
Multiagentes
Cognição Software
Artigos Tutoriais
Links Quem
sou eu

Agentes
Inteligência Artificial Distribuída (IAD)
Conceituação
A palavra “agente” se refere a todo ente que possui a habilidade, capacidade e permissão para atuar em nome de outro. Falando em termos humanos, agentes seriam pessoas com um conhecimento ou recurso mais especializado em determinada área, mediante o qual ajudariam outras pessoas em suas tarefas. Por exemplo, uma secretária atende e resolve situações em nome do seu chefe livrando-o assim de determinadas tarefas como agendamento de visitas e reuniões.
Não existe ainda um consenso quanto à definição de agente. No entanto, os pesquisadores tem formulado diversas definições de acordo com a sua área de atuação, dentre as quais podemos destacar:
| Wooldridge & Jennings [WOO 94]: Agentes são sistemas que apresentam um comportamento determinado por um processo de raciocínio baseado na representação de suas atitudes, tais como crenças, comprometimentos e desejos. Eles acreditam que um sistema pode ser visto como um agente se ele possuir as seguintes propriedades: autonomia, habilidade social, reatividade, pró-atividade. | |
| Pattie Maes [MAE 94]: Agentes são sistemas computacionais que habitam algum ambiente dinâmico e imprevisível, sensoriando seu estado e atuando autonomamente, executando uma série de objetivos ou tarefas para os quais foram implementados. | |
| Nwana [NWA 96]: Um agente é um componente de software ou hardware que é capaz de atuar para poder executar uma tarefa em nome de um usuário. | |
| Russel & Norvig [RUS 95]: Segundo eles, a inteligência está altamente ligada com ações racionais. Agir racionalmente significa agir de forma a alcançar as metas definidas por alguém, dadas as crenças deste alguém. Neste sentido, definem genericamente um agente como algo que percebe seu ambiente por meio de sensores e atua contra este ambiente por meio de atuadores. | |
| Franklin & Graesser [FRA 96]: Um agente autônomo é um sistema situado em um meio ambiente, do qual ele faz parte e percebe, agindo sobre o mesmo continuamente, num período de tempo, buscando suas ações em sua própria agenda, podendo suas ações afetar suas percepções futuras. |
Segundo Wooldridge & Jennings [WOO 95], um agente humano possui olhos, ouvidos, e outros órgãos de sensoriamento, e mãos, pernas, boca, e outras partes do corpo como atuadores. Um agente robótico utiliza câmeras e sensores (ultra-som, infravermelho) como sensores e vários motores como atuadores. Já um agente de software possui strings de bits codificadas como suas percepções e ações. A figura 1 mostra o diagrama de um agente genérico segundo Russel [RUS 95].

Figura 1: diagrama de um agente genérico
Das definições vistas até o momento, é possível extrair algumas características comuns aos agentes: devem estar inseridos em um ambiente, devem ter capacidade de sensoriar o seu entorno e atuar sobre ele, e devem agir segundo os objetivos para os quais foram implementados. Portanto, devem possuir uma série de atributos ou propriedades que os definem como agentes (não necessariamente o agente deve apresentar todas estas propriedades) [FER 98], [VAL 98]:
Autonomia: os agentes podem operar sem a intervenção de humanos ou de outros agentes;
Sociabilidade: os agentes são capazes de interagir com outros agentes (humanos ou não) por meio de uma linguagem de comunicação entre agentes;
Reatividade: os agentes são capazes de perceber estímulos do seu entorno e reagir a ditos estímulos;
Pró-atividade, iniciativa: os agentes não são apenas entidades que reagem a um estímulo. Tem caráter empreendedor e podem atuar guiados por seus objetivos;
Continuidade temporal: os agentes estão continuamente ativos (podem ser processos/threads executando em background ou foreground). A maioria dos programas existentes, ao contrário dos agentes, executa uma ou mais tarefas e termina a sua execução;
Orientação por objetivos: um agente é capaz de resolver tarefas complexas, pois decompõe-nas em sub-tarefas menos complexas, decidindo a ordem em que tentará resolve-las e como irá subdividi-las para atingir seus objetivos;
Mobilidade: capacidade de um agente de locomover-se através de uma rede de computadores;
Veracidade: assunção de que um agente não comunica informação falsa de propósito;
Benevolência: assunção de que um agente está disposto a ajudar outros agentes se isto não entra em conflito com seus próprios objetivos;
Racionalidade: assunção de que um agente atua de forma racional, tentando cumprir seus objetivos se são viáveis;
Adaptabilidade: o agente deverá adaptar-se aos hábitos, métodos de trabalho e preferências do utilizador. Um agente com capacidade de adaptação é capaz de alterar o seu comportamento com base na experiência (aprendizagem).
Como foi dito anteriormente, não existe um consenso universal sobre a definição de agente, logo, corre-se o risco de que qualquer programa seja denominado agente. Pode-se distinguir duas noções extremas de agentes [WOO 95]:
Noção Fraca: é uma noção considerada relativamente insatisfatória a qual consiste basicamente em definir um agente como sendo uma entidade capaz de intercambiar mensagens por meio do uso de uma linguagem de comunicação de agentes (habilidade social). Segundo essa noção, além da habilidade social, o agente mostra as seguintes propriedades: autonomia, reatividade e pró-atividade.
Noção Forte: este enfoque apresenta uma definição mais abrangente e satisfatória na qual um agente além de apresentar as propriedades de autonomia, habilidade social, reatividade e pró-atividade se define como uma entidade implementada utilizando-se propriedades aplicáveis à pessoas, como por exemplo, conhecimento, crenças e intenções (estados mentais). Vários outros atributos são geralmente discutidos no contexto de agente: mobilidade, veracidade, benevolência e racionalidade.
A classificação dos agentes pode ser efetuada de diversas formas, sendo que a mais usual é aquela realizada de acordo com a linha de pesquisa e desenvolvimento, na qual é priorizada a função ou objetivo principal do agente. dessa forma, podemos realizar a seguinte classificação [BER 96], [WOO 95]:
Agentes de interface: também chamados assistentes pessoais ou agentes de usuário, possuem objetivo de simplificar as tarefas rotineiras realizadas por um usuário. Esse tipo de agente observa e monitora as ações tomadas pelo usuário na interface, aprende novos “atalhos” e sugere melhores formas de desenvolver a tarefa. O agente de interface age como um assistente pessoal autônomo o qual coopera com o usuário na realização de determinadas tarefas. Ele aprende e cria o perfil do usuário basicamente de 4 formas [MAE 94]:
1. Observando e imitando o usuário;2. Mediante recebimento de um feedback positivo ou negativo por parte do usuário;3. Recebendo instruções explícitas do usuário;4. Mediante ajuda de outros agentes.Agentes colaborativos: enfatizam a autonomia e a cooperação (com outros agentes) de maneira a executar tarefas para seus proprietários. Eles podem ter algumas características de aprendizado, mas este aspecto não é usualmente o foco central das suas operações. De forma a ter um grupo coordenado de agentes colaborativos, eles devem ser capazes de negociar entre si a fim de encontrar soluções mutuamente aceitáveis em determinados assuntos.
Agentes móveis: representam um novo paradigma na computação distribuída. O conceito de mobilidade implica na capacidade do agente de se deslocar entre diversas máquinas, evitando dessa maneira uma sobrecarga de comunicação ou permitindo-lhes utilizar recursos não existentes em sua máquina de origem. Um dos principais problemas relacionados a este tipo de agente é o relativo à segurança – um agente dessa categoria seria, por exemplo, um excelente disseminador de vírus dentro da rede na qual estivesse inserido.
Agentes de recuperação de informação: também conhecidos como agentes de Internet. Tem tido o seu desenvolvimento favorecido pela grande quantidade de informação disponível na Internet e a dificuldade gerada para encontrar e indexar essa informação de forma a fornece-la ao usuário. Um exemplo desse tipo de agentes são os SoftBots os quais permitem o cumprimento de objetivos de alto nível como, por exemplo, buscar os artigos referentes ao ano de 2001 de Pattie Mae; o SoftBot teria que realizar a busca dos arquivos, solicita-los por correio eletrônico, etc.
Quanto ao método utilizado para dotar o agente de inteligência (ou comportamento inteligente), podemos classificar os agentes em três grupos distintos de arquiteturas, dependendo do tipo de processamento utilizado [ALV 97], [FER 98], [TOM 96]:
Agentes Deliberativos (também denominados Simbólicos ou Cognitivos): contém um modelo do mundo, possivelmente incluindo eles mesmos. Tal modelo é de certa forma pré-concebido, mas seu estado é alterado pelo agente em resposta às novas informações sobre o ambiente, percebidas pelos sensores dos agentes. Com base na interpretação deste modelo, o agente estima quais ações serão necessárias para atingir o objetivo proposto, executando então as ações que levarão a sua realização.
Agentes Reativos (ou Reflexivos): estes não modelam o mundo para determinar suas ações. São geralmente agentes simples que possuem um mapeamento de situações e respostas associadas. Dessa forma, quando um estado ambiental é alterado, o agente executa a ação correspondente para satisfazer o novo estado. Este processo é conhecido por estímulo-resposta.
Agentes Híbridos: se mostram como uma alternativa para dotar o agente com capacidades reativas apropriadas, visando solucionar a incapacidade de ação adequada por parte de um agente puramente deliberativo no momento em que o mesmo deve tomar uma decisão rápida e espontânea ao enfrentar uma situação imprevista. Em contra-partida, servem também para proporcionar a um agente puramente reativo, capacidade de raciocínio e planejamento quando o mesmo se deparar com uma situação na qual o ambiente diverge bastante dos seus objetivos iniciais.
Segundo Demazeau & Müller [DEM 90], um agente deliberativo genérico teria a estrutura apresentada na figura 2.

Figura 2: estrutura de um agente deliberativo genérico
Como foi explanado na seção referente às propriedades, não necessariamente um agente deve apresentar todas as ali listadas, mesmo porque seria extremamente difícil implementar um agente que incorporasse todas aquelas características. Dado isso, o conjunto de características componentes de um agente vai depender do tipo de aplicação a que ele se propõe.
Existem diversas propostas sobre tipologia de agentes [NWA 96], [FRA 96], [WOO 94], todas baseadas na análise das características em comum entre os diversos tipos de agentes. Segundo Nwana [NWA 96] podemos classificar tipologicamente os agentes de acordo com:
Mobilidade: o agente pode ser estático ou móvel;
Presença ou não de um modelo de raciocínio simbólico: o agente pode ser deliberativo ou reativo;
Presença das propriedades primárias autonomia, cooperação e aprendizado, sendo que os agentes que apresentam estas três características podem ainda ser classificados como mostra a figura 3, em: agentes colaborativos, agentes colaborativos com capacidade de aprendizado, agentes de interface e agentes realmente inteligentes ;
Função principal assumida pelo agente: por exemplo, agentes de Internet;
Característica híbridas: combinação de duas ou mais filosofias diferentes em um mesmo agente.
Tendo estabelecido essa tipologia, Nwana diferenciou 7 categorias de agentes: agentes colaborativos, agentes de interface, agentes móveis, agentes de informação, agentes reativos, agentes híbridos e agentes inteligentes.

Figura 3: Tipologia de agentes proposta por Nwana.
Já Franklin e Graesser [FRA 96] afirmam que um agente deve ser um processo em contínua execução e deve possuir ao menos as propriedades de autonomia, reatividade e pró-atividade. Após o estudo de diversas definições de agentes, apresentaram a seguinte taxonomia (figura 4):

Figura 4: Taxonomia de agentes proposta por Franklin e Graesser.
Por fim, os agentes podem melhorar sua coordenação e coerência gerenciando o quê, como e quando se comunicam entre si [FER 98]. Por meio da comunicação os agentes podem ter uma visão menos local do problema e, desta forma, adquirir o conhecimento e a sincronia (em relação aos demais agentes) necessários à resolução do problema. Deve-se levar em conta, que se a comunicação entre agentes for excessiva, estará sendo criada uma sociedade de agentes burocráticos onde a carga de comunicação poderá ser maior que o trabalho efetivamente realizado. A seguir são explanadas as formas mais usuais de comunicação entre agente [FER98]:
Sem comunicação: os agentes podem interatuar sem existência
de comunicação entre eles, podendo ocorrer inferência de uns sobre as ações
de outros. Esta situação pode ocorrer em virtude de falhas de hardware, impossibilidade
de comunicação ou pelo desejo de uma maior autonomia por parte dos agentes.
Comunicação primitiva: comunicação restrita a um número de sinais
com interpretação fixa. Tem sido aplicada em SMA para resolução de conflitos
entre dois agentes mediante um mediador mas a coordenação que pode ser obtida
é bastante limitada (ceder o turno por meio de um mediador que sincroniza
os agentes);
Quadro-negro: consta de três componentes principais: o quadro-negro,
um conjunto de Fontes de Conhecimento (KSs, Knowledge Sources) e um mecanismo
de controle. O quadro-negro é uma base de dados global contendo dados e hipóteses
(soluções parciais potenciais). É freqüentemente utilizado o conceito de agenda
para gerenciar a concorrência no acesso ao quadro-negro. Esta agenda é gerenciada
por um monitor que ativa as fontes de conhecimento adequadas, de acordo com
o conteúdo do quadro-negro. Este tipo de comunicação provém da metáfora de
um grupo de pessoas que resolve um problema conjuntamente, utilizando “tempestade
de idéias“. Ou seja: uma pessoa escreve no quadro uma idéia para a solução
do problema em foco, outra dá uma nova idéia ou sugere uma modificação à(s)
idéia(s) já existente(s) e escreve no quadro, e assim por diante, até chegar
a uma solução que agrada a todos os membros do grupo.
Passagem de mensagens: permite que um agente envie uma mensagem
a um ou mais agentes cujos nomes deve conhecer. A diferença principal em relação
ao quadro-negro, é que o agentes deve conhecer o seu entorno para saber exatamente
a qual agentes deve enviar a mensagem. Estas mensagens podem ser tanto de
solicitação de serviços e informações, quanto de respostas a tais solicitações.
Comunicação de alto nível: tem sido dispendido grande esforço
por parte dos pesquisadores para estudar as interações entre os agentes no
nível de conhecimento em vez de no nível simbólico. Desta forma, tenta-se
fazer com que os agentes compreendam as intenções, desejos e objetivos de
outros agentes, e que os mesmos sejam capazes também de transmitir estes desejos,
objetivos e intenções por meio do uso de teorias provenientes da área da linguagem
natural, especialmente na análise e geração de discurso.
Interação homem-máquina: a comunicação entre um agente artificial
e um agente humano tem tido grande ênfase nos últimos tempos. Tem sido realizadas
duas abordagens básicas: encapsular o agente humano modelando suas interações
em uma linguagem de comunicação de agentes ou aproveitar a tecnologia multiagente
para simplificar as interfaces homem-máquina.
![]()
Inteligência Artificial Distribuída (IAD)
Durante vários anos, as pesquisas relacionadas à computação distribuída limitavam-se à conexão física de vários processadores, tratando a troca de dados entre os mesmos e a forma como era efetuado o seqüenciamento entre tais processadores pelo sistema operacional. Desta forma, o termo “Processamento Distribuído” praticamente vinha sendo utilizado quase que unicamente para designar este tipo de problema [TOM 96].
A partir do início da década de 80, as questões referentes ao processamento distribuído tiveram uma mudança de paradigma, voltando-se para as estratégias pelas quais a decomposição e coordenação do processamento em um sistema distribuído seriam conjugadas com as demandas estruturais do domínio das tarefas [TOM 96], dando então origem à Resolução Distribuída de Problemas.
Em paralelo a essas mudanças, evoluía também a pesquisa na área da Inteligência Artificial, que tomando inspiração em metáforas sociais e investindo no campo da computação distribuída, inicia um processo de renovação de conceitos na construção de sistemas inteligentes, dando origem a Inteligência Artificial Distribuída. Segundo Bond & Gasser [BON 88], algumas das motivações mais freqüentes para utilização de IAD são:
Adaptação: a distribuição nos diversos níveis (espacial, temporal, lógica e semântica) permite aos sistemas desenvolvidos com IAD fornecer perspectivas alternativas em novas situações, e também um maior poder de adaptação;
Custo: um sistema distribuído pode envolver um maior número de computadores, em geral simples e relativamente baratos;
Desenvolvimento e gerência: o desenvolvimento de um sistema distribuído pode ser desenvolvido em partes, podendo ser cada uma desenvolvida por um especialista em um determinado domínio;
Eficiência ou velocidade: o paralelismo pode melhorar o tempo de processamento e raciocíno;
Histórico: permite a conservação de sistemas desenvolvidos anteriormente;
Isolamento e autonomia: para prover segurança e maior controle local, diferentes partes de um sistema podem ser isoladas umas das outras;
Naturalidade: certos problemas são naturalmente distribuídos;
Confiabilidade: sistemas de IAD apresentam maior confiabilidade por possuírem redundância e triangulação de resultados;
Limitação de recursos: um único agente apresenta um certo grau de limitação. Com o uso da cooperação entre agentes essas limitações podem ser superadas;
especialização: conhecimento pode ser coletado em outros contextos, melhorando assim, o processo de desenvolvimento do sistema quanto ao controle, extensividade, compreensão, etc.
Outra vertente da IAD são os Sistemas Multiagentes, onde não se parte de um problema específico como nos sistemas RDP, mas se busca a coordenação entre um conjunto de agente autônomos, possivelmente pré-existentes, estudando a forma como eles podem coordenar seus conhecimentos, metas, habilidades e planos conjunta e harmoniosamente, de forma a realizar uma ação ou resolver um problema [BON 88].
Nas abordagens Clássicas de Inteligência Artificial (IA), a ênfase da inteligência é baseada em um comportamento humano individual e o foco de atenção volta-se à representação de conhecimento e métodos de inferência. Já a Inteligência Artificial Distribuída (IAD), é baseada em comportamento social e sua ênfase é para cooperações, interações e para o fluxo de conhecimento entre unidades distintas [OLI 96]. Logo, a IAD é um dos ramos da Inteligência Artificial que concentra o seu foco no comportamento inteligente que emerge como produto da cooperação de diversas entidades as quais denominamos agentes.
Como foi explanado nesta seção, podemos dividir a IAD basicamente em duas áreas, sendo que ambas trabalham com o conceito de agentes: Resolução Distribuída de Problemas (RDP) e Sistemas Multiagentes (SMA), sendo que a RDP estuda como um conjunto de módulos cooperam para dividir e compartilhar o conhecimento de um problema e no desenvolvimento da solução, enquanto os SMA estudam a coordenação da conduta inteligente entre um grupo de agentes inteligentes autônomos. A seguir será dada uma definição um pouco mais abrangente à respeito de RDP e SMA, procurando esclarecer melhor cada uma dessas abordagens, de forma a dirimir dúvidas quanto às diferenças mais marcantes entre elas.
![]()
Resolução Distribuída de Problemas (RDP)
Na Resolução Distribuída de Problemas, os agentes (também denominados nodos ou módulos) cooperam uns com os outros, dividindo e compartilhando conhecimento sobre o problema (preciso e inicialmente conhecido) e sobre o processo de obter uma solução. Nesta abordagem, os agentes são projetados especificamente para resolver aquele problema ou classe de problemas e costuma existir um planejamento centralizado da resolução do mesmo (costuma existir um membro que exerce um controle global e centraliza os resultados parciais e dados obtidos pelos demais componentes do sistema). Sob um ponto de vista externo, um sistema RDP é visto como uma unidade.
O processo de coordenação das ações dos agentes é definido em tempo do projeto [OLI 96], dessa forma, os agentes não existem antecipadamente, ou seja: sua concepção, organização e interação são idealizadas face à existência de um problema a ser solucionado. Na figura 5 [SIC 95], pode ser vista a representação de um sistema RDP

Figura 5: Estrutura de um sistema RDP segundo Sichman
A estratégia de resolução, na RDP, apresenta as seguintes características [ALV 97]:
O problema é resolvido por um conjunto de agentes, fisicamente distribuídos em diversas máquinas conectadas via rede. Esses agentes são previamente desenvolvidos de forma a solucionar um determinado problema;
É estipulada uma organização para restringir o comportamento de tais agentes. Esta organização é, na maioria dos casos, definida durante a concepção do sistema;
A interação entre agentes ocorre por meio de intercambio de mensagens ou por compartilhamento de dados comuns. Esses procedimentos são quase sempre definidos durante a concepção do sistema e são intimamente ligados ao modelo algorítmico subjacentes (como por exemplo, o quadro-negro) e ao problema que o sistema deve resolver;
De forma a aumentar a velocidade de resolução, os agentes são executados de forma concorrente;
A cooperação pode existir a nível de subproblemas, ou seja, os agentes dividem entre si as diversas partes do problema original (tarefas), ou podem aplicar diferentes estratégias para a resolução de uma mesma tarefa;
Existe a noção de controle global, na maior parte dos casos, o qual garante um comportamento global coerente do sistema, conforme a organização inicialmente prevista, sendo que esse controle pode ser tanto centralizado (um agente encarregado da gestão do sistema) quanto distribuído.
Dessa forma, nos sistemas RDP sempre se parte de um problema bem definido, para cuja solução um controlador exerce uma distribuição das tarefas estática e pressupostamente ótima, atribuindo partes do problema aos agentes componentes do sistema segundo critérios de eficácia geral [ALO 97]. Nesse tipo de sistema, o conhecimento é completo apenas no agente central (nodo central), enquanto que os demais agentes possuem apenas conhecimento completo sobre suas próprias tarefas e sobre os mecanismos com que foram dotados para executa-las com eficiência; ou seja, eles não possuem uma visão global do problema (sequer sabem qual é) nem do sistema, visto que não participam do planejamento nem da síntese de resultados. Logo, são considerados sistemas totalmente precisos/quase autônomos (CA/NA – completely accurate/nearly autonomous).
Os sistemas RDP apresentam um controle centralizado e guiado externamente (trabalha em função de requisições) em busca dos objetivos, controle este determinado pela transmissão de objetivos e tarefas de modo explícito. Ou seja, quando o agente central envia uma requisição a um outro agente, este último executará alguma ação como resposta, no sentido de cumprir a requisição. Sendo assim, os agentes possuem menos autonomia na hora de processar suas estratégias e, conseqüentemente, seu comportamento será pouco flexível. Quanto mais explícita seja esta requisição e quanto mais externamente seja guiado um agente, tanto mais explícita será a forma de controle [ALO 97].
Além de tudo, os sistemas RDP fazem uso de comunicação primitiva, ou seja, a comunicação é restrita a um conjunto pré-definido de sinais com uma interpretação fixa, o que, devido às restrições impostas pela quantidade e tipos de sinais limita a cooperação entre agentes.
O SMA é um tanto diferente da RDP pois ele faz uso do conceito de “comunidade de agentes inteligentes”, cujo enfoque se baseia na existência de uma sociedade, composta por vários agentes que atuam no sistema por meio de cooperação e concorrência, sendo que é devido a esse “comportamento social” que emerge a inteligência do sistema. Assim, o objetivo maior dos pesquisadores em SMA está na coordenação de tal comportamento social inteligente, uma vez que dita coordenação envolve conhecimento, objetivos, habilidade e planejamento sobre os agentes e não necessariamente está voltada para a busca da solução de um problema específico, como é o caso da RDP.
Então, nesta abordagem a idéia consiste em coordenar o comportamento inteligente de um conjunto de agentes autônomos, cuja existência pode ser anterior ao surgimento de um problema em particular. Os agentes devem raciocinar a respeito das ações e sobre o processo de coordenação em si. As suas arquiteturas são mais flexíveis e a organização do sistema está sujeita à mudanças visando adaptar-se às variações no ambiente e/ou no problema a ser resolvido [OLI 96]. O termo agente, neste caso, designa uma entidade inteligente, agindo racional e intencionalmente em relação aos seus próprios objetivos e ao atual estado do seu conhecimento. Já, pelo termo autônomo, entende-se que cada agente possui sua própria existência, a qual não se justifica pela presença ou não de outros agentes nem pela existência prévia de algum problema. Considera-se, portanto, como sendo um sistema no qual convivem vários agentes, que podem vir a colaborar entre si, mas não necessariamente [TOM 96].
Segundo Álvares e Sichman [ALV 97], do ponto de vista de concepção do sistema, o SMA apresenta as seguintes características:
Os agentes são concebidos independentemente de um problema particular a ser resolvido. O projeto de um agente deve resultar numa entidade capaz de realizar um determinado processamento, e não numa entidade capaz de realizar este processamento exclusivamente no contexto de uma aplicação alvo particular;
A concepção das interações também é realizada independentemente de uma aplicação-alvo particular. Busca-se desenvolver protocolos de interação genéricos, que possam ser reutilizados em várias aplicações similares. Um exemplo de um tal protocolo seria, por exemplo, um protocolo de apresentação de um agente quando este ingressa numa sociedade. Obviamente, um protocolo deverá ser instanciado com dados do domínio do problema para poder ser efetivamente utilizado numa aplicação;
A mesma filosofia anterior pode ser estendida ao projeto das organizações. Normalmente, se distingue as funcionalidades necessárias a uma resolução particular dos agentes que irão efetivamente implementar tais funcionalidades;
Durante a fase de resolução, os agentes utilizam suas representações locais dos protocolos de interações e das organizações para raciocinar e agir. Deste modo, não existe um controle global do sistema, este é implementado de forma totalmente descentralizada nos agentes.
Uma vez que os agentes são concebidos independentemente de um problema particular a ser resolvido, torna-se possível, a reutilização de tais componentes quando se desejar projetar aplicações similares. Os agentes irão instanciar dinamicamente as organizações e interações quando um problema for apresentado ao sistema. De certo modo, pode-se considerar que certas propriedades globais do sistema que eram totalmente pré-definidas pelo projetista na abordagem RDP, e que eram também ligadas ao modelo algorítmico subjacente, são agora representadas de modo explícito e efetivamente utilizadas pelos próprios agentes do sistema. A figura 6 mostra a estrutura de um SMA segundo a concepção de Sichman [SIC 95]

Figura 6: Estrutura de um SMA segundo Sichman
Quanto à arquitetura, os SMA são classificados de acordo com o tipo de agentes que os compõe, seguindo a mesma arquitetura apresentada inicialmente para os agentes (deliberativos, reativos ou híbridos) [ALV 97], sendo que: um SMA Cognitivo será composto por agentes complexos (agentes cognitivos ou deliberativos) que possuem um modelo de raciocínio, que planificam suas ações e que negociam suas interações com outros agentes; um SMA Reativo será composto por agentes simples (agentes reativos) que não possuem nenhum modelo simbólico ou interno do seu ambiente e que agem utilizando um comportamento estímulo/resposta e, finalmente, um SMA híbrido, será uma junção das duas arquiteturas anteriores, ou seja, possuirá tanto agentes deliberativos quanto reativos interagindo na sociedade.
Sichman, Demazeau e Bossier destacam ainda alguns pontos importantes quanto aos SMA [SIC 92]:
| A decomposição das tarefas é realizada pelos agentes; | |
| Como os agentes são autônomos, com seus próprios objetivos individuais, conflitos podem surgir com facilidade; | |
| É necessária uma comunicação complexa entre os agentes; | |
| Os agentes podem trabalhar em outros problemas; | |
| SMA é um enfoque de sistemas abertos; | |
| O ambiente pode sofrer alterações, sendo um agente um elemento adaptável, alterando sua representação interna do mundo. |
Conforme a ilustração do agente deliberativo genérico, apresentada no início deste texto (figura 2), Demezeau e Müller [DEM 90] realizam uma classificação dos tipos de interações entre dois agentes dentro de um sistema multiagente como sendo:
| Fortes: quando envolvem interações entre a capacidade de decisão, possibilidades e conhecimento do outro agente sendo considerado. Ocorrem por meio de sofisticados protocolos para informar, efetuar requisições e convencer; | |
| Médias: quando relacionam, respectivamente, conhecimento e possibilidades de um agente com o conhecimento e possibilidades do outro agente. São interações realizadas a nível de capacidade de raciocínio e ocorrem quando um agente simplesmente tenta considerar o que o outro deseja realizar; | |
| Fracas: quando os modelos de agentes estão relacionados apenas por meio do conhecimento.A interação ocorre somente através de alterações no mundo exterior, mediante o envio de mensagens ou modificando o ambiente. |
Os SMA vem sendo utilizados nos mais diversos domínios entre os quais [WOO 96], [JEN 98, 95], [MAE 94]:
| Ampla gama de aplicações industriais (controle de processos. Ex: ARCHON); | |
| Controle de tráfego aéreo (Kinny et all 1996 apud [JEN 98]): OASIS - sofisticado sistema de controle de tráfego aéreo baseado no paradigma multiagente, utilizado no aeroporto de Sydney, Austrália, no qual os agentes assumem o lugar dos aviões em operação; | |
| Gerenciadores de informação (Maxims, Newt); | |
| Comércio eletrônico: um dos muitos exemplos é o Kabash. Um sistema que cria agentes de compra e venda e as transações são realizadas pela interação entre esses agentes (Chavez and Maes 1996 apud [JEN 98]); | |
| Aplicações médicas (GUARDIAN: sistema de monitoração de pacientes em UTI pós operatória monitoração de pacientes desenvolvido por (Hayes-Roth et al., 1989 apud [JEN 98]); | |
| Entretenimento (jogos como o Quake e ainda teatro e cinema interativos); |
Entre outras tantas aplicações, como:
Além disso, algumas das principais aplicações de agentes no que tange a área da informação são listadas a seguir, sendo que diversas já estão disponíveis e outras ainda se encontram em fase de desenvolvimento:
![]()
Limitações dos Sistemas Baseados em Agentes
Embora a tecnologia de agentes tenha um papel importante no desenvolvimento de aplicações computacionais, não deve ser superestimada. A maioria das aplicações que usam agentes atualmente, poderiam ser construídas usando técnicas não-agente. Assim o mero fato que um domínio particular do problema possui origens de dados distribuídas não implica necessariamente que uma solução baseada em agentes seja a mais apropriada.
Como em todo projeto de sistema, a escolha final é ditada por muitos fatores. Aqui são apresentadas algumas situações em que o paradigma de aplicação baseada em agentes deve ser bem pensado antes de sua utilização. Por exemplo, devemos notar que a natureza do enfoque em agentes cria uma quantidade de problemas comuns a todas as aplicações baseadas em agentes [JEN 98]:
Nenhum
controlador total do sistema. Uma solução baseada em agentes pode não ser
apropriada para os domínios em que os vínculos globais têm que ser mantidos,
nos domínios onde uma resposta tempo-real deve ser garantida, ou nos domínios
em que os becos sem saída ou os travamentos devem ser evitados;
Nenhuma
perspectiva global: As ações dos agentes, por definição, são determinadas
pelo estado local dos agentes. Entretanto, desde que em quase nenhum sistema
realista do agente, o conhecimento global completo é uma possibilidade, isto
pode significar que os agentes fazem decisões globais sub-ótimas;
Confiança
e delegação. Para que os usuários estejam de acordo com a idéia de delegar
tarefas aos agentes, devem primeiramente confiar neles. Os usuários têm que
adquirir confiança nos agentes que trabalham em seu interesse, e este processo
pode levar bastante tempo. Deve-se atentar para que o agente não exceda a
sua autoridade com relação ao usuário ou organização; um agente deve saber
suas limitações.
É interessante traçar alguns paralelos entre a IAD e as diferentes organizações sociais existentes no mundo real, sejam elas humanas ou de outros animais (sociedades de médicos, formigas ou abelhas, por exemplo).
Da mesma forma como a Sociologia é aqui apresentada como tendo objetivos distintos da Psicologia e Biologia, a IAD clássica também tem seu foco dirigido ao estudo dos fenômenos resultantes das interações entre agentes distintos, e não apenas com as propriedades de uma entidade inteligente em particular.
Como resultado da analogia entre Sociologia e IAD, a apresentação de metáforas inspiradas em fenômenos de processamentos que acontecem no mundo natural é constante no contexto da IAD. Kornfield e Hewitt [KOR 88] realizaram um trabalho interessante, intitulado de “metáfora da comunidade científica”, onde apresentam que, quando objetiva-se desenvolver algo capaz de realizar determinado processo, tal como resolução de problemas, é freqüente, no contexto da engenharia, que primeiramente se estude sistemas que ocorrem naturalmente e que já implementem tais processos. A partir disso, e da observação de que as comunidades científicas provaram ser bem sucedidas em resolver problemas, eles realizaram uma análise de como isto acontece nestas comunidades.
As principais observações sobre estas comunidades são:
Caracterizam-se como sistemas altamente paralelos, pois os cientistas trabalham concorrentemente com outros cientistas, em problemas iguais ou diferentes, podendo ou não saber dos demais trabalhos, com opiniões semelhantes ou mesmo totalmente opostas;
Os cientistas estão aptos a se comunicarem uns com os outros;
Há determinados mecanismos para o controle de recursos para os cientistas, usualmente baseado na comparação de metodologias competitivas e realocação de recursos com base em seus méritos relativos;
A pesquisa científica consiste na geração de propostas a serem analisadas pela comunidade, sendo simultaneamente sustentada por alguns e refutada por outros. Daí, ela pode ser validada, modificada ou descartada.
Portanto, concluiu-se que a diversidade observada é o aspecto crucial para o sucesso da pesquisa científica. Esta característica do alto grau de paralelismo das comunidades científicas, é o principal ponto da metáfora para os sistemas computacionais e que é utilizado como um dos fundamentos da IAD.
A partir das análises, foi desenvolvida uma linguagem que incorporava elementos geradores de hipóteses, elementos adeptos, refutadores e também elementos responsáveis pela alocação de recursos. Os resultados experimentais comprovaram as suposições apresentadas na proposta do trabalho.
Outra metáfora, um tanto mais simplista mas não menos eficiente na hora da implementação e verificação de resultados, é a da comunidade de formigas, a qual é composta por agentes relativamente simples, subdivididos em grupos com características individuais e capacidades diferentes (operárias, guerreiras,...), grupos estes que irão interagir na busca de um objetivo comum (no caso das formigas, a sobrevivência da comunidade). Esta metáfora se baseia então em uma sociedade de agentes reativos na qual cada agentes em particular é bastante simples e considerado sem inteligência. Entretanto, as tarefas realizadas pela sociedade são complexas e demonstram que sua organização, somada as ações de cada indivíduo, produzem um modelo considerado inteligente.
Várias outras metáforas tem sido utilizadas não somente para inspirar os trabalhos em IAD, mas também para definir metodologias, técnicas e ferramentas próprias, tanto que Star [STA 89] propõe a substituição, para os sistemas de IAD, do “Teste de Turing” pelo que chamou de “Teste de Durkheim”, onde os sistemas seriam testados em relação a suas habilidades em atingir objetivos comunitários. [TOM 96]
![]()
| [ALO 97] |
ALONSO, Eduardo. Inteligencia Artificial Distribuida: Cómo entenderla y usarla. Revista online “La Naturaleza de la Luz” http://www.arrakis.es/~jjreina/revista |
| [ALV 97] | ÁLVARES, L. O.; SICHMAN, J. S. Introdução aos Sistemas Multiagentes. In: JAI, XVII Congresso da SBC, Brasília (DF), 1997. |
| [BER 96] | BERNEY, B. Software Agents – A Review.Manchester Metropolitan University.1996. |
| [BON 88] | BOND, A.H. and GASSER, L. Readings in Distributed Artificial Intelligence. Morgan Kaufmann, San Mateo (CA), 1988. |
| [DAM 96] | DAMÁSIO, Antônio. O Erro de Descartes: Emoção, razão e cérebro humano. São Paulo: Companhia das Letras, 1996. |
| [DEM 90] | DEMAZEAU, Yves & MÜLLER, Jean-Pierre. Descentralized Artificial Intelligence. Proceedings of the First European Workshop on Modeling Autonomous Agents in a Multi-Agent World. Cambridge: North-Holland, 1990 |
| [DUR 94] | DURFEE, E. H.; ROSENSCHEIN, J. S. Distribuited Problem Solving and Multi-Agent Systems: Comparation and Examples. In International Workshop on Distributed Artificial Intelligence, 1994. |
| [FER 98] | FERNÁNDEZ, Carlos Ángel Iglesias. Definición de una Metodología para el Desarrollo de Sistemas Multiagente. Tese de doutorado. Departamento de Ingenieria de Sistemas Telemáticos, Universidad Politécnica de Madrid, Jan., 1998. |
| [FRA 96] | FRANKLIN, S; GRAESSER, A. Is it an Agent, or just a Program?: A Taxonomy for Autonomous Agents. Proceedings of the Third International Workshop on Agent Theories, Architectures and Languages. Springer-Verlag. 1996. |
| [GAR 95] | GARDNER, Howard. Inteligências Múltiplas: Múltiplas Perspectivas. Porto Alegre: Artes Médicas, 1995. |
| [GOD 98] | GODOY, Norton. Entrevista com Marvin Minsky - Revista IstoÉ -10 de junho de 1998 |
| [JEN 98] | JENNINGS, N.; WOOLDRIDGE, M. Agent Technology - Foundations, Applications, and Markets. Springer-UNICOM. 1998. |
| [KOR 88] | KORNFIELD, W.A.; HEWITT, C. E. The scientific community metaphor. In: Readings in D.A.I. Edited by Alan Bond e Les Gasser San Mateo, California, USA. Proceedings..., Morgan Kaufman, 1988. |
| [MAE 94] | MAES, P. Modeling Adaptive Autonomous Agents. Artificial Life Journal, v.1, n. 1&2, p.135-162. MIT Press. 1994. |
| [MAT 99] | MATURANA, Humberto Romesín; Da Biologia à Psicologia. Porto Alegre: Artes Médicas, 1999 |
| [NWA 96] | NWANA, H. S. Software Agents; na Overview. In: Knowledge Engineering Review. Vol. 11(3) pp. 1-40. Cambridge University Press, October/November 1996. |
| [OLI 96] | OLIVEIRA, F.M. Inteligência Artificial distribuída. In: IV ESCOLA REGIONAL DE INFORMÁTICA, Londrina-Itajaí-Canoas, Brasil, Abril 1996. |
| [RUS 95] | RUSSELL, S.; NORVIG, P. Artificial Intelligence: A Modern Aproach. Prentice Hall. 1995 |
| [SIC 92] | SICHMAN, J.; DEMAZEAU, Y.; BOISSIER, O. When can knowledge-based systems be called agents? In XII Congresso da Sociedade Brasileira de Computação, IX Simpósio Brasileiro de Inteligência Artificial, p. 172-185, 1992. |
| [SIC 95] | SICHMAN, Jaime Simão. Du Raisonnement social chas les Agents: Une Approche Fondée sur la Théorie de la Dépendance. Tese de doutorado. Laborateire d’Informatique Fondamentale et d’Intelligence Artificielle, Institut National Polytechnique de Grenoble, Set., 1995. |
| [STA 89] | STAR, S. L. The Structure of III-Structured Solutions: Boundary Objects and Heterogeneous Distributed Proble Solving. In: GASSER, L. & HUHNS, M.N. Distributed Artificial Intelligence II. San Mateo, California: Morgan Kaufmann Publishers, 1989. pp 37-54. |
| [TOM 96] | TOMINAGA, Paulo. Processo de Negociação em Sistemas Multi-Agentes: Modelagem e Análise com Redes de Petri. CPGCC / DCC / ICE / Universidade de Brasília, 1996. Dissertação de Mestrado. |
| [VAL 98] | VALENTE, Célia Talma Martins de Pinho. SMAPI – Sistema Multi-Agente de Pesquisa Inteligente. Tese de mestrado. Faculdade de Engenharia da Universidade do Porto. 1998. |
| [WOO 94] | WOOLDRIDGE, M. Coherent social action. In Proc. ECAI-94, pp. 245-250, 1994. |
| [WOO 95] | WOOLDRIDGE, M. & Jennings, Intelligent Agents: Theory and Practice, 1995. |
| [WOO 96] | WOOLDRIDGE, M.; JENNINGS, N. Software Agents. IEE Review, p.17-20. 1996. |
| [YEP 01] | YEPES, Igor. Inteligência Artificial Distribuída: Uma Abordagem ao Comportamento Social Inteligente, CPGC / UFRGS, 2001. |
Página Principal
Noções Básicas
Algoritmos Genéticos
Redes Neurais Multiagentes
Cognição Software
Artigos Tutoriais
Links Quem
sou eu