Modelagem Orientada a Agentes Professores : Edson Scalabrin Ph.D Marcos Shmeil Ph.D Pontifícia Universidade Católica do Paraná ( PUCPR ) Programa de Pós-Graduação em Informática Aplicada ( PPGIA ) LAboratório de Sistemas Inteligentes ( LASIN ) e-mail: { scalabrin, shm } @ ppgia.pucpr.br Da Inteligência Artificial à Inteligência Artificial Distribuída Como reunir, em um único sistema “inteligente”, todos os conhecimentos ( ou expertises ) necessários para a realização de tarefas complexas, que habitualmente são efetuadas por seres humanos ? PUCPR / PPGIA / LASIN / Edson Scalabrin e Marcos Shmeil 2 Da Inteligência Artificial à Inteligência Artificial Distribuída A principal dificuldade, envolvendo a IA clássica, surge principalmente quando se busca : • modelar um processo de produção, • uma missão espacial • a pilotagem de um avião Os limites da IA são devidos as necessidades da assimilação : • de kwon-how e de uma grande quantidade competências diferentes para efetuar uma programação centralizada. A IAD, ao contrário IA, integra em sua essência, a natureza distribuída destas competências e expertises. PUCPR / PPGIA / LASIN / Edson Scalabrin e Marcos Shmeil 3 Por que distribuir a inteligência ? Os problemas são fisicamente distribuídos Os problemas são funcionalmente bem distribuídos e heterogêneos As redes impõem uma visão distribuída A complexidade dos problemas impõe uma visão local Os sistemas devem poder adaptar-se as modificações de estrutura e de ambiente A engenharia de software caminha para uma concepção em termos de unidades autônomas interagentes PUCPR / PPGIA / LASIN / Edson Scalabrin e Marcos Shmeil 4 Por que distribuir a inteligência ? Os problemas são fisicamente distribuídos • Os problemas complexos são efetivamente na maior parte do tempo fisicamente distribuídos ! Exemplos: • uma rede de transporte é naturalmente repartida sobre um grande espaço • um sistema de controle industrial – refinarias, linha de montagem • a gestão de tráfego de veículos – cada avião ou carro é uma entidade autônoma PUCPR / PPGIA / LASIN / Edson Scalabrin e Marcos Shmeil 5 Por que distribuir a inteligência ? Os problemas são funcionalmente bem distribuídos e heterogêneos Exemplo: • A concepção de um carro de Formula 1. • Intervenção de vários de especialistas : – – – – – especialista em motores especialista em chassis especialista em pneumáticos engenheiro em chefe piloto PUCPR / PPGIA / LASIN / Edson Scalabrin e Marcos Shmeil 6 Por que distribuir a inteligência ? As redes de computadores impõem uma visão distribuída Exemplo: • Internet ( World Wide Web ) • Sistemas abertos “à la Hewitt” ( interoperabilidade radical do sistemas de informação ) • Teleinformática móvel Os sistemas multi-agentes são fortes candidatos para a construção de arquiteturas abertas distribuídas, heterogêneas e flexíveis, capazes de oferecer uma grande quantidade de serviços em um trabalho coletivo, sem impor uma estrutura a priori. PUCPR / PPGIA / LASIN / Edson Scalabrin e Marcos Shmeil 7 Por que distribuir a inteligência ? A complexidade dos problemas impõe uma visão local Quando um problema é muito grande para ser analisado globalmente, as soluções baseadas em abordagens locais permitem com uma certa freqüência resolver-los mais rapidamente PUCPR / PPGIA / LASIN / Edson Scalabrin e Marcos Shmeil 8 Por que distribuir a inteligência ? Os sistemas devem poder adaptar-se as modificações de estrutura e de ambiente • Saber conceber sistemas computacionais eficientes, confiáveis e corretos não é mais suficiente ! • Como devem então ser construídos os novos sistemas? PUCPR / PPGIA / LASIN / Edson Scalabrin e Marcos Shmeil 9 Por que distribuir a inteligência ? Os novos softwares devem ser altamente adaptáveis as modificações de contexto de trabalho : mudança de sistema operacional, gerenciador de base de dados, interfaces gráficas, adição de outros softwares, etc. Eles devem possuir capacidades para evoluir frente a certas necessidades, tais como : adição de novas funcionalidades, modificações sobre sua utilização, integração de um novo software, etc. PUCPR / PPGIA / LASIN / Edson Scalabrin e Marcos Shmeil 10 Por que distribuir a inteligência ? Os SMA, pela sua natureza distribuída : envolvendo sempre um raciocínio local, e permitindo a integração dinâmica de novos agentes . . . são arquiteturas aptas a levar em conta as evoluções e adaptações necessárias para o funcionamento destes novos sistemas. PUCPR / PPGIA / LASIN / Edson Scalabrin e Marcos Shmeil 11 Por que distribuir a inteligência ? A engenharia de software caminha para uma concepção em termos de unidades autônomas interagentes Historicamente, a concepção de software tende : • a criação de sistemas desenvolvidos como conjuntos de entidades cada vez mais distribuídas, e • o interesse pelo desenvolvimento de componentes independentes e autônomos. PUCPR / PPGIA / LASIN / Edson Scalabrin e Marcos Shmeil 12 Por que distribuir a inteligência ? A partir do surgimento das linguagens orientada a objetos : • a engenharia de software passa a construir módulos autônomos capazes de interagir entre si, – em particular, módulos concebidos por pessoas, equipes ou empresas diferentes Evoluções trazidas pelos Objetos : • Objetos : localidade Evoluções trazidas pelos SMA : • Agentes : localidade + autonomia + repartição das tomadas de decisões Amanhã a Engenharia Software será Orienta Agente! PUCPR / PPGIA / LASIN / Edson Scalabrin e Marcos Shmeil 13 Princípios dos sistemas multi-agente Noções elementares • • • • • indivíduo e grupo / agente e sociedade conflito cooperação colaboração coordenação de ações PUCPR / PPGIA / LASIN / Edson Scalabrin e Marcos Shmeil 14 Princípios dos sistemas multi-agente O que é um agente ? É uma entidade física ou virtual [ J. Ferber ]: • • • • • • • • • que é capaz de agir em um ambiente, que pode comunicar diretamente com outros agentes, que é movida por um conjunto de tendências (na forma de objetivos), que possui recursos próprios, que é capaz de perceber (de maneira limitada) seu ambiente, que dispõe de uma representação parcial desse ambiente, que possui competências e oferece de serviços, que pode eventualmente se reproduzir, cujo o comportamento é satisfazer seus objetivos levando em conta seus recursos e suas competências em função de sua percepção, de suas representações e de suas comunicações. PUCPR / PPGIA / LASIN / Edson Scalabrin e Marcos Shmeil 15 Princípios dos sistemas multi-agente J. Ferber PUCPR / PPGIA / LASIN / Edson Scalabrin e Marcos Shmeil 16 Princípios dos sistemas multi-agente O que é um sistema multi-agente ? É sistema constituído por [ J.Ferber ] : um ambiente E, ou seja um espaço que dispõe em geral de uma métrica um conjunto de objetos O. Estes objetos são situados, ou seja, para todo objeto, é possível, em um dado momento, associar uma posição em E. Estes objetos são passivos, ou seja, eles podem ser percebidos, criados, destruídos e modificados pelos agentes. um conjunto A de agentes, que são objetos particulares (A O), os quais representam as entidades ativas do sistema. um conjunto de relações R que une os objetos (e agentes) entre eles. um conjunto de operações Op que permite aos agentes de A perceber, produzir, consumir, transformar e manipular objetos de O. operadores encarregados de representar a aplicação destas operações e a reação do mundo à esta tentativa de modificação, leis do universo. PUCPR / PPGIA / LASIN / Edson Scalabrin e Marcos Shmeil 17 Princípios dos sistemas multi-agente O que é um agente puramente comunicante ? É uma entidade informática que : encontra-se num sistema de informática aberto ( conjunto de aplicações, de redes e de sistemas heterogêneos ), pode comunicar com outros agentes, é munida por um conjunto de objetivos próprios, possui recursos próprios, dispõe somente de uma representação parcial dos outros agentes, possui competências que ela pode oferecer aos outros agentes, tem um comportamento que busca satisfazer seus objetivos levando em conta seus recursos e suas competências em função de suas representações e de suas comunicações. PUCPR / PPGIA / LASIN / Edson Scalabrin e Marcos Shmeil 18 Princípios dos sistemas multi-agente O que é um agente puramente situado ? É uma entidade física ( ou informática quando simulada ) que : • encontra-se situada em um ambiente, • é movida por uma função de sobrevivência, • possui recursos próprios, sob a forma de energia e de ferramentas, • é capaz de perceber ( de maneira limitada ) seu ambiente, • não possui quase nenhuma representação de seu ambiente, • possui competências, • pode eventualmente se reproduzir, • tem um comportamento que busca satisfazer sua função de sobrevivência levando em conta seus recursos, suas percepções e suas competências. PUCPR / PPGIA / LASIN / Edson Scalabrin e Marcos Shmeil 19 Princípios dos sistemas multi-agente Níveis de uma organização em um SMA Nível social, • trata-se das interações que existem entre dois ou mais agentes e suas diferentes formas de ligações entre eles Nível de grupo, • trata-se das estruturas intermediárias que intervêm na composição de uma organização mais completa Nível de sociedade global (ou população), • o interesse porta sobre, a dinâmica de um grande número de agentes, assim como, sobre a estrutura geral do sistema e sua evolução. PUCPR / PPGIA / LASIN / Edson Scalabrin e Marcos Shmeil 20 Princípios dos sistemas multi-agente Organização emergência de funcionalidades Sistemas de interação restrições e objetivos sociais Agentes Relação micro-macro nos sistemas multi-agentes PUCPR / PPGIA / LASIN / Edson Scalabrin e Marcos Shmeil 21 Princípios dos sistemas multi-agente Social ou biológica Deve-se fabricar agentes como entidades : já “inteligentes”, ou seja, capazes de resolver certos problemas por si-mesmo ? Deve-se fabricar agentes como entidades próximas à seres bastante simples, que reagem diretamente as modificações do ambiente ? PUCPR / PPGIA / LASIN / Edson Scalabrin e Marcos Shmeil 22 Princípios dos sistemas multi-agente Escola cognitiva É a escola mais representativa no contexto da IAD Ela tem por objetivo, na sua origem, o desejo de fazer comunicar e cooperar sistemas especialistas clássicos Ex. Projeto CyC: 1984 - 1994 PUCPR / PPGIA / LASIN / Edson Scalabrin e Marcos Shmeil 23 Princípios dos sistemas multi-agente Escola Cognitiva Um sistema multi-agente é em geral composto por um pequeno número de agentes inteligentes Cada agente cognitivo dispõe de : • uma base de conhecimento, compreendendo um conjunto de informações e as habilidades necessárias, para a realização de suas tarefas e para a gestão das interações com os outros agentes e seu ambiente. PUCPR / PPGIA / LASIN / Edson Scalabrin e Marcos Shmeil 24 Princípios dos sistemas multi-agente Escola cognitiva Os agentes são “intencionais” • eles possuem objetivos e planos explícitos, que permite os mesmos cumprir seus objetivos Os problemas de cooperação se assemelham fortemente aqueles de pequenos grupos de indivíduos, que devem • coordenar suas atividades e • negociar entre si para resolver seus conflitos PUCPR / PPGIA / LASIN / Edson Scalabrin e Marcos Shmeil 25 Princípios dos sistemas multi-agente Escola reativa Tese : não é necessário que os agentes sejam inteligentes individualmente, para que o sistema tenha um comportamento global inteligente. PUCPR / PPGIA / LASIN / Edson Scalabrin e Marcos Shmeil 26 Princípios dos sistemas multi-agente Escola reativa ou biológica : Um sistema multi-agente é composto por um grande número agentes simples. Os agentes, possuem mecanismos de reação aos eventos, sem levar em conta : • nenhuma explicitação de objetivos e • nenhum mecanismo de planejamento. PUCPR / PPGIA / LASIN / Edson Scalabrin e Marcos Shmeil 27 Princípios dos sistemas multi-agente Exemplo de organização: Formigueiro todas as formigas, se situam em um mesmo plano de igualdade, e nenhuma delas possui qualquer tipo autoridade estrita sobre uma outra. todas as formigas, coordenam suas ações de tal modo, que a colônia sobreviva e supere problemas complexos : • • • • a busca de alimentos, os cuidados a efetuar sobre os ovos e larvas, a construção do ninho, a reprodução, etc. PUCPR / PPGIA / LASIN / Edson Scalabrin e Marcos Shmeil 28 Princípios dos sistemas multi-agente Agentes Cognitivos Grande sofisticação e capacidade de raciocinar sobre o mundo ( graças a representação interna e mecanismos de inferência ) Isto habilita os agentes a: • realizarem tarefas complexas, se compararmos a simplicidade das faculdades dos agentes reativos • funcionarem de modo independente • resolverem problemas complexos de maneira relativamente individual • uma grande flexibilidade na expressão de seu comportamento PUCPR / PPGIA / LASIN / Edson Scalabrin e Marcos Shmeil 29 Princípios dos sistemas multi-agente Agentes reativos Pouquíssima sofisticação e capacidade de raciocinar sobre o mundo. Algumas características : • comportamento bastante rígido • individualmente estes agentes são bastante fracos • a força deles vêm de sua capacidade de organizar-se em grupo ( constituir colônias capazes de adaptar-se ao seu ambiente ) • nenhuma ou pouca individualidade • o principal interesse sobre eles, situa-se a nível de população e das capacidades de adaptação, e de evolução que emergem das interações entre seus membros • a grande quantidade e redundância de agentes em uma colônia, permite que tarefas complexas possam ser resolvidas PUCPR / PPGIA / LASIN / Edson Scalabrin e Marcos Shmeil 30 Princípios dos sistemas multi-agente Antecipação e Reação É a capacidade ou não, de antecipar-se sobre os eventos futuros e de preparar-se para tal PUCPR / PPGIA / LASIN / Edson Scalabrin e Marcos Shmeil 31 Princípios dos sistemas multi-agente Agentes Reativos : • não possuem nenhuma representação de seu ambiente e dos outros agentes • são incapazes de prever o que vai acontecer e consequentemente de antecipar um acontecimento planejando as ações a efetua A ausência de representação do mundo e a reação através de mecanismos bastante simples baseado na dualidade: estímulo/resposta, torna o processo de antecipação impossível. PUCPR / PPGIA / LASIN / Edson Scalabrin e Marcos Shmeil 32 Princípios dos sistemas multi-agente Agentes Cognitivos : • possuem uma representação parcial de seu ambiente e dos outros agentes • possuem capacidades, tais como : – raciocinar sobre a sua representação do mundo – memorizar e analisar situações – prever possíveis reações as suas ações – planejar seu próprio comportamento Os agentes podem assim construir e manipular o seu mundo virtual e até mesmo produzir planos de ações. PUCPR / PPGIA / LASIN / Edson Scalabrin e Marcos Shmeil 33 Princípios dos sistemas multi-agente Agentes cognitivos Plano abrir-Porta ir até o local onde se encontra a chave pegar a chave ir até a porta abrir a porta com a chave A capacidade de antecipação e planejamento dos agentes cognitivos, permite-lhes otimizar seu comportamento e efetuar somente as ações verdadeiramente necessárias. PUCPR / PPGIA / LASIN / Edson Scalabrin e Marcos Shmeil 34 Princípios dos sistemas multi-agente Agentes reativos Plano abrir-Porta R1 : se eu estou enfrente a porta e que eu tenho uma chave então abrir a porta R2 : se eu estou enfrente a porta e sem a chave então tentar abrir a porta R3 : se a porta não se abre e que eu não tenha a chave então ir procurar a chave R4 : se eu procuro uma chave e existe uma chave ao meu alcance então pegar a chave e ir até a porta PUCPR / PPGIA / LASIN / Edson Scalabrin e Marcos Shmeil 35 Princípios dos sistemas multi-agente Resumo : Agentes cognitivos Agentes reativos um plano é construído pelo próprio agente. as regras são dadas pelo projetista do agente. Número de ações executadas : • os agentes cognitivos, otimizam o número de movimentos, visto que eles podem prever a seqüência de ações a executar, • os agentes reativos funcionam na base da tentativa, Os agentes reativos contêm um conhecimento compilado das ações a executar : • eles não precisam construir uma representação mental de seus mundos, sendo suficiente a reação as situações que se apresentam. PUCPR / PPGIA / LASIN / Edson Scalabrin e Marcos Shmeil 36 Princípios dos sistemas multi-agente Arquitetura e comportamento Um agente se caracteriza : • pelo modo que ele é concebido e • pelas suas ações, ou seja, • pela sua arquitetura e • pelo seu comportamento PUCPR / PPGIA / LASIN / Edson Scalabrin e Marcos Shmeil 37 Princípios dos sistemas multi-agente Arquitetura : A arquitetura corresponde o ponto de vista do projetista, que pode-se resumir em : • como montar as diferentes partes de um agente de maneira que ele realize as ações esperadas ? • perguntas auxiliares : – os agentes dispõem de uma representação de seu ambiente ou reagem simplesmente aos estímulos que eles percebem ? – os agentes são capazes de raciocinar a partir de símbolos ou aplicam simplesmente as ações pré-estabelecidas ? As respostas a estas questões encontram-se no “ interior ” dos agentes ( levantar o “capô” ). PUCPR / PPGIA / LASIN / Edson Scalabrin e Marcos Shmeil 38 Princípios dos sistemas multi-agente Comportamento : Trata-se de um fenômeno, que pode ser compreendido por um observador externo, que, ao ver as ações que o agente executa, descreve a relação existente entre o agente, seu ambiente e os outros agentes. O comportamento pode ser analisado sem conhecer os detalhes de implementação, ou seja, sem levantar o “capô”. PUCPR / PPGIA / LASIN / Edson Scalabrin e Marcos Shmeil 39 Princípios dos sistemas multi-agente Comportamento : Exemplo: Avião evitando outro avião A iniciativa de um avião em evitar um outro avião, é uma característica de seu comportamento, independente da maneira que ela foi implementada. O comportamento caracteriza, assim, o conjunto de propriedades que um agente manifesta no seu ambiente. PUCPR / PPGIA / LASIN / Edson Scalabrin e Marcos Shmeil 40 Princípios dos sistemas multi-agente Comportamento : Para compreender o comportamento de um agente, deve-se olhar sua maneira de evoluir e de responder as solicitações de seu ambiente. Esta abordagem, conduz a definição de modelos comportamentais independentes da arquitetura, mesmo quando, certas arquiteturas se prestam melhor que outras na realização de certos comportamentos. PUCPR / PPGIA / LASIN / Edson Scalabrin e Marcos Shmeil 41 Princípios dos sistemas multi-agente Linguagens, comunicações e representações : Linguagens de formalização e especificação Tipo L5 Linguagens de Linguagens de descrição Linguagens de comunicação dos comportamentos e representação de entre agentes das leis do ambiente conhecimentos Tipo L2 Tipo L3 Tipo L4 Linguagens de implementação Realização Tipo L1 Abstração PUCPR / PPGIA / LASIN / Edson Scalabrin e Marcos Shmeil 42 Princípios dos sistemas multi-agente Linguagens, comunicações e representações : Tipo L1 : Linguagens de implementação Utilizadas para programar os agentes, incluindo : • as estruturas informáticas utilizadas pelos agentes e pelo ambiente ; • os mecanismos informáticos para permitir o paralelismo inter e intra-agente ; • a implementação efetiva dos comportamentos ; • as atividades de envio e recepção de mensagens ; • a percepção de objetos num ambiente ; • o conjunto de ferramentas necessárias para “ajustar” um SMA. PUCPR / PPGIA / LASIN / Edson Scalabrin e Marcos Shmeil 43 Princípios dos sistemas multi-agente Linguagens, comunicações e representações : Tipo L2 : Linguagens de comunicação • Utilizadas nas interações entre agentes, pelo viés da transmissão de informações e da demanda mutua de informações e serviços. • As linguagens de comunicação, constituem o meio pelo qual os agentes eventualmente heterogêneos podem : • coordenar suas ações ; • cooperar sobre um meta comum ; • integrar-se a um grupo de agentes. PUCPR / PPGIA / LASIN / Edson Scalabrin e Marcos Shmeil 44 Princípios dos sistemas multi-agente Linguagens, comunicações e representações : Tipo L3 : Linguagens de descrição dos comportamentos e das leis do ambiente • elas permitem a descrição do comportamento e das leis do universo do ambiente de forma independente da linguagem de implementação e da natureza do agente ; • elas são linguagens com um alto nível de abstração ; • regras de produção ; • redes de Petri, etc. OBS: Descrever diretamente os comportamentos dos agentes ou as leis do universo numa linguagem de implementação, introduz um certo número de detalhes inúteis à compreensão do sistema e esconde os princípios essenciais (ex. flexibilidade). PUCPR / PPGIA / LASIN / Edson Scalabrin e Marcos Shmeil 45 Princípios dos sistemas multi-agente Linguagens, comunicações e representações : Tipo L4 : Linguagens de representação de conhecimentos • As linguagens utilizadas são baseadas em sistemas formais, possuindo uma sintaxe e uma semântica rigorosamente definida para explicitar suas inferências ( sistemas lógicos ), e servem para : exprimir os estados mentais dos agentes ; representar o conteúdo de seus objetivos e crenças ; descrever o comportamento dos agentes. PUCPR / PPGIA / LASIN / Edson Scalabrin e Marcos Shmeil 46 Princípios dos sistemas multi-agente Linguagens, comunicações e representações : Tipo L4 : Representação de conhecimentos Exemplos : • linguagens baseadas em regras ou quadro negro ; • linguagens de representação estruturada de conhecimentos • as redes semânticas ; • as frames. PUCPR / PPGIA / LASIN / Edson Scalabrin e Marcos Shmeil 47 Princípios dos sistemas multi-agente Linguagens, comunicações e representações : Tipo L5 : Linguagens de formalização e especificação Linguagem abstrata servindo a : • formalizar um SMA, através da noção de interação, do conceito de intenção, etc. ; • especificar as condições que devem ser respeitadas durante a modelagem e implementação do sistema. Ex. lógicas modais PUCPR / PPGIA / LASIN / Edson Scalabrin e Marcos Shmeil 48 Princípios dos sistemas multi-agente Linguagens, comunicações e representações : Exemplo de ligações entre as linguagens Um protocolo de negociação, utilizará : • uma linguagem de comunicação (tipo L2), • uma linguagem de tipo L3, para descrever os mecanismos de interpretação das mensagens e as funções de avaliação das proposições invocadas de uma parte e de outra. • os componentes da cognição, assim que o modo de raciocínio poderão ser representados em linguagens de tipo 1, o interpretador desta linguagem sendo geralmente escrito numa linguagem de tipo L3. • o funcionamento geral do sistema, assim que a estrutura de diálogo empregada deverão respeitar as especificações escritas em L4. PUCPR / PPGIA / LASIN / Edson Scalabrin e Marcos Shmeil 49 Princípios dos sistemas multi-agente Referências: Ferber J., 1996, Les systèmes multi-agents : vers une intelligence collective, Editora: InterEditions PUCPR / PPGIA / LASIN / Edson Scalabrin e Marcos Shmeil 50