You are on page 1of 9

Motivação e Cooperação.

Aldo Pires – 1402225;
Jorge Costa – 1402247;
Samuel Lima – 1402607.
Trabalho para a unidade curricular Sistemas Multi-Agentes.
Resumo da Parte III do Livro:
Wooldrige, M. - An Introduction to MultiAgents Systems, 2nd Edition, Wiley, 2009
Mestrado em Tecnologias e Sistemas Informáticos Web – Universidade Aberta
24/04/2015
Capitulo 6 - Entendendo uns aos outros
A ontologia define um vocabulário para interpretação do conhecimento, para que agentes possam
entender uns aos outros, executando um papel importante na troca de informações oferecendo uma
estrutura semântica às fontes de dados. Uma ontologia tem três componentes básicos: classes - que
representa um conjunto de entidades partilhando determinadas propriedades em comum, geralmente
organizados em uma taxonomia hierárquico “é um”; instancias – são exemplos concretos de classes,
com propriedades intrínsecas e extrínsecas; axiomas – definem restrições de classes, modelando
sentenças com verdades inquestionáveis. O tipo de ontologia é definido pelo nível de formalidade do
seu vocabulário e os tipos de informação que vinculam, sua aplicação e à estrutura.
Existe uma grande variedade de linguagens para construção de ontologias, onde em termos de
popularidade se destacam o XML, o OWL e o KIF. O XML não é uma linguagem de ontologia, mas
pode ser usado para definir ontologias simples de uma maneira informal, como a web semântica, é
uma metalinguagem baseada no SGML que permite a definição de novos marcadores. O OWL é um
conjunto de vários frameworks de ontologias baseados no XML, com três variedades: OWL Lite,
OWL DL e OWL Full, sendo cada uma dessas variedades uma sub-linguagem da sua antecessora,
utiliza representação em XML, com uma sintaxe abstrata para humanos e excuta as seguintes tarefas
de raciocínio: verificação de consistência, satisfação de conceito, classificação de conceitos, calcula
hierarquia de subsunção, subsunção de classes, pelo menos um subsumisor em comum e classificação
de instâncias. O KIF é fortemente baseado na logica de primeira ordem, com uma notação LISP-like,
onde é possível os agentes expressar: propriedades das coisas em um domínio, relação entre coisas
em um domínio e propriedades gerais de um domínio.
RDF não é uma linguagem de ontologia, mas está estreitamente ligada com a ontologia em geral e
com a web semântica, em particular, desenvolvida essencialmente com o objetivo de standarizar a
representação do conhecimento de frameworks web. As expressões são representadas como triplas,
que consiste de um sujeito, predicado e objeto. Para construir uma ontologia segundo Noy e
McGuinness é necessário seguir as seguintes etapa: determinar o domínio e o escopo da ontologia,
1

