INF 1771 Inteligência Artificial  
Aula 02 Agentes Inteligentes  
Edirlei Soares de Lima  
<elima@inf.puc-rio.br>  
Agentes Inteligentes  
Um agente é algo capaz de perceber seu ambiente  
por meio de sensores e de agir sobre esse ambiente  
por meio de atuadores.  
Agente  
percepções  
sensores  
?
Ambiente  
ações  
atuadores  
Exemplos  
Agente humano  
Sensores: Olhos, ouvidos e outros órgãos.  
Atuadores: Mãos, pernas, boca e outras partes do corpo.  
Agente robótico  
Sensores: câmeras e outros sensores.  
Atuadores: vários motores.  
Agente de software  
Sensores: entrada do teclado, conteúdo de arquivos e pacotes vindos  
da rede.  
Atuadores: tela, disco rígido, envio de pacotes pela rede.  
Agentes Inteligentes  
Agentes são diferente de meros programas, pois  
operam sob controle autônomo, percebem seu  
ambiente, adaptam-se a mudanças e são capazes de  
assumir metas.  
Mapeando Percepções em Ações  
O comportamento de um agente é dado abstratamente  
pela função do agente:  
f = P* A  
onde é a P* é uma sequência de percepções e A é uma  
ação.  
Sequência de percepções: histórico completo de tudo  
que o agente percebeu.  
Exemplo: O Mundo do Aspirador de Pó  
Percepções: Local e conteúdo.  
Exemplo: [A, sujo]  
Ações: Esquerda, Direita, Aspirar, NoOp  
Exemplo: O Mundo do Aspirador de Pó  
Sequência de Percepções  
Ação  
[
[
[
[
[
[
A, Limpo]  
Direita  
Aspirar  
Esquerda  
Aspirar  
Direita  
Aspirar  
A, Sujo]  
B, Limpo]  
B, Sujo]  
A, Limpo], [A, Limpo]  
A, Limpo], [A, Sujo]  
.
..  
[
[
A, Limpo], [A, Limpo], [A, Limpo]  
A, Limpo], [A, Limpo], [A, Sujo]  
Direita  
Aspirar  
.
..  
Programa: Se o quadrado atual estiver sujo,  
então aspirar, caso contrário mover para o  
outro lado.  
Medindo o Desempenho do Agente  
O agente deve tomar a ação “correta” baseado no  
que ele percebe para ter sucesso.  
O conceito de sucesso do agente depende uma medida de  
desempenho objetiva.  
Exemplos: quantidade de sujeira aspirada, gasto de energia, gasto  
de tempo, quantidade de barulho gerado, etc.  
A medida de desempenho deve refletir o resultado  
realmente desejado.  
Agentes Racionais  
Agente racional:  
Para cada sequência de percepções possíveis deve-se  
selecionar uma ação que espera-se que venha a maximizar  
sua medida de desempenho, dada a evidência fornecida  
pela sequência de percepções e por qualquer  
conhecimento interno do agente.  
Qual seria a medida de desempenho ideal para o agente  
aspirador de pó racional?  
Agentes Racionais  
Os agentes podem (e devem!) executar ações para coleta de  
informações.  
Um tipo importante de coleta de informação é a exploração de um  
ambiente desconhecido.  
Os agentes também podem (e devem!) aprender, ou seja,  
modificar seu comportamento dependendo do que ele  
percebe ao longo do tempo.  
Nesse caso o agente é chamado de autônomo.  
Um agente que aprende pode ter sucesso em uma ampla variedade de  
ambientes.  
Modelagem de um Agente  
O processo de modelagem de um agente envolve a  
definição de:  
Medida de Desempenho  
Ambiente  
Atuadores  
Sensores  
Exemplo - Motorista de Táxi  
Automatizado  
Medida de desempenho: viagem segura, rápida, sem  
violações às leis de trânsito, confortável para os  
passageiros, maximizando os lucros.  
Ambiente: ruas, estradas, outros veículos, pedestres,  
clientes.  
Atuadores: direção, acelerador, freio, embreagem, marcha,  
seta, buzina.  
Sensores: câmera, sonar, velocímetro, GPS, acelerômetro,  
sensores do motor, teclado ou microfone.  
Exemplo - Sistema de Diagnóstico  
Médico  
Medida de desempenho: paciente saudável,  
minimizar custos, processos judiciais.  
Ambiente: paciente, hospital, equipe.  
Atuadores: exibir perguntas na tela, testes,  
diagnósticos, tratamentos.  
Sensores: entrada pelo teclado para sintomas,  
descobertas, respostas do paciente.  
Exemplo - Robô de seleção de peças  
Medida de desempenho: porcentagem de peças  
em bandejas corretas.  
Ambiente: correia transportadora com peças;  
bandejas.  
Atuadores: braço e mão articulados.  
Sensores: câmera, sensores angulares  
articulados.  
Propriedades do Ambientes  
Determinístico:  
O próximo estado do ambiente é completamente  
determinado pelo estado atual e pela ação executada pelo  
agente.  
Não-Determinístico:  
O próximo estado do ambiente é desconhecido. Não se  
tem certeza do que pode acontecer com o ambiente ao  
executar uma ação.  
Propriedades do Ambientes  
Estático:  
O ambiente não muda enquanto o agente pensa.  
Dinâmico:  
O ambiente pode mudar enquanto o agente pensa ou está  
executando uma ação.  
Propriedades do Ambientes  
Discreto:  
Um número limitado e claramente definido de percepções,  
ações e estados.  
Contínuo:  
Um número possivelmente infinito de percepções, ações e  
estados.  
Propriedades do Ambientes  
Agente Único:  
Um único agente operando sozinho no ambiente.  
Multi-Agente  
Vários agentes interagindo ambiente.  
Multi-agente cooperativo  
Multi-agente competitivo  
Exemplos  
Xadrez  
Taxista  
Automático  
Poker  
Diagnostico  
Medico  
Sim  
Sim  
Não  
Não  
Não  
Não  
Completamente observável  
Determinístico  
Estático  
Não  
Não  
Sim  
Sim  
Não  
Não  
Não  
Não  
Sim  
Sim  
Não  
Não  
Não  
Sim  
Discreto  
Agente único  
Tipos Básicos de Agentes  
Existem cinco tipos básicos de agentes:  
Agentes reativos simples.  
Agentes reativos baseados em modelos.  
Agentes baseados em objetivos.  
Agentes baseados na utilidade.  
Agentes com aprendizagem.  
Agente Reativo Simples  
Agentes reativos selecionam ações com base somente na percepção atual.  
Exemplo: agente aspirador de pó  
Função AGENTE-ASPIRADOR-REATIVO ([posição, estado])  
retorna ação  
Inicio  
se estado = sujo então  
retorna aspirar  
senão se posição = A então  
retorna direita  
senão se posição = B então  
retorna esquerda  
Fim  
Agente Reativo Simples  
De uma forma mais genérica, podemos definir o comportamento de um  
agente reativo simples da seguinte forma:  
function SIMPLE-REFLEX-AGENT(percept) returns action  
static:rules, a set of condition action rules  
state INTERPRET-INPUT(percept)  
rule RULE-MATCH(state, rules)  
action RULE-ACTION(rule)  
return action  
Agente Reativo Simples  
Agente Reativo Simples  
O funcionamento do agente reativo é baseado em  
regras de condição-ação: if condição then ação.  
São simples, porém limitados:  
Funcionará somente se a decisão correta puder ser  
tomada com base apenas na percepção atual.  
A tabela de regras condição-ação pode se tornar muito  
grande em problemas complexos.  
Ambiente completamente observável.  
Agentes Reativos Baseados em Modelos  
Um agente reativo baseado em modelo pode lidar com  
ambientes parcialmente observáveis.  
O agente deve controlar as partes do mundo que ele não pode ver.  
O agente deve manter um estado interno que dependa do  
histórico de percepções e reflita os aspectos não observados  
no estado atual.  
Agente baseado em modelo é um agente que usa um modelo  
de mundo.  
Como o ambiente evoluí independente do agente?  
Como as ações do próprio agente afetam o mundo?  
Agentes Reativos Baseados em Modelos  
De uma forma mais genérica, podemos definir o comportamento de um  
agente reativo simples da seguinte forma:  
function REFLEX-AGENT-WITH-STATE(percept) returns an action  
static: state, a description of the current world state  
rules, a set of condition-action rules  
action, the most recent action, initially none  
state UPDATE_INPUT(state, action, percept)  
rule RULE_MATCH(state, rules)  
action RULE_ACTION[rule]  
return action  
Agentes Reativos Baseados em Modelos  
Agentes Reativos Baseados em Modelos  
Conhecer um modelo do mundo nem sempre é  
suficiente para tomar uma boa decisão.  
Exemplo:  
Um agente Motorista de Táxi chega a um cruzamento com  
três caminhos, qual direção tomar?  
Simplesmente reagir? mas existem três reações possíveis.  
Examinar o modelo de mundo? não ajuda a decidir qual o  
caminho.  
A decisão depende de onde o táxi está tentando chegar.  
Agentes Baseados em Objetivos  
Agentes baseados em objetivos expandem as capacidades  
dos agentes baseados em modelos através de um “objetivo”.  
O objetivos descreve situações desejáveis.  
Exemplo: estar no destino  
A seleção da ação baseada em objetivo pode ser:  
Direta: quando o resultado de uma única ação atinge o objetivo.  
Mais complexa: quando será necessário longas sequências de ações  
para atingir o objetivo.  
Agentes Baseados em Objetivos  
Para encontrar sequências de ações que alcançam os  
objetivos são utilizados algoritmos de Busca e Planejamento.  
A tomada de decisão envolve a consideração do futuro, o que  
não acontece com o uso de regras de condição-ação.  
“O que acontecerá se eu fizer isso ou aquilo?”  
“O quanto isso me ajudará a atingir o objetivo?”  
Agentes Baseados em Objetivos  
Agentes Baseados em Objetivos  
O agente que funciona orientado a objetivos é mais  
flexível do que um agente reativo.  
Entretanto, o objetivo não garante o melhor  
comportamento para o agente, apenas a distinção  
entre estados objetivos e não objetivos.  
Agentes Baseados na Utilidade  
Agentes baseados na utilidade buscam definir  
um grau de satisfação com os estados. O quanto  
o agente está “feliz” com aquele estado.  
Se um estado do mundo é mais desejável que  
outro, então ele terá maior utilidade para o  
agente.  
Utilidade é uma função que mapeia um estado  
para um número real que representa o grau de  
satisfação com este estado.  
Agentes Baseados na Utilidade  
Agentes com Aprendizagem  
Agentes com aprendizado podem atuar em  
ambientes totalmente desconhecidos e se  
tornar mais eficientes do que o seu  
conhecimento inicial poderia permitir.  
Em agentes sem aprendizagem, tudo o que o  
agente sabe foi colocado nele pelo projetista.  
Agentes com Aprendizagem  
Exercícios  
1) Defina uma medida de desempenho, o ambiente,  
os atuadores e os sensores para os seguintes casos:  
a) Robô jogador de futebol.  
b) Agente para uma livraria online.  
c) Assistente matemático para prova de teoremas.  
Exercícios  
Robô jogador de futebol  
Medida de desempenho:  
número de gols do time ou do jogador, ganhar o jogo.  
Ambiente:  
campo de futebol, bola, outros jogadores.  
Atuadores:  
motores para controle das pernas, cabeça e corpo.  
Sensores:  
câmera, sensores de orientação, comunicação entre os outros  
jogadores, sensores de toque.  
Exercícios  
Agente para uma livraria online  
Medida de desempenho:  
minimizar custos, informação sobre livros de interesse.  
Ambiente:  
internet e navegador.  
Atuadores:  
realizar uma nova compra, exibir informação de comprar antigas.  
Sensores:  
páginas, botões ou links clicados pelo usuário.  
Exercícios  
Assistente matemático para prova de teoremas  
Medida de desempenho:  
tempo gasto, grau de precisão.  
Ambiente:  
teorema a ser provado.  
Atuadores:  
aceitar teoremas corretos, rejeitar teoremas incorretos, inferir fatos.  
Sensores:  
dispositivo de entrada para ler o teorema.  
Exercícios  
2) Ambas as funções de medida de desempenho  
e utilidade em agentes baseados na utilidade  
servem para mensurar o quão bem o agente está  
atuando. Qual a diferença entre essas duas  
funções?  
A função de desempenho é utilizado externamente para  
medir o desempenho do agente. A função de utilidade é  
utilizado internamente pelo agente para estimar o seu  
desempenho. Todos os tipos de agentes tem uma função  
de desempenho, mas nem sempre uma função de  
utilidade.  
Leitura Complementar  
Russell, S. and Novig, P. Artificial Intelligence: a  
Modern Approach, 2nd Edition, Prentice-Hall,  
2003.  
Capítulo 2: Intelligent Agents