Agentes Inteligentes

De Aulas

Voltar à Inteligência Artificial

O que é um agente?

Um agente é algo que percebe seu ambiente através de sensores e atua no ambiente através de atuadores (effectors).

  • Agente Humano:
    • Sensores: Olhos, ouvidos, nariz, tacto, paladar.
    • Atuadores: Pernas, braços, mãos.
  • Agente Robótico: câmeras, sonares, sensores de infra-vermelhos, motores, rodas, etc.
  • Agente em Software: possui strings de bits codificadas como percepção e ação.

Figura agente.gif

Ação de um agente

Environment e;
RuleSet r;
while (true) {
	state = senseEnvironment(e);
	a = chooseAction(state, r);
	e.applyAction(a);
}

O que é um Agente Racional?

  • O objetivo da IA, segundo Russel & Norvig é projetar agentes que façam um bom trabalho agindo no seu ambiente. O princípio básico da utilização de agentes é que eles devem "saber das coisas" (know things).
  • Um Agente Racional Ideal é aquele que para cada possível seqüência de percepção, realiza uma ação que maximiza seu desempenho (mapeamento ideal), tendo como base as evidências fornecidas pela seqüência de percepção e pelos conhecimentos previamente existentes no agente.
  • Especificar que ações um agente deve tomar em resposta a qualquer seqüência de percepções, leva ao projeto de um agente ideal.
  • Mapeamento entre percepções e ações.
  • Exemplo: agente aspirador.

Mapeamento ideal

  • Mapeamento da seqüência de percepção até a ação
  • O comportamento de um agente depende de sua seqüência de percepção a sua conclusão (ação);
  • Pode-se descrever qualquer agente através de uma "tabela" de respostas (ações) perante as sua percepção;
  • Esta tabela representa o mapeamento entre a seqüência de percepção à ação.
  • Exemplo: a função raiz quadrada de uma calculadora;

Agente Autônomo

  • Agentes Autônomos são sistemas computacionais que operam em ambientes dinâmicos e imprevisíveis.
  • Eles interpretam dados obtidos pelos sensores que refletem eventos ocorridos no ambiente e executam comandos em motores que produzem efeitos no ambiente.
  • O grau de autonomia de um agente está relacionado à capacidade de decidir por si só como relacionar os dados dos sensores com os comandos aos motores em seus esforços para atingir seus objetivos satisfazer motivações, etc.

Construção de Agentes

Estruturas de dados internas são atualizadas via percepções e usadas para tomar a decisão das ações a executar (melhor ação).

function SKELETON-AGENT returns action
    static memory, the agent's memory of the world

    memory <- UPDATE-MEMORY(memory, percept)
    action <- CHOSE-BEST-ACTION(memory)
    memory <- UPDATE-MEMORY(memory, action)
    return action

Tipos de Agentes

Software Agents (softbots)

  • Agentes são considerados entidades computacionais baseados na idéias de que os usuários necessitam apenas especificar um objetivo em alto nível, ao invés de utilizar instruções explícitas, deixando as questões de como e quando agir a cargo do agente.
  • Aplicações: interfaces amigáveis, cartografia, auxílio ao ensino, auxílio ao diagnóstico médico.

Hardware Agents (robôs, embedded systems)

  • Agentes que operam em ambientes físicos (apesar de que muitas vezes estes ambientes são simulados).

Terceira geração de robôs, capazes de detectar mudanças ambientais e, através da reavaliação de seus objetivos, encontrar uma nova seqüência de ações capazes de persegui-los, sem que esta seqüência tivesse sido prevista.


Tipos Agentes
Tipo de Agente Percepção Ação Objetivos Ambiente
Sistema de Diagnóstico Médico Sintomas, exames, respostas do paciente. Perguntas, testes, tratamentos. Curar o paciente, reduzir custos. Paciente hospital
Sistema de Análise de Imagens de Satélite Pixels de intensidade variada e cores Fornecer uma classificação para a imagem Classificar corretamente Imagens de Satélites Orbitais
Robô manipulador Pixels de intensidade variada Pegar diferentes tipos de peças e colocá-las em containers. Colocar as peças nos containers corretos Linha de montagem com peças
Controlador de Refinaria Leituras de Temperatura e Pressão Abrir e fechar válvulas, controlar a temperatura. Maximizar a pureza, custos, segurança. Refinaria
Tutor Interativo de uma língua Palavras digitadas Propor exercícios, sugestões, correções. Maximizar o resultado do aluno Maximizar o resultado do aluno


Complexidade dos Agentes

Agentes Reflexivos

  • Não tem memória.
  • Quando cessa a percepção, cessa a ação.
  • Baseados em tabelas de regras condição-ação (regras if-then)
  • If car in front is braking (brake-light on), then initiate breaking.

Agente reflexivo.gif

function SIMPLE-REFLEX-AGENT(percept) returns action
    static: rules, a set of condition-actions rules

    state <- INTERPRET-INPUT(percept)
    rule <- RULE-MATCH(state, rules)
    action <- RULE-ACTION[rule]
    return action

Agentes com Estados Internos

  • Mantém um estado interno (representação do mundo).
  • Guarda informações que não são percebidas no momento.
  • Como o mundo evolui.
  • O que as ações provocam no mundo.

Agente estados internos.gif

function REFLEX-AGENT-WITH-STATE(percept) returns action
    static: state, a description of the current world state
            rules, a set ofcondition-action rules

    state <- UPDATE-STATE(state, percept)
    rule <- RULE-MATCH(state, rules)
    action <- RULE-ACTION[rule]
    state <- UPDATE-STATE(state, action)
    return action

Agentes com Metas

  • Descrição do estado do mundo e do objetivo a atingir.
  • Exemplo: Chegar a Florianópolis.
  • Resolução de problemas por Pesquisa, Planejamento.
  • Busca e Planejamento são subcampos da IA cujo objetivo é achar seqüências de ações que conduzam ao objetivo do agente.

Agente metas.gif

Agentes Baseados em Utilidade

  • Utilidade é uma função que mapeia um estado em um número real que descreve o grau de "felicidade" associado ao estado.
  • Permite decisões racionais em casos em que o objetivo tem algum problema.
  • Quando existem objetivos conflitantes, tal como velocidade e segurança.
  • Quando existem vários objetivos, a utilidade "diz" qual tentar alcançar primeiro.

Agente utilidades.gif

Ambientes

Propriedades dos Ambientes
Acessível x Inacessível Se o aparato sensor fornece acesso a uma descrição completa do ambiente.
Determinístico x Não–Determinístico Se o próximo estado do ambiente pode ser completamente determinado pelo estado atual do ambiente e pelas ações selecionadas pelo agente.
Episódico x Não–Episódico A experiência do agente é dividida em episódios. Cada episódio consiste na percepção do agente e na sua ação. Não existe passado nem futuro.
Estático x Dinâmico Se o ambiente se altera enquanto o agente está pensando, então o ambiente é dinâmico para o agente.
Discreto x Contínuo Se existe um número finito de diferentes percepções e ações possíveis, então o ambiente é discreto.