1989]. Posteriormente os speech acts foram modeladas como ações realizadas por agentes racionais no apoio de suas intenções por Cohen e Levesque . Que propõe que a resolução de problemas em grupo progride por um grupo de 'origens de conhecimento' (agentes) observando uma estrutura de dados compartilhada como um quadro negro: resolução de problemas progride como estas origens de conhecimento contribuem com soluções parciais para o problema. no qual uma gente pode explicitamente tratar a ilocucionária força desejada para a mensagem.(Caso de paradigma: agradecimento) e Declarações . linguagem “externa” para comunicação entre agentes. Condições de sinceridade também classificou em 5 tipos os speech acts: Representativas .No inicio dos anos 70 Cohen e Perrault (1979) deram conta da semântica dos speech acts usando técnicas desenvolvidas em pesquisas de planeamento de IA onde o objetivo foi desenvolver a teoria dos speech acts modelando elas em um sistema de planeamento como operadores definidos. 1978. Começa com John Austin 1962. definir propriedades.(Caso de paradigma: declaração de guerra). (Speech Acts: coisas que o ato de dizê-las representam uma ação e podem mudar o estado do mundo ‘Estamos em guerra’. Milner. 2 . com 20 performativas para definição de interpretação desejada de mensagens. Define um formato de “envelope” para mensagens. foram desenvolvidos muitos formalismos para representar as propriedades de sistemas comunicação concorrentes [Hoare. Surge algumas linguagens de comunicação de agentes como a Knowledge Query and Manipulation Language (KQML). Temos o Knowledge Interchange Format (KIF) uma linguagem explicitamente com o objetivo de permitir representações do conhecimento sobre algum domínio particular. A teoria de speech act trata comunicação como ação. Temos a Linguagens de Coordenação onde um dos mais importantes precursores do desenvolvimento de sistemas multi-agentes foi o modelo blackboard. Diretivas .Speech acts as rational action. FIPA. Comissionado . iniciou o desenvolvimento de padrões para sistemas de agentes. John Searle em 1969. Ela foi planejada para formar as partes de conteúdo de mensagens KQML. definir classes e hierarquia de classes.considerar reutilização. 1990]. Num cenário orientado a agentes.(Caso de paradigma: informação). Condições preparatórias. definindo a FIPA ACL. superficialmente similar à KQML. os agentes tem controle tanto sobre seu estado quanto sobre seu comportamento. enumerar todos os termos relevantes.(Caso de paradigma: promising). criar instancias.(Caso de paradigma: requisição).em termos das crenças e objetivos dos locutores e ouvintes. O sincronismo de múltiplos processos e o maior problema em sistemas concorrentes [Ben-Ari. Em 1995 a Foundation for Intelligente Physical Agentes. identificou propriedades que a manter para que uma performativa entre ouvinte e um locutor tenha sucesso: Condições de I/O normais.. Capitulo 7 – Atos de Fala Comunicação um tema de importância central na ciência da computação. e não obriga qualquer linguagem específica para o conteúdo das mensagens. definir propriedades de propriedades.. KQML se preocupou com a parte de conteúdo das mensagens. Expressiva .

Antes de optar pela abordagem baseada em agentes tem que analisar e verificar a existência das seguintes condições: Ambiente aberto. incerto ou 3 . a interdependência entre as atividades devem ser geridas para que a realização de uma atividade que depende do outro não seja executada simultaneamente por dois agentes. capazes de coordenar as suas ações dinamicamente e cooperarem com os outros. Para que um grupo de agentes resolver um determinado problema é sugerido pelo processo CDPS. no segundo os resultados parciais são distribuídos. estes trabalham juntos a fim de resolverem problemas que ultrapassam a capacidade individual dai o processo “Cooperative Distributed Problem Solving” ( CDPS). agindo de forma estratégicas para alcançarem um determinado objetivo. A coordenação da cooperatividade dos agentes trabalhando juntos é um dos problemas que se enfrentam nos sistemas multiagentes. a partilha de tarefas e a partilha de resultados. Capitulo 9 – Metodologias Com a adoção de sistemas multiagentes pela comunidade da ciência de computação. na faze de síntese de resposta as soluções dos sub-problemas individuais são integradas numa solução global. a divisão em três fazes de atividade.Trabalhando Juntos Os sistemas distribuídos e concorrentes cooperam uns com os outros a fim de realizarem as tarefas atribuídas. a etapa de solução de sub-problema concretiza a resolução individual dos sub-problemas identificadas durante a etapa anterior. é expectável o crescimento de metodologias de apoio a desenvolvimento de sistemas multiagentes. assim por diante até serem adequados a ser resolvido por um agente individual. podendo ter três tipos: planeamento centralizado para os planos distribuídos nesse caso o processo de planeamento faz a divisão e a ordenação de tarefas que são distribuídas a um grupo de agentes pelo agente mestre. a decomposição do problema. também estes distinguem dos sistemas distribuídos em ralação a autonomia. nesta etapa normalmente os agentes colaboram passando informações que são uteis para outros agentes. solução de sub-problema e síntese de resposta. os problemas a serem resolvidas são decompostas em sub-problemas estes são decompostas e sub-problemas menores. planeamento distribuído ou planeamento distribuído para os planos distribuídos. Para conseguir uma partilha eficaz das tarefas em rede utiliza-se o protocolo de redes contratos “contract-Net” (CNET). na decomposição de problemas. mas porem estes podem não compartilhar objetivos comuns. os sistemas distribuídos normalmente tem um comportamento pré definido. o primeiro é feito pelos agentes faz a decomposição. ou pelo menos tem algum grau de dinâmica. enquanto o agente toma decisões em tempo de execução. os sistemas multiagentes a semelhança desses podem ser concebidas de modo a que os agentes possam trabalhar em conjunto para eficazmente atingirem um determinado objetivo estes são designados de agentes benevolentes. para este modelo existe duas atividades que são suscetíveis de estar presente. mas sim que seja executada primeiramente a que não é dependente. para resolver esse problema é preciso o planeamento e sincronização das atividades num sistema multiagente.Capitulo 8 .

O Australian AI Institute (AAII). Sistemas legados. ANÁLISE E DESENHO DE SISTEMAS ORIENTADOS A AGENTES Metodologias de análise e desenho de sistemas levam a especificar e descrever as necessidades e especificações do sistema de uma visão abstrata até concreta. responsabilidades. Dados. Quando os agentes são a metáfora apropriada.complexo. Os principais conceitos de GAIA podem ser divididos em duas categorias: abstratas (papeis. 2. é decomposto em modelos de agentes que modelam as classes e instâncias dos agentes e modelos de interação. a metodologia AAII é composto das seguintes etapas: 1. desenvolveu essa metodologia fruto da experiencia adquirida no desenvolvimento das suas aplicações. Determinar a estrutura de crenças do sistema . entendimento esse que deve ser capturado da 4 . permissões. protocolos. os serviços fornecidos e requeridos por este e definir os objetivos associado a cada serviço. inspirando em metodologias OO e aprimoradas com conceitos baseados em agentes. Metodologia essa.A metodologia GAIA baseia nas terminologias e anotações de análise orientadas a objetos. Os modelos internos. com desenhos da parte interna dos agentes apresentando as suas crenças. propriedades de segurança) e concretos (tipos de agentes. Os modelos externos mostram uma visão geral do sistema. Incentiva a para a construção de desenho de sistemas baseado em agentes semelhante à de o desenho de uma organização. desejos e intenções. Adaptações da engenharia do conhecimento ou outras técnicas. 4. Essas metodologias podem ser divididas em dois grupos: Extensões ou adaptações das metodologias orientados a objetos. e contexto apropriado para aplicação de cada plano. 3. Gaia . conhecimentos). Identificar as responsabilidades de cada função. atividades. que elaborando um determinado número de modelos (internos e externos). serviços. Identificar as principais funções no domínio apresentando uma hierarquia de classe de agentes. mas oferecendo um conjunto de conceitos de agentes para o desenvolvimento de um sistema complexo.informações necessárias para cada plano e objetivo. obteria como resultados as especificações do sistema. Metodologia AAII . Definir planos de ações para cada objetivo. controlo ou especialidade estão distribuídos. com o foco nos agentes e como se relacionam entre si. propriedades de ação. A fase de análise tem como objetivo desenvolver o entendimento do sistema e sua organização e estrutura. sem quaisquer detalhes de implementação. Com um processo de análise iterativa como a maioria de análises tradicionais.

Dependência é o que um ator precisa do outro para executar um plano ou partilhar um recurso. Crença conhecimento sobre o ambiente. apenas software. Plano é o percurso para alcançar o objetivo. modelando-os como atores sociais. Protocolos descrevem as capacidades e regras de como comunicar com os outros papéis. Também tem ferramenta de suporte. Onde foram apresentadas as seguintes modificações: Suporte para threads concorrentes de interações e extensão da noção de papéis. Recurso é entidade física ou de informação. Atividades definem uma computação que o papel pode realizar sem interagir com outros agentes. a estrutura do sistema e como interagem. com dependências baseadas em objetivos. um papel ou uma posição. Capacidade é a habilidade do ator tomar decisões. com limitações fundamentais que os tradicionais 5 .os desenvolvedores subestimam o potencial do agente e esquecem que e. Prometheus . depois objetos como objetos com capacidades. por haver diferenças entre agentes e objetos.Consiste em três fases: Especificação do sistema – definição dos objetivos. planos e troca de recursos. em seguida agentes como objetos ativos e com objetivos e por último agentes autónomos como agentes com motivações. muitos pesquisadores iniciaram os seus estudos a partir deste.organização do sistema. Possui vários modelos e orientações para cada fase. Desenho detalhado – detalhamento das capacidades dos agentes. Permissões definem os meios disponíveis que um papel consegue utilizar ou gerir. Agentes em Z – Definida por uma hierarquia de níveis de entidades: Entidades como objetos inanimados. Segundo Wooldridge. Um papel é definido por quatro atributos: Responsabilidade que é o atributo chave ou a regra que descrever as funcionalidades do papel. Objetivo representa a condição que o ator quer obter. funcionalidades básicas e sua relação com o ambiente. Tropos – A metodologia de tropos tem uma visão orientada a agentes ao longo do ciclo de desenvolvimento de software baseando nos seguintes conceitos: Ator é uma entidade que tem objetivos e estratégias que representa um agente. as extensões e adaptações das metodologias OO para sistemas baseados em agente. trazem algum inconveniente em relação as outras. Problemas de Desenvolvimento Orientado a Agentes Não entender onde os agentes podem ser aplicados . Agentes UML – Sendo UML um padrão para modelação de sistemas orientados a objetos. Na primeira fase são definidos os stakeholders do sistema. Suporte da FIPA e OMG para criar notações sustentadas em UML para modelar agentes. decompondo-o em sociedade organizada de agentes que podem utilizar um ou mais papéis. Desenho da arquitetura – identificação dos tipos de agentes.

quais os aspetos do agente são serializados . só porque foi adotado uma abordagem baseada em agentes. Se houver apenas uma necessidade para um único segmento de controlo no sistema.Quando se constrói um aplicativo do agente. Eles são capazes de transmitir o código o estado e atributo através de uma rede de computadores. O seu projeto não explora concorrências Uma das características mais evidentes de um pobre design multiagente é que a quantidade de solução de problemas concorrente é comparativamente pequeno ou mesmo em casos extremos inexistente. Não saber porque você quer agentes . O uso de Agentes Moveis ficou conhecido . pelo motivo que os argumentos apresentados ainda não foram testados na prática..No momento da escrita de um sistema de agentes é essencialmente um processo de experimentação. Não existe uma metodologia confiável disponível. software convencional (por ex. é necessário criar um a partir de primeiros princípios devese procurar e estudar se existe um que ajusto ao pretendido.os problemas inerentes a sistemas multithread não desaparecem. Querer construir soluções genéricas para problemas específicos . não por causa problemas específicos do agente. mas não como solução universal. ela se manifesta na elaboração de uma arquitetura que supostamente permite que seja construído toda uma gama de possíveis tipos de sistema. Infelizmente. mas porque foi ignorado as boas práticas da engenharia de software. Esquecer que e o desenvolvimento de um Software -. Inc. Agente Moveis tem despertado muito interesse.Parcialidade na escolha dos agentes os agentes têm sido utilizados em uma vasta gama de aplicações.Na construção de um sistema multi-agente. Acredita que o agente serve para tudo . o que seria perigosamente ingénuo. O resultado muitas vezes é um agente que está muito sobrecarregado. Seus agentes usam demasiadamente a IA.. em especial na programação de linguagem e objetoorientado.soluções de software . os dados. Na escolha de Agente Moveis temos que considerar alguns problemas técnicos como: A serialização do agente (ou seja codificado em um formato adequado para ser enviado através da rede). há uma tentação de se concentrar exclusivamente no agente específico de 'inteligência' os aspectos das aplicações.o programa. OO) são as mais adequadas. é essencial não ignorar as lições aprendidas a partir dos Sistemas concorrente (multithread) e sistemas distribuídos .Muitos gerentes adquirem sem ter nenhum modelo de negócio para os agentes como também não sabem como os agentes podem ser utilizados para aprimorar seus produtos existentes. Para muitas aplicações.é apenas uma questão de tempo para alguém reivindicar os agentes como o santo graal da engenharia de software. onde o que e necessário é projeto de design para resolver um único problema. Com o objetivo de substituir a chamada remota de procedimentos. uma solução personalizada será mais fácil desenvolver para satisfazer os requisitos da aplicação. Esquecer que e o desenvolvimento de um software multithreads. Decidir a sua própria arquitetura para agentes –. ou o programa e seus dados? Para resolver 6 .Normalmente. e.. principalmente através do trabalho pioneiro da General Magic. o uso de agente deve ser questionado. Telescript na sua linguagem de programação. porque o processo é experimental: o projeto fica confuso. e serem execução em um local remoto. é grande a tentação de imaginar que existe nenhuma arquitetura para seu problema. em especial.

active mail – type. que especifica os parâmetros da sua viagem. Inc início da década de 1990.um lugar pode corresponder a uma única máquina. Os agentes são os provedores e consumidores de bens no mercado de aplicações eletrónico que Telescript foi desenvolvido para suportar. e quando regressa do seu destino. Ele pode negar serviço a outros processos ocupando a maior percentagem de memória ou do Processador ou causando mau funcionamento da máquina (por exemplo.esse ponto tanto o agente e o seu estado são transmitidos.. Os agentes Moveis podem ser devidos em três tipos: Autonomous. Outra Linguagem que aparece é a Tcl . Um agente usa um bilhete . possuem características que os tornam muito mais interessante: Tcl é uma linguagem interpretada. e executado 7 . Tcl programas são chamados scripts. ou seja. Mais tarde a tecnologia Telescript foi ultrapassada pela Java que na década de 1990 já tinha grande número de telemoveis a funcionarem com sua tecnologia. implementado em C/C++ e permite que o usuário construa sobre as mesmas se houver necessidade. como é executado. onde estava antes ela ser transmitida através da rede. janelas gráficas etc . Os agentes de programas Telescript são interpretados semelhante à forma como o Java bytecodes pela máquina virtual Java. Máquinas virtuais Java também têm um builtin SecurityManager. Tcl é extensível ele fornece um conjunto básico de primitivos. ao contrário das linguagens C ou C++. ou um grupo de máquinas. Hospedagem e execução remota quando o agente chega ao seu destino. e o estado inclui contador do programa. Tk também fornece grande facilidade para a comunicação entre processos. Ele oferece comodidades para fazer funcionalidades GUI tais como botões. sem qualquer estado associado. ele recomeça a execução da instrução seguinte ao programa que o levou a ser transmitido. Tk é um X-Window-baseada em ferramentas widget. se o hospedeiro original do agente emprega um sistema operacional ou processador diferente do host de destino? Segurança quando há um potencial grande de o agente causar estragos no host onde ele vai ser executado. escrevendo na memória RAM). onde existe dois conceitos chave nessa tecnologia: lugares e agentes. é difícil (embora não impossível) para um processo Java aceder a memória da máquina em que está a trabalhar. muitas das propriedades que scripts shell Unix: A ideia de agente vem em formato móvel porque é fácil de criar aplicativos onde scripts em Tcl são trocados através de uma rede. assim. Outra solução é O agente a ser transmitida é basicamente um script. Por exemplo. no entanto.Tool Control Language em conjunto com Tk (framework) Tcl fornece os meios para implementar facilmente a sua própria linguagem de comando. a linguagem Java não possui ponteiros. Esses scripts. Telescript os agentes são capazes de se mover de um lugar para outro. que define a medida em que os processos em execução na máquina virtual podem acessar diversos recursos. Lugares são locais virtuais que são ocupados pelos agentes .. on-demand. Linguagens como o Java abordam essas questões. Tcl/Tk combinadas tornam atraente e simples de usar as ferramentas de desenvolvimento GUI. Ele pode obter informações sensíveis através da leitura do disco ou diretamente da RAM. por meio do intercâmbio de scripts em Tcl. o agente "se lembra". Debruçando sobre o tipo Autonomous temos a Telescript desenvolvida pelo General Magic.

transformando todas as interações em forma de negociação sobre quais serviços um agente fornece para o outro e em que termos e condições. . que se divide em dois grupos: sistemas distribuídos em que os agentes se funcionam com nos de processamento e assistente de software pessoal em que os agentes têm de ser proactivos no auxílio dos utilizadores a trabalhar com um software. na gestão de sistemas de energia. tem-se desenvolvido um esforço no desenvolvimento de Agentes de Recuperação e gestão de Informação. Na intenção de utilização de sistemas multiagentes para gerenciar redes de sensores distribuídos espacialmente utiliza-se os agentes de sensoriamento distribuído. A compra e vendas de produtos na web ganhou uma grande dimensão. especialmente baseado em interface gráfica. no controlo de processos de fabrico. Kotz pode et al. tem sido utilizado sistemas multiagentes distribuídos para recuperação de informação semiestruturada através da indexação. Capitulo 10 . e facilmente modificados. Wooldridge 2009]. apud. 1996. Hoje em dia existe uma quantidade enorme de informação na web e ainda muito para ser recuperado. [Gray. estes agentes cooperam uns com os outros. um exemplo de ilustra este tipo de sistema multiagente é o “distributed vehicle monitoring testbed”.Aplicações Os sistemas baseados em agentes estão sendo aplicadas em diversas áreas. DVMT [Lesser and Erman. estes são indicados para os domínios em que é necessária ação autônoma.em máquinas remotas. A linguagem TCL SEGURA contem mecanismo para limitar o acesso a um script. mas também na gestão da informação para que facilite o utilizador a chegar na informação pretendida disponibilizando sugestões de pesquisas. para atingir os seus objetivos individuais. este auxilia na compra de um determinado produto por exemplo comparando os atributos de um produtos para diferentes lojas. 1996b apud. Um exemplo atual de sistema baseado em agentes de gestão de processos de negócios segundo [Jennings et al. na detestação no trafego em sistemas distribuídos. 1980. Mas eles não estão/não foram destinados como ambiente programação de agente. típico dos motores de busca. 8 . 1997]. no controlo de tráfego aéreo. os agentes têm sido proposto como uma solução para estes problemas. hoje em dia existe Agentes de Comércio Eletrônico que nos auxilia tanto no processo de compra como de venda na web. nos leitores de correio eletrónico. Tcl e Tk proporcionam um ambiente rico para a construção de aplicações baseadas na linguagem. Wooldridge 2009] é o sistema ADEPT. Em resumo. o tipo mais básico é Agentes de comparação de compras.o código-fonte é livre.. que precisa ser bem gerida e de fácil acesso. nos navegadores web e varias outras tipo de aplicações. bem concebido. que transformou o processo de fornecimento de um orçamento para a instalação de uma rede para fornecer um determinado tipo de serviço de telecomunicações ao cliente num sistema multiagente.. nos leitores de noticias. estável. esta atividade envolveu os vários departamentos da empresa British Telecom e as várias empresas que oferecem o serviço terceirizado aos clientes transformando cada departamento e cada indivíduo dentro de um departamento em um agente. os agentes tem sido utilizados na gestão de empresas auxiliando no processo de gestão de negócio.

Agentes de simulação social e agentes para X.Alem dos tipos identificados acima também existe Agentes de Interfaces Homem-Computador típico dos assistentes de software referido acima. jogos de computador e realidade virtuais. Agentes para Ambientes Virtuais estes tem grandes potenciais para utilização em cinema. 9 . são normalmente agentes emocionais.