RACIOCÍNIO PRÁTICO:
Classificação de
Wooldridge
Agentes dedutivos
Agentes baseados em lógica (já vimos)
Agentes de raciocínio prático
Esta aula!
Agentes de Raciocínio
Prático
São agentes que separam dois níveis de raciocínio:
1. Deliberar: Decidir qual estado do mundo interessa
2. Raciocínio Means-Ends: Decidir como atingir o
estado
Exemplo humano: escolha da carreira
Primeiro, escolho qualAgentes de Raciocínio
Prático
Por conta de restrições de tempo, precisa deliberar
em um tempo limitado
Interrompe mesmo que o estado escolhido não seja ótimo
O raciocínio means-ends é uma forma de
planejamento
Foge um pouco do escopo desta aula
Nesta aula, vamos falar do paradigma BDI, que é a
forma de raciocínio prático mais utilizada, talvez
Paradigma BDI
BDI se refere a Beliefs – Desires – Intentions
Inspiração: teoria do raciocínio humano prático, do
filósofo Michael Bratman (anos 80)
Foca no papel das intenções no raciocínio humano
Analogia
Redes Neurais – modelo fisiológico
BDI
Representação explícita de três elementos
Crenças (beliefs) – o que o agente acredita ser verdade (informação)
Desejos (desires) – que estados do mundo interessariam (possíveis
metas)
Intenções (intentions) – que estados o agente está trabalhando para
realizar (metas)
Resultado de deliberação
Cuidado: os sentidos dos três fogem um pouco do coloquial
Podem ou não ser representados simbolicamente
Intenções
Sentido coloquial duplo Explicação de ação realizada
Dirigida para o futuro (é esta!)
O agente deve acreditar que é possível É um objetivo ativo – está sendo buscado Associadas a um plano para realizá-las
Mas pode falhar
Deve ser persistente (a menos que haja um bom motivo para desistir) Restringe futuras deliberações (por consistência)
Intenções x Desejos
Desejo não tem plano / Intenção tem
Desejo: sonho / Intenção: meta
Desejos podem ser incoerentes entre si
Intenções, nãoPrincipal distinção – comprometimento (commitment)
O agente se compromete em levar o mundo ao estado descrito emDeliberação BDI
Variáveis:
Bel – universo de crenças possíveis
Int – universo das intenções
Des – universo dos desejos
Função de revisão de crenças:
brf : P(Bel) x Per P(Bel)
Recebe um conjunto de crenças
As percepções (atuais)
Deliberação BDI
Processo de decisão modelado por duas funções:
Função geradora de opções:
options : P(Bel) x P(Int) P(Des)
Gera desejos – opções
A partir de um conjunto de crenças e um conjunto de intenções
Deliberação BDI
Função de filtragem
filter : P(Bel) x P(Des) x P(Int) P(Int)
Seleciona entre opções conflitantes, para que o agente se comprometa com ela
A partir das crenças, desejos e intenções
Desejos podem ser escolhidos parar virar intenções
2. BDI – Means-Ends
Reasoning
Means-Ends Reasoning
Means-ends reasoning é o processo de decidir como
atingir o fim (as intenções) usando os meios
disponíveis
Fim = Intenção Meios = Ações/Plano
Função de planejamento
plan : P(Bel) x P(Int) x P(Ac) Ac*
Retorna uma sequência de ações (= plano linear)
Implementando
Means-Ends Reasoning
Pode ser feito com as técnicas de planejamento vistas
Base de conhecimento = crenças
Ações especificadas com pré e pós-condições
Resultado = intenções
Ou usar uma biblioteca de planos
Planos pré-calculados, antes da execução dos agentes
Ou usar busca?
Exemplo: Futebol
Um jogador com percepção limitada
Crenças: posições dos outros jogadores
Jogador fora de visão está na mesma posição? Segue na mesma
direção?
Desejos
Entrar em formação de defesa?
Marcar gol?
Intenção: um dos desejos
Means-ends reasoning: “comportamentos”
pré-implementados
Pseudo-Código v1
(incompleto)
3. Comprometimento no
BDI
Comprometimento
O código mostrado têm comprometimento exagerado
Por exemplo: o plano é executado inteiro (não desiste dele no meioda execução)
O código vai ficar mais “complicado” para garantir
níveis adequados de comprometimento
com intenções
Sobre Comprometimento
Comprometimento implica persistência temporal
Uma vez adotada uma intenção, ela não deve ser descartada tão
cedo
Três tipos
Cego – mantém até atingir a intenção
Single-minded – mantém até atingir ou até ser impossível
Open-minded – mantém enquanto ele acreditar que vale a pena,
mas pode considerar alternativas (def. minha)
O pseudo-código v1 tem comprometimento cego para
ambos!
Pseudo-Código v2
(incompleto)
Comprometimento com
os Meios (Planos)
Na segunda versão, o segundo loop garante um
comprometimento mais equilibrado quanto ao plano
Muda o plano não apenas quando totalmente
executado (quando fica vazio), mas também
Se atingir a intenção (por mudança no mundo, talvez)
Ou se ficar inconsistente com as crenças (if interno)
Comprometimento com
os Fins (Intenções)
Na versão 2, se o plano é interrompido, as intenções
mudam (ok). Mas, e durante a execução do plano?
Se nunca reconsiderar as intenções
A intenção adotada pode deixar de ser relevante ou tornar-se impossível
Mesmo assim, manteria as intenções e o plano (ruim)
Se sempre reconsiderar
Pode mudar de intenção com frequência e nunca atingir nenhuma
intenção
É custoso deliberar (e mudar intenção pode requerer replanejar!)
Comprometimento com
os Fins (Intenções)
Ideia 1: mudar intenções (e plano) imediatamente se
elas se tornarem impossíveis de serem atingidas
Função booleana impossible(I,B)
Ideia 2: controle de alto nível ajustado pelo projetista
Em função das intenções e crenças atuais
Função booleana reconsider(I,B)
Se as crenças mudarem (por conta das percepções), uma outra
intenção pode se tornar mais interessante
Pseudo-Código v3
(completo)
Comprometimento com
os Fins (Intenções)
Função reconsider(I,B) – retorna booleano
Indica o momento de mudar de intenções, por critérios subjetivos do projetista
O projetista deve implementar e ajustar conforme necessário
Deve ser coerente com o processo de deliberação (escolher intenções) – retorna true somente se as intenções forem mudar
Comprometimento com
os Fins (Intenções)
Ambientes mais estáticos (que mudam pouco)
Agentes fortemente comprometidos com as intenções têm melhor desempenho
Ambientes dinâmicos (que mudam muito rápido)
Agentes mais fracamente comprometidos com as intenções sesaem melhor
Projetista deve ajustar reconsider(...)
adequadamente
Considerações sobre o
Pseudo-Código
reconsider(...) direto na condição do 2º loop ?
Força a rever intenções e planoimpossible(...) como parte de reconsider(...) ?
Funciona, mas fica menos claro no códigoimpossible(...) em um if interno, antes de
reconsider(...) ?
Evita que sound(...) seja chamada inutilmente
PRS (Procedural
Reasoning System)
O primeira sistema com o paradigma BDI
Estruturas de dados representam os três elementosPRS
Aplicações
Sistema de controle de tráfego OASIS
Sistema de simulação SWARMM
Sistema de gerenciamento de processos de negócio
Surgiu nos anos 80 e sua ideia foi reimplementada
várias vezes, inclusive em Java
Conclusão
Paradigma BDI é influente – ajuda a subdividir o
problema de criar um agente
Ainda assim, é um tanto complexo