Introdução aos Agentes Autónomos (UD1) Introdução IST- 2004/2005 Tendências e Tópicos Geral Ubiquidade – poder computacional espalhado – telemóveis, alimentos, etc • Conectividade – isolado vs redes distribuídas • Inteligência – tarefas cada vez mais complexas • Delegação – delegação de tarefas críticas – piloto automático • Servir o humano – uso de metáforas “humanas” em vez de interacção ao nível da máquina • Tendências e Tópicos A C.Computação foca as propriedades abstractas. MAS: Os ambientes realistas são mais emaranhados – grande variedade de acções e eventos, actuam de forma complexa sobre o mundo Agentes • Teorias - Intenções, desejos, crenças, objectivos, aspectos temporais, modelos lógicos dos agentes, execução das especificações lógicas, etc. • Arquitecturas - Deliberativas, Reactivas, Híbridas • Linguagens e Ferramentas Historial - - - - 1ª Conferência de IAD (International Workshop on Distributed Artificial Intelligence) nos EUA em 1980 (após uma reunião preparatória no MIT em 1979) Na Europa a Reunião MAAMAW realizou-se pela primeira vez em 1989, e após o lançamento do tema num painel na Conferência Europeia de Inteligência Artificial, ECAI-88. a primeira reunião internacional e bianual à escala mundial, a ICMAS, realizou-se pela primeira vez em 1995 nos EUA; o Workshop sobre Agent Theories, Architectures, and Languages (ATAL) lançada na Conferência Europeia de IA (ECAI) em 1994 e “finalmente” a Conferência Internacional Agents (Autonomous AgentsAA), que se realizou de 1997 a 1999 nos EUA e em 2000 pela primeira vez na Europa. Em 2002 a ICMAS juntou-se à AA para lançar a conferência AAMAS (em 2002 em Bolognha, 2003 na Austrália e 2004 nos US ). O termo “agente” Desde o ínicio que o termo agente tem sido usado nos mais diversos contextos e com as mais diversas interpretações. Carl Hewitt argumentou a certa altura que: “a questão relativa ao que é um agente é tão embaraçosa para a comunidade científica como era a questão de “o que é a inteligência em inteligência artificial”. Historial Dicionário de Português: • “Agente é Aquele que opera”, ou “Tudo o que age”, ou “Aquele que é encarregue dos negócios de outrem”. • Duas vertentes nestas definições: - Uma entidade que é capaz de agir - Um ajudante No entanto diversos autores nos seus artigos apresentam a sua definição de agente.... Definições "Software agents area software components that communicate with their peers by exchanging messages in an expressive agent communication language" (Genesereth e Ketchpel, 1994). "An agent is anything that can be viewed as perceiving its environment though sensors and acting upon environment through effectors" (Russel e Norvig, 1995). "Intelligent that agents continuously perform three functions: perception of dynamic conditions in the environment; actions to effect the conditions in the environment and reasoning to interpret perceptions, solve problems, draw inferences, and determine actions" (Hayes-Roth, 1995). Definições "An agent is the fundamental actor in a domain. It combines one or more service capabilities into a unified and integrated execution model which can include access to external software, human users and communication facilities." (a definição da FIPA- veja-se o Glossário). "An agent is a computational system that inhabits a complex, dynamic environment. An agent can sense, and act on, its environment, and has a set of goals or motivations that it tries to achieve through these actions" (P. Maes, 1994). "An agent is a program that a person or organisation vests its authority, that can run unattended for a long time and that can meet and interact with other agents. The person or organisation is the agent´s authority" (White, 1994). Definições "An agent is a software based computer system that enjoys the properties of: autonomy, social-ability, reactivity and proactiveness" (Wooldridge e Jennings, 1995). "Along with mobility agents have the following computational characteristics: autonomous; asynchronous; local interaction; parallel execution and object passing" (IBM Aglets White paper, 1997). "Most often the term agent is used to refer to an entity that functions continuously and autonomously in an environment in which other processes take place and other agents exist" (Shoham, 1994). Definições "In hope of demystifying the term, we enumerate a list of characteristics that have been proposed as desirable agent qualities: autonomous (goal-oriented, collaborative, flexible); temporal continuity; character; communicative; adaptive and mobile" (Etzioni, 1994). "Um agente é uma entidade real ou abstracta que 1) é capaz de agir sobre ela própria e o seu ambiente, que 2) dispõe de uma representação parcial sobre este ambiente, que 3) pode comunicar com outros agentes num universo multi-agente, e 4) cujo comportamento é a consequência das observações, do seu conhecimento e das interacções com os outros agentes" (Ferber e Gasser, 1991). Definição (mais recente) Agents are computer systems with two important capabilities. First they are at least to some extent capable of autonomous action – of deciding for themselves what they need to do in order to satisfy their design objectives. Second, they are capable of interacting with other agents- not simply by exchanging data, but by engaging in analogues of the kind of social activity that we all engage in every day of our lives: cooperation, negotiation and the like. M. Woodridge, 2002 Propriedades de Agentes As definições não nos dizem praticamente nada da forma como os agentes vão ser. Assim, actualmente caracterizam-se os agentes pelas suas “PROPRIEDADES”. Reactividade Se um ambiente de um agente é garantidamente fixo, então o agente não tem que se preocupar se as suas acções são ou não bem sucedidas. No entanto, no mundo real as coisas não são assim. O MUNDO MUDA e os ambientes são DINÂMICOS. Para construir sistemas (software) para estas situações o agente necessita de considerar que “pode falhar”! Logo, tem que reagir constantemente ao estado do ambiente…. Um agente Reactivo é aquele que mantém uma interacção constante com o seu ambiente, respondendo às mudanças que aí ocorrem (em tempo da resposta ser útil). Pro-actividade Reagir ao ambiente é simples… (estímulo -> resposta baseada em regras) Mas nós queremos que os agentes façam coisas por nós…!!! Ou seja, queremos COMPORTAMENTO BASEADO EM OBJECTIVOS. Pro-actividade = é a propriedade de gerar e tentar atingir objectivos; não somente reagir a eventos. É a propriedade que está associada à Tomada de Iniciativa. Para tal, é necessário reconhecer situações e oportunidades de agir.. Capacidade Social O mundo real é um sistema multi-agente: não podemos andar pelo mundo tentando atingir objectivos sem ter os outros em consideração. Alguns objectivos só podem ser alcançados em cooperação com os outros agentes… Capacidade Social: é a capacidade que os agentes têm de interagir com os outros numa linguagem de comunicação entre agentes. Propriedades de Agentes PROPRIEDADES Acompanhamento - Capacidade de controle sobre o ambiente envolvente de forma a garantir a autonomia da realização de tarefas. Adaptação Capacidade dos agentes se adaptarem (aprenderem) às mudanças (flexibilidade) que ocorrem no meio onde estão inseridos Autonomia Capacidade de operação sem a intervenção directa dos seres humanos e de controle sobre as suas acções e estados internos. No entanto, para outros, e segundo P. Norvik, um sistema é autonomo na medida em que o seu comportamento é determinado pela sua experiência passada, e logo não depende directamente de intervenção do exterior. Benevolência Quando não existem objectivos conflictuosos e podem executar o que lhes é pedido. Propriedades de Agentes PROPRIEDADES Carácter Possuidor de veracidade e personalidade. Colaboração Capacidade de empenhamento, isto é não obediência cega a ordens, e de modificação dos pedidos através da sua clarificação para o alcance de “objectivos comuns”. Comunicabilidade Capacidade de interacção com um utilizador (ou outros agentes) para receber instruções (de delegação) e para informar sobre o estado da realização de uma tarefa. Continuidade Capacidade de ter processos em execução contínua (do ponto de vista temporal). Credibilidade Capacidade de dar ao utilizador a noção de “vida” criando a “suspensão da descrença” Propriedades de Agentes PROPRIEDADES Delegação Execução de um conjunto de tarefas (actuação) em nome de um utilizador (ou outro agente) e sob sua aprovação (propriedade fundamental da agência). Emotividade Capacidade de representação e exibição de estados emocionais. Personalidade Capacidade de exibir um comportamento que demonstra estar de acordo com uma dada personalidade. Intencionalidade Capacidade de ter um comportamento que pode ser guiado por objectivos (realizar uma acção), e explicado através das noções crenças, desejos e intenções. Propriedades de Agentes PROPRIEDADES Mobilidade Capacidade de deslocação (transporte) de sitio (frequentemente uma máquina) para outro durante a sua execução, e tendo em atenção a privacidade e segurança Pró-Actividade Capacidade de exibição de um comportamento dirigido por objectivos e de tomada de iniciativas. Reactividade Capacidade de reacção ao ambiente em que o agente está inserido, bem como às suas mudanças. Existe um conjunto de estímulos aos quais o agente reage. Os agentes puramente reactivos não têm uma representação explícita do ambiente a actuam usando um tipo de comportamento baseado em estímulo/resposta , ou seja, respondem ao estado actual do ambiente no qual estão embebidos. Varias das definições previamente apresentadas (Russel e Norvig, 1995), (a definição da FIPA) assumem como propriedade básica dos agentes a sua reactividade. Propriedades de Agentes PROPRIEDADES Racionalidade Capacidade de intervenção de acordo com critérios de avaliação (utilidade) das suas acções, e de justificação das decisões. Sociabilidade Possibilidade de interacção com outros agentes através de uma linguagem de comunicação. Veracidade Propriedade de não comunicação de informações falsas. Combinação de propriedades Segundo (Wooldridge, 1994), podemos encarar duas grandes classes de agentes: • “uma fraca”, onde se destacam as propriedades de autonomia, sociabilidade, e pró-actividade, • “outra forte”, onde além destas propriedades é costume adoptar outros conceitos apenas habituais quando se falam dos seres humanos, tais como o conhecimento, a crença, a intenção e a obrigação (Shoham, 1993). Este desvio antropomórfico pode ainda ir mais além, como no caso dos agentes “emocionais” ou “credíveis” (Bates, 1994), dos ícones gráficos tipo desenhos animados, ou ainda das faces animadas (Maes, 1994)personagens sintéticas. Problema da autonomia Segundo Castelfranchi (Castelfranchi, 1995) podemos detectar vários graus de autonomia, dado que esta é um conceito relacional (ou melhor, um conceito social). Assim: um agente só é autonomo em relação à influência dos outros agentes. • Qual a relação entre a autonomia de um agente e a sua capacidade de colaboração e aprendizagem? Tendo em conta que os agentes são situados, adaptando-se ao ambiente onde estão inseridos, bem como a outros agentes, então a autonomia de um agente tem necessáriamente que ser limitada.! Problema de Descartes: Como é que o comportamento humano responde e se adapta ao ambiente, e ao mesmo tempo, é independente dos estímulos externos? Problema da autonomia Autonomia em relação ao contexto fisico (ao ambiente)Este tipo de autonomia entre em conflito com a necessidade de adaptação de um agente. Ou seja, quanto mais autonomo o agente é do ambiente, menos necessidade tem de se adaptar a ele e de interagor com ele. No extremo, um agente que não interage com o ambiente comporta-se de forma autista. Problema da autonomia Autonomia em relação ao contexto social (a outros agentes)este tipo de autonomia tem a ver com os objectivos dos agentes. Poder-se-á dizer que o grau de autonomia é dado pelo numero e valor dos objectivos que o agente tem que não consegue atingir sem a ajuda de outros. Este tipo de autonomia pode ainda ser decomposto em dois tipos: autonomia relativa aos meios de execução e autonomia relativa aos objectivos. Problema da Autonomia Postulatos que caracterizam um agente social autónomo (Castelfranchi). - O agente tem os seus próprios objectivos (e não são derivados dos objectivos dos outros); - O agente é capaz de tomar decisões relativas a vários objectivos que podem estar em conflito; - O agente adopta objectivos de outros agentes e do exterior (é influenciável) - Adopta objectivos de outros agentes como consequência de uma escolha - Adopta objectivos de outros agentes se vê que a sua adopção o leva a atingir os seus próprios objectivos. Contraste entre tipos de Agentes Agentes Reactivos Nenhuma representação Nenhuma memória da sua história Funcionamento estímulo/resposta Grande número de agentes Agentes Cognitivos Representação explícita do ambiente Podem ter em conta o seu passado Funcionamento complexo Pequeno número de agentes Enquadramento: Tipologias de Agentes Tipologia de Nwana (1996) Agentes definidos por dimensões de classificação • • • • • • Mobilidade: estático ou móvel Modelo simbólico de Raciocínio: deliberativo ou reactivo Papeis Filosofias Híbridas Atributos Secundários Atributos Primários: autonomia, cooperação, aprendizagem Enquadramento – Tipologia de Nwana Agentes Colaborativos com Aprendizagem Mundo de Agentes Agentes Cooperação Agentes Colaborativos Aprendizagem Inteligentes Autonomia Agentes de Interface Comparação entre duas entidades da IA Utilizador Tarefa Domínio Dependência Adaptação ao meio Meio/ambiente Agente/Programa Sistema Pericial utilizador comum perito tarefa vulgar/simples tarefa sofisticada domínio pessoal domínio específico autónomo dependente do utilizador adaptativo conhecimento (+/- est) distribuído (social) isolado Agentes e IA… Não são os agentes um outro projecto de IA? Não temos que resolver TODOS os problemas da IA para conseguir construir agentes? “A LITTLE INTELLIGENCE GOES A LONG WAY!” Oren Etzioni a falar da experiência com o NETBOT We made our agents dumber and dumber and dumber … until finally they made money… Exemplos de Agentes Agente Percepções Acções Ambiente Robot jardineiro localizar-se; verificar se chove; se jardim limpo, se jardim sujo, se planta seca, se planta fraca, se ervas daninhas grandes, se planta a crescer, se planta com flores: andar, regar, cortar as ervas daninhas, limpar, plantar, semear, dar alimento, e cortar ramos a planta. O jardim Planta Detecta sol, detecta agua crescer, murchar e morrer O jardim Taxista artificial Câmeras velocímetro; GPS; sonar; microfone Rodar o volante; acelerar; travar; falar com o passageiro Estradas, outros carros, peões.. Agente de informação numa rede Monitorar ficheiros e directórios, Criar outros agentes, determinar se um host está ligado, enviar mensagens, moververificar se um site é atingível. se de site para site Uma rede heterogénea e que muda Exemplos de Agentes Agente Percepções Acções Ambiente Agente de compras Procurar "site" de compras, procurar atributos de produtos à venda. Mover-se para um "site", dar conselhos ao utilizador, comprar produtos. WWW, e sites WWW de compras Agente jogador na liga do simulador do RoboCup Sensores para determinar onde é que o jogador está colocado no campo, onde está a bola e onde estão os outros jogadores. Deslocar-se no campo, atirar a bola, defender a bola. O campo de football (fornecido pelo simulador) com uma bola e outros jogadores. Um agente tutor de matemática Acções dos alunos; respostas de aplicações às acções dos alunos; acções de outros agentes. Sugestões de matéria, sugestões de exercícios, correcções, exemplos, dicas. Uma situação de aprendizagem (uma aula) Agente Reactivo Simples Agente jardineiro reactivo simples (veja-se (Russell e Norvig, 1994) function Agente_Jardineiro(percepção) returns acção static regras % as regras de condição acção estado <- INTERPRET-INPUT(percepção) regra <- RULE-MATCH(estado,regras) acção <- RULE-ACTION(regra) return acção Regra que relaciona as percepções com as acções: Se flor-murchar ENTAO regar Agente Reactivo Com Estado Agente jardineiro reactivo com representação do estado (veja-se (Russell e Norvig, 1994) function Agente_Jardineiro(percepção) returns acção static regras % as regras de condição acção estado-mundo % estado do mundo estado-mundo <- UPDATE-STATE(estado-mundo,percepção) regra <- RULE-MATCH(estado-mundo,regras) acção <- RULE-ACTION(regra) estado-mundo <- UPDATE-STATE(estado-mundo,acção) return acção Agente Com Objectivos Agente jardineiro com objectivos (veja-se (Russell e Norvig, 1994) function Agente_Jardineiro(percepção) returns acção static regras % as regras de condição acção estado-mundo % estado do mundo objectivos % objectivos estado-mundo <- UPDATE-STATE(estado-mundo,percepção) regra <- RULE-MATCH(estado-mundo,regras,objectivos) acção <- RULE-ACTION(regra, objectivos) estado-mundo <- UPDATE-STATE(estado-mundo, acção) objectivos <- UPDATE-GOALS(objectivos, estado-mundo, acção) return acção Os agentes e o ambiente: como abordar o estudo de agentes “um agente como uma entidade sistémica que observa e interpreta o ambiente que o cerca através de sensores e que intervém sobre o ambiente através de actuadores (Russell e Norvig, 1994)”. SISTEMA estados internos percepções AMBIENTE acções Os agentes Normalmente: • • • Não tem controle completo sobre o ambiente, quando muito parcial (pode influenciar, mesma acção pode não produzir os mesmos resultados, pode falhar) Tem um reportório de acções (nem todas efectuadas em todas as situações – precondições) Tem de decidir que acções efectuar de forma a melhor satisfazer os seus objectivos – arquitectura de agente = de tomada de decisão SISTEMA estados internos percepções AMBIENTE acções Propriedades dos Ambientes Que propriedades podemos encontrar nos ambientes que condicionam as propriedades dos agentes? Ambiente Acessível versus Ambiente Inacessível - Um ambiente diz-se acessível se o seu aparelho sensorial lhe permite aceder ao estado do ambiente. Caso isto aconteça, o agente não tem que manter no seu estado interno a trajectória do mundo. Propriedades de Ambientes Deterministico versus Não-Determinístico - Se o próximo estado do ambiente é completamente determinado pelo estado actual do ambiente e pelas acções do agente, então o ambiente diz-se determinístico. Dado que normalmente existem outros agentes no ambiente (incluindo utilizadores humanos), a maioria dos ambientes nos quais os agentes estão embebidos são não-determinísticos. Estático versus Dinâmico - Se um ambiente muda enquanto o agente está em deliberação então diz-se que o ambiente é dinâmico. Caso contrário é estático. Exemplos de ambientes dinâmicos são os ambientes de football das ligas do RobotCup, ou o ambiente de agentes de pesquisa de informação na Web. Discreto versus Contínuo - Se o numero de percepções e acções é limitado diz-se que é discreto. Caso contrário é continuo. Propriedades de Ambientes: Exemplos Agente Ambiente Acessível Determinístico Estático Discreto Jogador Xadrez Sim Sim Sim Sim Taxista artificial Estradas, trafego, peões Não Não Não Não Agente num ambiente virtual 3D Floresta com Não outros agentes num ambiente virtual 3D Não Não Parcial Agente de informação numa rede Rede heterogénea Não Não Parcial Parcial Um novo desafio na IA Ambiente Xadrez Robocup Estático Dinâmico Mudança de Estado Voltas Acessibilidade Completa Leitura dos sensores Simbólica Controlo Central Tempo real Parcial Não simbólica Distribuído Ambientes simulados Russell e Norvig, a simulação de um ambiente poderá fazer-se através de um procedimento com a seguinte aparência (simplificado): procedure simula-ambiente(estado, FUNCAO-MUDANCA, agentes, término) inputs estado % estado do mundo função-mudança % agentes % término % repeat for each agente in agentes do PERCEPT(agente) <- GET-PERCEPT(agente,estado) end for each agente in agentes do ACTION(agente) <- RUN-AGENT(agente)(PERCEPT(agente)) end estado <- FUNCAO-MUDANCA(acções, agentes, estado) until término(estado) Ambientes Simulados Ambientes Simulados Ambientes Reais: exemplos Ambientes Mistos Ambientes que combinam o mundo real e o mundo virtual... Ambientes Mistos (Void*) <<<Void* VIDEO>>> Resumo Comportamento possível/ Teoria informal/ Conceptualização Linguagens de formalização Caracterização do ambiente TEORIA DE AGENTES ARQUITECTURAS DE AGENTES (modelos) Teorias de comunicação/ de cooperação/ CONSTRUÇÃO de negociação Bancadas Linguagens DE UM AGENTE i SOCIEDADE DE AGENTES APLICAÇÕES