Você está na página 1de 28

Inteligência Artificial

Prof. Dr. Tiago Bonini Borchartt


Programação Orientada a
Agentes - POA
Resumo:
• Introdução
• Agentes BDI
• Arquitetura BDI
• Linguagem AgentSpeak
• Exemplos
Introdução
• Linguagens de Programação Orientadas a Agentes tiveram seu início em 1993,
com o artigo “Agent-Oriented Programming” de Yoav Shoham.
• A proposta deste paradigma foi inspirada no conceito de Inteligência Artificial
Distribuída e nos Sistemas Multiagentes.

• Baseado na arquitetura BDI (Beliefs-Desires-Intentions)


• Crenças, desejos e intenções

• Essa arquitetura defende que da mesma forma que noções mentalísticas auxiliam
nosso raciocínio cotidiano, uma certa visão antropomórfica pode auxiliar na
programação de agentes.
Introdução
• A área de SMA ocupa-se da construção de sistemas computacionais a partir da
criação de entidades autônomas: Agentes!

• Os agentes interagem através de um ambiente compartilhado por outros


agentes: Sociedade!

• Cada agente possui um conjunto limitado de capacidades específicas e objetivos


próprios em relação aos estados do ambiente que quer atingir.

• Mecanismos de interação e coordenação também são necessários para os


agentes.
Introdução
• Existem dois grandes tipos de SMAs:
• Reativos:
• Seguem a ideia de que um comportamento inteligente pode emergir da interação de
um número grande de agentes simples (ex.: insetos).

• Cognitivos:
• O comportamento inteligente pode surgir de poucos agentes dotados de grande
capacidade computacional (ex.: humanos).
Introdução
• Um agente é dito autônomo se ele somente realiza tarefas por decisão própria,
com base em uma representação de seus interesses individuais.

• A principal diferença entre agentes e objetos computacionais, é a autonomia.

• Outro ponto geralmente adotado em SMAs é o conhecimento limitado ou


incompleto do ambiente.

• Os agentes não são capazes de perceber o mundo como um todo e suas decisões
são baseadas na parte do mundo que eles percebem.
Modelo genérico de um agente
Definições básicas
• Percepção: o agente deve ser capaz de perceber alterações no ambiente;

• Ações: as alterações no ambiente são provenientes das ações que o agente


realiza;

• Comunicação: uma das ações possíveis é se comunicar com outros agentes;

• Representação: o agente possui uma representação simbólica daquilo que


acredita ser verdade;
Definições básicas

• Motivação: como os agentes são autônomos, é necessário que eles tenham uma
motivação para alcançar seus objetivos;

• Deliberação: capacidade de decidir dentre suas ações, qual lhe deixará mais
próximo de seu objetivo;

• Aprendizagem: podem ser capazes de utilizar técnicas clássicas de IA, para


melhorar sua deliberação com o decorrer do tempo.
Arquitetura BDI
Arquitetura BDI
• Crenças: representam aquilo que o agente sabe sobre o estado do ambiente e
dos agentes naquele ambiente (inclusive ele mesmo);

• Desejos: representam estados do mundo que o agente quer atingir, em outras


palavras, aquilo que o agente quer que passe a ser verdade;
• Objetivos: subconjunto de desejos que são compatíveis entre si.

• Intenções: representam sequências de ações específicas que um agente se


compromete a executar para atingir determinado objetivo.
Arquitetura BDI
• Função Revisora de Crenças (FRC): recebe a informação sensorial e, consultando
suas crenças anteriores, atualiza estas para que reflitam o novo estado do
ambiente;

• Função Geradora de Opções (FGO): verifica quais as novas alternativas de


estados a serem atingidos são relevantes para os interesses do agente;
• Leva em consideração as crenças e intenções do agente

• A atualização dos objetivos se dá de duas maneiras:


• Observação do ambiente para determinar novos objetivos;
• Necessidades de executar objetivos específicos para atingir objetivos maiores.
Arquitetura BDI
• Função Filtro: atualiza o conjunto de intenções do agente, com base nas crenças
e desejos atualizados e nas intenções já existentes.

• A função filtro pode ser considerada a função deliberativa do agente.

• Com o conjunto de intenções já atualizado, a escolha de qual ação específica será


executada, entre aqueles pretendidas, será feita pela Função de Ação.
Linguagem AgentSpeak
• A linguagem AgentSpeak (ASL) foi projetada para a programação de agentes
baseados na arquitetura BDI.

• Um agente em ASL, corresponde à especificação de um conjunto de crenças que


formarão a base de crenças iniciais e um conjunto de planos;

• Um átomo de crença é um predicado de primeira ordem na notação lógica usual;

• Literais de crença são átomos de crenças ou suas negações;

• A base de crenças de um agente é uma coleção de átomos de crenças.


Linguagem AgentSpeak
• ASL distingue dois tipos de objetivos:
• Objetivos de realização (!): expressam que o agente quer alcançar um estado no
ambiente onde o predicado associado ao objetivo é verdadeiro.
• Objetivos de teste (?): retorna a unificação do predicado de teste com uma crença do
agente, ou falha, caso não seja possível associar aquele predicado a nenhuma crença
atual.

• Os eventos ativadores (triggers) definem quais eventos podem iniciar a execução


de um plano.
• Um evento pode ser interno, quando gerado pela realização de um objetivo, ou
externo, quando gerado pela atualização das crenças do agente.
• Os eventos são relacionados com a adição (+) e remoção (-) de atitudes mentais
dos agentes.
Linguagem AgentSpeak
• Um plano faz referência a ações básicas que o agente é capaz de executar.

• Um plano é formado de um evento ativador, que denota o propósito do plano, e


de uma conjunção de literais de crenças, que representa um contexto.
Exemplo de plano em ASL
• +show(A, V) : like(A) • O primeiro plano especifica que ao
anúncio de um show do artista A, no
• <- !reservar(A, V). local V, corresponde a adição de uma
crença +show(A, V), como consequência
da percepção do ambiente. Se for o
• +!reservar(A, V) : ¬ocupado(telefone) caso de o agente gostar do artista A,
então ele terá como objetivo reservar
• <- ligar(V); ingresso.
• ...;
• O segundo plano refere-se ao objetivo
• !escolher_assento(A, V). de reservar o ingresso, caso a linha
telefônica não esteja ocupada. Este
plano finaliza com a execução de um
subplano que é escolher o assento.
Exemplo robôs coletores de lixo em
Marte
• Dois robôs estão coletando lixo em Marte.
• O robô R1 procura lixos depositados no solo do planeta e quando algum lixo é
encontrado, o robô coleta o lixo e leva para o local onde está R2, larga o lixo lá e
retorna ao local onde o lixo foi encontrado para continuar sua busca a partir da
posição anterior.
• O robô R2 está posicionado ao lado de um incinerador, todo o lixo levado por R1
é colocado no incinerador por R2;
• Os pedaços de lixo são colocados aleatoriamente no ambiente.
• A ação de pegar lixo de R1 pode falhar, mas não mais que duas vezes, apenas
para inserir um não-determinismo.
Agente R1:
Agente R1:
Agente R1:
Agente R1:
Agente R1:
Agente R1:
Agente R1:
Agente R2:

Você também pode gostar