Agentes Inteligentes Alex F. V. Machado
Definição Um agente é tudo aquilo que pode ser visto como percebendo um ambiente e agindo sobre ele em busca de um conjunto de objetivos.
Um programa de IA pode ser visto como um Agente Racional Plano da aula O que é um Agente Racional (inteligente)? Qual sua utilidade em IA? Ambientes e arquiteturas Aplicações Estado atual do conceito de agente
O que é um agente Agente é qualquer entidade que: 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, ...) Mapeamento: seqüência de percepções => ação Agente a m b i e n t e sensores modelo do ambiente Raciocinador atuadores
Características Cognitivas (1/2) Básicas: Autonomia – capacidade de agir sem intervenção de outros agentes. Reatividade – habilidade de reagir a estímulos do ambiente. Proatividade – propriedade de agir guiado por objetivos, a partir de iniciativa própria.
Características Cognitivas (2/2) Adicionais: Sociabilidade – potencialidade de se comunicar com outros agentes do ambiente. Adaptatividade – capacidade de se adaptar ao ambiente (aprendizado). Mobilidade – habilidade de se mover entre ambientes. Veracidade – propriedade de dizer sempre a verdade. Benevolência – característica de realizar tudo aquilo que lhe é solicitado. Racionalidade – capacidade de agir sempre em busca dos próprios objetivos.
Medida de Desempenho (MD) Critério que define o grau de sucesso de um agente na realização de uma dada tarefa Esta medida deve ser imposta do exterior Exs. aspirador de pó, provador de teoremas, filtragem de e-mails, policial de trânsito, avaliador de clima...
Agente Racional (McCarthy & Hayes 69, Newell 81) Agente Racional: fazer a melhor coisa possível segue o princípio da racionalidade: dada uma seqüência de percepções, o agente escolhe, segundo seus conhecimentos, as ações que satisfazem melhor seu objetivo. Problema estado inicial + ações => estado final (objetivo) Racionalidade Onisciência, limitações de: sensores atuadores raciocinador (conhecimento, tempo, etc.) Agir para obter mais dados perceptivos é racional
A metáfora de agente decompõe 1) Problema em: percepções, ações, objetivos, e ambiente (e outros agentes) 2) 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 3) Arquitetura e método de resolução de problema
Agente de Polícia de Trânsito raciocínio Agente Objetivo: - fazer com que as leis sejam respeitadas Ações: - multar - apitar - parar, ... Conhecimento: - leis - comportamento dos indivíduos,... percepção execução Ambiente
Exemplos de Agentes
Ambiente Classes de ambientes Propriedades de um ambiente Físico: robôs Software: softbots Realidade virtual (simulação do ambiente físico): softbots e avatares Propriedades de um ambiente acessível (completamente observável) x inacessível (parcialmente observável) determinista x não-determinista episódico x não-episódico (seqüêncial) estático x dinâmico discreto x contínuo Outras propriedades Número de percepções, ações, objetivos,...
Ambientes: propriedades Acessível: quando os sensores do agente conseguem perceber o estado completo do ambiente. Episódico: a experiência do agente é dividida em episódios. Cada episódio consiste em o agente perceber e então agir. Cada episódio não depende das ações que ocorreram em episódios prévios. Determinístico: o próximo estado do ambiente pode ser completamente determinado pelo estado atual e as ações selecionadas pelo agente.
Ambiente Determinístico Próximo estado = estado atual + ações dos agentes. Devemos dizer se um ambiente é ou não determinístico do ponto de vista de um agente. Ex.: xadrez – determinístico robô que seleciona peças – não-determinístico
Ambientes: propriedades Estático: o ambiente não muda enquanto o agente está escolhendo a ação a realizar. Semi-dinâmico: o ambiente não muda enquanto o agente delibera, mas o "score" do agente muda. Discreto: quando existe um número distinto e claramente definido de percepções e ações em cada turno. Contínuo: percepções e ações mudam em um espectro contínuo de valores.
Exemplos de Ambientes
O que é um agente
Agentes Inteligentes Arquiteturas Agente tabela Agente reativo simples Agente reativo com estado interno Agente orientado a objetivos Agente baseado em utilidade Agente com aprendizagem autonomia complexidade
Agente Tabela sensores ambiente atuadores Agente Limitações Ambientes percepções ações . . Agente Limitações Mesmo Problemas simples -> 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 Este agente só tem fins didáticos!!! Não vale nem a pena pensar nele Ambientes acessível, determinístico, episódico, estático, discreto e minúsculo!
Agente Reativo Simples sensores atuadores Qual a aparência atual do mundo? Que ação devo executar agora? Regras “condição-ação” a m b i e n t e Agente 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 de percepções, pouca autonomia Ambientes: Reflexo imprescindível em ambientes dinâmicos Acessível, episódico, pequeno
Agente Reativo com Estado Interno Ambiente estado interno Sensors como o mundo evolui Estado do Mundo conseqüências de minhas ações regras condição-ação Que ação eu devo tomar Effectors Necessários quando um histórico é necessário, além da informação sensorial.
Agente Orientado a Objetivos Ambiente Estado do Mundo Sensors Que ação eu devo tomar objetivos Effectors estado interno como o mundo evolui conseqüências de minhas ações Como será o mundo se eu tomar ação A Ambiente: sem restrição Desvantagem: não tem adaptabilidade Ex. motorista recifence
Agente Baseado em Utilidade Ambiente Estado do Mundo Sensors Que ação eu devo tomar utility Effectors estado interno como o mundo evolui conseqüências de minhas ações Como será o mundo se eu tomar ação A O quão feliz vou ficar nesse estado Funciona escolhendo sempre um estado mais útil. Função de utilidade: determina o grau de satisfação do agente em relação a um determinado estado. Ambiente: sem restrição Desvantagem: não tem adaptabilidade
Agente com Aprendizado sensores crítico avaliação t a m b i e n t e trocas elemento de desempenho (agente) elemento de aprendizagem conhecimento objetivos de aprendizagem t Gerador de problemas atuadores Ambiente: sem restrição Vantagem: tem adaptabilidade (aprende) Ex. motorista sem o mapa da cidade
Simulação do Ambiente À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
Simulação de ambiente Observação: função simulaAmbiente (estado, funçãoAtualização,agentes,final) repita para cada agente em agentes faça Percept[agente] := pegaPercepção(agente,estado) Action[agente] := Programa[agente] (Percept[agente]) estado := funçãoAtualização(ações, agentes, estado) scores := avaliaDesempenho(scores,agente,estado) //opcional até final Observação: não cair em tentação “roubando” do ambiente a descrição do que aconteceu. Usar a memória do agente!
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
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, ...
Exemplos de Sistemas Multi-Agentes Ant Colony (Colônia de Formigas) Termite Behaviour (Comportamento de Cupins)
Termite Behaviour
Termite Behaviour Ambiente: Espaço em preto: área vazia Pontos amarelos: madeira Pontos vermelhos: cupins Objetivo: - Criar pilhas de madeira Comportamentos dos cupins: Se não estiver carregando nada: Anda aleatoriamente até achar uma madeira e a carrega Se estiver carregando madeira: anda aleatoriamente, no espaço vazio, deixando a madeira em um espaço vazio.
Sistemas de roteamento de redes de computadores Termite Behaviour Aplicação: Sistemas de roteamento de redes de computadores Problemas de Clusterização / Classificação de Dados (Ex. construção de grupos homogêneos de municípios de acordo com alguma variável sócio-econômica)
Ant Colony
Ant Colony Objetivo: - Achar comida e trazer para a toca no menor caminho Comportamento das formigas: - Andam em caminhos aleatórios e deixam um rastro de feromônio (rastro) por um determinado espaço de tempo. - Tendem a andar em caminhos cujo o rastro de ferômonio seja mais forte.
Ant Colony Aplicação: Sistemas de roteamento de redes de computadores Transporte urbano e logística Modelagem de Proteínas (Bioinformática)
Propriedades Autonomia Adaptabilidade & aprendizagem raciocínio, comportamento guiado por objetivos reatividade Adaptabilidade & aprendizagem Comunicação & Cooperação Personalidade