Agentes Patricia Tedesco 1 O que é um Agente? Qualquer entidade (humana ou artificial) que: está imersa ou situada em um ambiente (físico, virtual/simulado) percebe seu ambiente através de sensores (ex. câmeras, microfone, teclado, finger, ...) age sobre ele através de atuadores (ex. vídeo, auto-falante, impressora, braços, ftp, ...) possui objetivos próprios explícitos ou implícitos escolhe suas ações em função das suas percepções para atingir seus objetivos 2 Agentes Inteligentes x Sistemas de IA Clássica Sistema Inteligente Não Situado Agente Situado Sensores Interpretação das percepções IA Ambiente Raciocínio Objetivos Atuadores Dados de Entrada Objetivos Escolha das ações IA Dados de Saída IA O que é um Agente Racional Agente Racional faz a melhor coisa possível segue o princípio da racionalidade: dada uma seqüência perceptiva, o agente escolhe, segundo seus conhecimentos, as ações que melhor satisfazem seu objetivo Racionalidade Onisciência Limitações de: sensores atuadores raciocinador (conhecimento, tempo, etc.) 4 Outras propriedades freqüentemente associadas aos Agentes Autonomia (IA) raciocínio, comportamento guiado por objetivos reatividade Adaptabilidade & aprendizagem (IA) Comunicação & Cooperação (IA) Personalidade (IA) Continuidade temporal Mobilidade 5 Outras propriedades freqüentemente associadas aos Agentes Autonomia de raciocínio (IA): Requer máquina de inferência e base de conhecimento Essencial em sistemas especialistas, controle, robótica, jogos, agentes na internet ... Adaptabilidade (IA): Capacidade de adaptação a situações novas, para as quais não foi fornecido todo o conhecimento necessário com antecedência Duas implementações aprendizagem e/ou programação declarativa Essencial em agentes na internet, interfaces amigáveis ... 6 Outras propriedades freqüentemente associadas aos Agentes Comunicação & Cooperação (Sociabilidade): IA + técnicas avançadas de sistemas distribuídos: Protocolos padrões de comunicação, cooperação, negociação Raciocínio autônomo sobre crenças e confiabilidade Arquiteturas de interação social entre agentes Essencial em sistemas multi-agente, comércio eletrônico, ... Personalidade: IA + modelagem de atitudes e emoções Essencial em entretenimento digital, realidade virtual, interfaces amigáveis ... 7 Outras propriedades freqüentemente associadas aos Agentes Continuidade temporal e persistência: Requer interface com sistema operacional e banco de dados Essencial em filtragem, monitoramento, controle, ... Mobilidade: Requer: Interface com rede Protocolos de segurança Suporte a código móvel Essencial em agentes de exploração da internet, ... 8 Como descrever um Agente? Pode ser descrito em termos de seu PAGE: P – percepções A – ações G – (goals) objetivos E – (environment) ambiente e outros agentes – nos sistemas multiagentes 9 Exemplo: Agente de Polícia raciocínio Agente Conhecimento: - leis comportament o dos indivíduos,... percepção Ambiente Objetivo: - fazer com que as leis sejam respeitadas execução Ações: - multar - apitar - parar, ... Agentes Algoritmo Básico e Arquiteturas 11 Agentes: Algoritmo básico função agenteSimples (percepção) retorna ação memória := atualizaMemória (memória, percepção) ação := escolheMelhorAção(memória) memória := atualizaMemória (memória, ação) retorna ação 12 Agentes: Arquiteturas Agente Agente Agente Agente Agente Agente tabela reativo reativo com estado interno cognitivo (baseado em objetivos) otimizador adaptativo autonomia complexidade 13 Agentes: Arquiteturas De forma bem simplificada, um agente pode ser visto como um mapeamento: seqüência perceptiva => ação ambiente sensores Raciocinador Agente modelo do ambiente atuadores 14 Agente Tabela – é mesmo um agente racional? Agente sensores Tabela Percepções ações . . ambiente . . atuadores Limitações Mesmo problemas simples requerem tabelas muito grandes ex. xadrez 30^100 Nem sempre é possível, por ignorância ou questão de tempo, construir a tabela Não há autonomia nem flexibilidade Ambiente acessível, determinista, episódico, estático, discreto e minúsculo! Agente Reativo Agente ambiente sensores Como está o mundo agora? Que ação devo escolher agora? Regras “condição-ação” atuadores Vantagens e desvantagens Regras condição-ação: representação inteligível, modular e eficiente ex. Se velocidade > 60 então multar Não pode armazenar uma seqüência perceptiva, pouca autonomia Ambientes: Reflexo imprescindível em ambientes dinâmicos Acessível, episódico, pequeno Agente reativo com estado interno Agente sensores estado: como o mundo era antes ambiente Como está o mundo agora? como o mundo evolui impacto de minhas ações Que devo fazer agora? atuadores Desvantagem: pouca autonomia não tem objetivo, não encadeia regras Ambientes: determinista e pequeno Ex. Tamagotchi Regras “condição-ação” Agente cognitivo baseado em objetivo ambiente sensores Agente estado: como o mundo era antes Como está o mundo agora? como o mundo evolui Como ele ficará se faço isto? impacto de minhas ações Que devo fazer agora? Objetivos atuadores Vantagens e desvantagens: Mais complicado e ineficiente, porém mais flexível, autônomo Não trata objetivos conflitantes Ambientes: determinista ex.: xeque-mate no xadrez Agente otimizador (utility based) Agente sensores estado: como o mundo era antes Como está o mundo agora? ambiente Como ele ficará se faço isto? Este novo mundo é melhor? Que ação devo escolher agora? atuadores Ambiente: sem restrição Desvantagem: não tem adaptabilidade Ex. motorista recifense Segurança e velocidade – conflito! como o mundo evolui qual é o impacto de minhas ações Função de Utilidade Agente que aprende sensores t+1 crítico avaliação t ambiente Agente trocas elemento de elemento de execução (agente) conhecimento aprendizagem objetivos de aprendizagem t atuadores Gerador de problemas Ambiente: sem restrição Vantagem: tem adaptabilidade (aprende) Ex. motorista sem o mapa da cidade Em Resumo... IA e Agentes IA cresceu muito nos anos 70 modelando a inteligência individual. Advento das redes de computadores modificou as necessidades! Inteligência como a integração dos processos de raciocinar, decidir, aprender e planejar. O Modelo de Agente aparece então como catalisador... De fato... Mundo onde informações e conhecimentos crescem (e mudam) rápido demais! O crescimento da Internet trás desafios constantes que incluem: Acesso a informações relevantes Identificação de oportunidades Ação no momento preciso Manipulação de grandes volumes de informação Ubiqüidade, Gerenciamento e Inteligência No Entanto... Vários problemas não podem ser tratados centralizadamente... Por exemplo... Controle de linha de metrô Monitoramento de Redes de Computador Diagnóstico Médico Compra e Venda Como Resolvê-los? Inteligência Coletiva IA Distribuída 25 Um Cenário... Inteligência Coletiva Porque pensar a inteligência/racionalidade como propriedade de um único indivíduo? Não existe inteligência ... Em um time de futebol? Em um formigueiro? Em uma empresa (ex. correios)? Na sociedade? Solução: IA Distribuída Agentes simples que juntos resolvem problemas complexos tendo ou não consciência do objetivo global Proposta por Marvin Minsky e em franca expansão... o próprio ambiente pode ser modelado como um agente 28 A IA Distribuída Grupo de Entidades que podem Interagir Organização Ação e Interação Metáfora de inteligência é o Comportamento Social. IA Distribuída: dois tipos de sistemas Resolução distribuída de problemas consciência do objetivo global e divisão clara de tarefas Exemplos: Robótica clássica, Busca na Web, Gerência de sistemas distribuídos, ... Sistemas Multi-agentes não consciência do objetivo global e nem divisão clara de tarefas Exemplos: n-puzzle, futebol de robôs, balanceamento de carga, robótica, ... 3 7 4 3 5 7 8 1 4 2 6 5 8 2 1 1 2 3 6 4 5 6 7 8 30 Agentes em IA Metodologia (metáfora) para projeto de sistemas 31 Agentes: Metodologia de desenvolvimento Decompõe problema em: percepções, ações, objetivos e ambiente (e outros agentes) Decompõe tipo de conhecimento em: Quais são as propriedades relevantes do mundo? Como o mundo evolui? Como identificar os estados desejáveis do mundo? Como interpretar suas percepções? Quais as conseqüências de suas ações no mundo? Como medir o sucesso de suas ações? Como avaliar seus próprios conhecimentos? O resultado dessa decomposição indica a arquitetura e o método de resolução de problema (raciocínio) 32 Simulação de Ambientes Às vezes, é mais conveniente simular o ambiente mais simples permite testes prévios evita riscos, etc... O ambiente (programa) recebe os agentes como entrada fornece repetidamente a cada um deles as percepções corretas e recebe as ações atualiza os dados do ambiente em função dessas ações e de outros processos (ex. dia-noite) é definido por um estado inicial e uma função de atualização deve refletir a realidade 33 Simulação de Ambientes função simulaAmbiente (estado, funçãoAtualização,agentes,final) repita para cada agente em agentes faça Percept[agente] := pegaPercepção(agente,estado) para cada agente em agentes faça Action[agente] := Programa[agente] (Percept[agente]) estado := funçãoAtualização(ações, agentes, estado) scores := avaliaDesempenho(scores,agente,estado) //opcional até final Cuidado para não cair em tentação e “roubar” do ambiente a descrição do que aconteceu. Usar a memória do agente! 34 Como desenvolver um software inteligente Projeto: Modelar tarefa em termos de ambiente, percepções, ações, objetivos e utilidade Identificar o tipo de ambiente Identificar a arquitetura de agente adequada ao ambiente e tarefa Implementação: O simulador de ambientes Componentes do agente Testar o desempenho com diferentes instâncias do ambiente 35 Porque usar a metáfora de agentes? 1. Fornece metodologias de desenvolvimento de sistemas inteligentes estendendo as de engenharia de software 2. Fornece visão unificadora das várias sub-áreas da IA 3. Ajuda a embutir a IA em sistemas computacionais tradicionais 4. Permite tratar melhor a interação com ambiente 5. Permite tratamento natural da IA distribuída 36 Duas noções fundamentais... Resolução Distribuída de Problemas (RDP) envolve: Um grupo de especialistas Habilidades Complementares Organização Fixa Sistemas Multiagentes (SMA)... Agentes podem preexistir Organização varia em tempo de execução Um Sistema Multiagente Interação Organização Agentes Recurso Esfera de Influência Ambiente Definindo SMA Um SMA é um sistema que possui os seguintes elementos: Um ambiente, E Um conjunto de objetos O Um conjunto de Agentes, A (AO) Um conjunto de relações R, que liga objetos Um conjunto de operações Op Operadores que representam os resultados das operações em Op e as reações do ambiente a eles. Trocando em miúdos... Um Sistema Multiagentes ... Consiste de uma coleção de componentes autônomos, com objetivos particulares Que se interrelacionam De acordo com uma Organização Interagindo, negociando e coordenando esforços para resolver tarefas Mas... Por que mesmo distribuir? Porque o problema é fisicamente distribuído. Porque o problema é heterogêneo. Porque o problema só pode ser resolvido pela integração de pontos de vista locais. Porque precisamos de adaptação a mudanças estruturais... Em resumo...É boa idéia quando... Precisamos manter a autonomia das sub-partes; As interações são complexas Não é possível descrever o Problema a priori. As vantagens... Maior rapidez na solução dos problemas Diminuição do overhead de comunicação Maior flexibilidade Aumento da Segurança Duas Formas de Projeto Organização Emergência de Propriedades Interação Agentes Restrições e Objetivos Considerações no Projeto de SMA Três Grandes Grupos... Aspectos Fundamentais Como podemos garantir compatibilidade de ações? Aspectos Arquiteturais Características a serem providas pela arquitetura Aspectos Ambientais Como é o ambiente onde funciona o SMA? Estrutura Padrão de Relações entre os agentes e sua distribuição de habilidades Cobertura: as habilidades necessárias para resolver problemas devem ser possuídas por pelo menos um agente; Conectividade: Agentes devem interagir de forma que suas habilidades possam ser integradas Comunicação Habilita os agentes a intercambiar informações. Percepção Ação Modelada sobre a comunicação humana Atos de Fala Blackboard Tem esforços de padronização! Organização Conjunto de Compromisso Globais, Crenças e intenções comuns aos agentes que querem atingir um objetivo comum. Definem... Um conjunto de diretrizes... Uma política de interação. Muitos exemplos! O CIn Sua Família Negociação Esforço para solução de conflitos e cooperação Grupo de agentes “self-interested” que consegue chegar a uma decisão conjunta. Envolve.. Linguagem Protocolo – ex. Contract Net Processo de Decisão Coordenação Fundamental para o trabalho conjunto. Um SMA pressupõe coordenação entre seus agentes! Porque... Há dependências entre as ações Nenhum indivíduo pode resolver o problema sozinho Deve-se respeitar as restrições globais Deve-se garantir a harmonia na execução conjunta de tarefas! Coordenação... II Então coordenação é... O processo pelo qual um agente raciocina sobre suas ações locais e as de outros agentes para garantir que a comunidade funcione coerentemente. Visa garantir que... Todas as partes necessárias existam na sociedade. Interação que possibilite a execução das atividades. Que todos atuem consistentemente Que tudo seja feito com dos recursos disponíveis Coordenação... III Para coordenar com sucesso é preciso... Uma estrutura... Flexibilidade nas interações Comunicação! Negociação! Conhecimento e raciocínio Para reconhecer interações potenciais entre planos de ação! Então... O fundamental é... Interagir!!! Com quem? Quando? Qual o conteúdo? Como? Que processos e recursos? Por que? Como estabelecer a compreensão mútua? Assim... Quando Encarar os SMA? Design de SMA Quando partir para SMA? Quando o ambiente é aberto; Quando os agentes são a metáfora natural. Quando há distribuição de dados, controle ou expertise. Quando estamos lidando com sistemas legados. Considerações em SMA Ação Como coordenar ações? O indivíduo e sua relação com o mundo Estados mentais Interação Comunicação Negociação/Argumentação Implementação Problemas no Desenvolvimento de Agentes Superestimativas do potencial dos agentes. Dogmatismo a respeito dos agentes. Não está claro porque usar agentes. Construção de soluções genéricas para problemas específicos. Desenvolver SMA é desenvolver Software... SMA é software “multithreaded”. E mais Problemas... Seu projeto não explora concorrência. Você resolve adotar sua arquitetura. Seus agentes usam IA demais. Os agentes estão em todos os lugares. Não tem agentes suficientes. A Interação é caótica... Aplicações de SMA Agentes para Gerenciamento de Processos ADEPT (Jennings et al. 1996) Cada departamento envolvido virou um agente. Construído em cima de CORBA Usou um Shell para Sistemas Especialistas Construção baseada na Arquitetura GRATE* Aplicações de SMA II Sensoriamento Distribuído O DVMT, de Victor Lesser (1980) Recuperação e Gerenciamento de Informação Agentes Pessoais de informação MAXIMS – Pattie Maes Agentes Web Guias Indexadores Aplicações de SMA III Agentes para E-Commerce Vários Tipos: Agentes de comparação Têm problemas quando comparam mais de um atributo. Leiloeiros (Auction Bots) Spanish Fishmarket Objeções a SMA Não é a mesma coisa que SD? Sincronização e Coordenação Dinâmicas Agentes têm interesses próprios!!! Não é IA? SMA têm características de CC e de ES! Em SMA, o aspecto social é fundamental! Objeções a SMA... II Não é só teoria dos Jogos? TJ muitas vezes desconsiderou a computação... Hipóteses da TJ são questionadas em SMA O que eu vou fazer com Ciência Social? Ambas servem como ferramentas uma para outra. Mas são bem diferentes!!!! Conclusões 68 Agentes no mapa da computação Nem todo agente é inteligente! Inteligência Artificial Engenharia de Software Agentes Sistemas Distribuídos 69