Planejamento
Viviane Torres da Silva
[email protected]
http://www.ic.uff.br/~viviane.silva/2010.1/isma
Planos

As tarefas associadas aos planos são:
– Planejamento: criação de planos
– Seleção de planos
– Execução dos planos
Objetivos
Estado inicial
Ações

Planejamento
p{i}
Seleção
p
Execução
Planejamento
– A criação dos planos é feita a partir de um conjunto de sub-passos (ou
ações)
Representações

Representação de estados:
– Infeliz ^ Triste
– Acima(B,A)

estado de uma pessoa
estado do bloco B
B
A
Representação de objetivos:
– É um estado especial, estado futuro que se deseja alcançar
– Ex.: Feliz ^ Contente
A
– Ex.: Acima (B,Mesa)

Representação de ações:
– É descrita por suas pré-condições e suas pós-condições
– Ex: Mover(B,A,Mesa)
– Pré-condições: ¬Acima(B,Mesa) ^ Acima(_,B) ^ MesaLivre
– Pós-condições: Acima(B,Mesa) ^ ¬ MesaLivre
B
B
A
Representações

Uma ação pode ser executada em qualquer estado no qual o
conjunto de pré-condições da ação seja verdadeiro

Depois da execução da ação, suas pós-condições refletem o
estado do ambiente

Um plano é uma seqüência de ações que quando executado a
partir de um estado inicial resulta em um estado final que
alcance o objetivo
Ambiente

Observável: podemos observar o estado das entidades no
ambiente

Determinista: sabemos qual é a conseqüência da execução de
uma ação

Estático: ambiente se modifica somente quando o agente
executa uma tarefa

Discreto: número fixo e finito de ações e objetos
Exemplo: O mundo dos blocos

Só um único bloco pode estar diretamente acima de outro
bloco
Um robô pode pegar um único bloco de cada vez e mover o
bloco para outra posição
O robô não pode pegar um bloco que leve outro em cima

Objetivo: colocar os blocos em uma determinada posição


Exemplo: O mundo dos blocos

Estados:
– Acima(B,A): B está acima de A (A pode ser a mesa)
– Livre(C): C não tem nenhum bloco acima

Ações:
– Mover(B,A,C): Mover B de A para C
• Precondições: Acima(B,A) ^ Livre(B) ^ Livre(C)
• Póscondições: Acima(B,C) ^ Livre(A) ^ ¬ Acima(B,A)
^ ¬ Livre(C)
– MoverParaMesa(B,A): Mover B de A para a mesa
• Precondição: Acima(B,A) ^ Livre(B)
• Póscondições: Acima(B,Mesa) ^ Livre(A) ^ ¬ Acima(B,A)
Algoritmos de Planejamento


Busca para frente
Busca para trás
Estado inicial: Acima(B,A)
Livre(B)
Livre(C)
Livre(D)
Objetivo: Acima(C,A)
Acima(D,B)
Livre(D)
Livre(C)
B
A
C
D
C
D
A
B
Busca para frente

Quais são as ações aplicadas ao estado atual que podem gerar o
objetivo?

Começamos considerando o estado inicial

Selecionamos as ações que podem ser aplicadas a partir do
estado inicial
– As ações aplicadas são aquelas cujas pré-condições são subconjunto do
estado inicial
– As pós-condições da ação aplicada gera o próximo estado

Aplicamos o passo anterior até encontrar o objetivo
– O objetivo deve ser o estado representado nas pós-condições das ações
Exemplo
B
A
C
Acima(B,A)
Livre(B)
Livre(C)
Livre(D)
Acima(C,A)
Livre(B)
Livre(C)
Livre(D)
D
Mover(B,A,C)
Mover(B,A,D)
Mover(C,Mesa,B)
MoverParaMesa(B,A)
Mover(C,Mesa,D)
Mover(D,Mesa,C)
Mover(D,Mesa,B)
MoverParaMesa(B,A)
…
Acima(C,A)
Acima(D,B)
Livre(C)
Livre(D)
Livre(A)
Livre(B)
Livre(C)
Livre(D)
Mover(C,Mesa,A)
Mover(C,Mesa,B)
Mover(C,Mesa,D)
…
Mover(D,Mesa,A)
Mover(D,Mesa,C)
Mover(D,Mesa,B)
Mover(C,Mesa,A)
Mover(B,Mesa,A)
Mover(B,Mesa,C)
Mover(B,Mesa,D)
…
Mover(A,Mesa,B)
Mover(A,Mesa,C)
Mover(A,Mesa,D)
C
D
A
B
Busca para trás

Quais são os estados a partir dos quais aplicando uma ação se
gera o objetivo?

Começamos considerando o estado final, o objetivo

Selecionamos as ações que podem ter sido aplicadas para gerar
o objetivo
– As ações aplicadas são aquelas cujas pós-condições geram uma das
condições do objetivo
– Somente consideramos ações relevantes, as que sabemos que podem
chegar ao objetivo
– As pré-condições da ação aplicada definem o próximo estado

Aplicamos o passo anterior até encontrar o estado inicial
Exemplo
C
D
C
A
B
A
Acima(C,A)
Acima(D,B)
Livre(C)
Livre(D)
Livre(A)
Livre(B)
Livre(C)
Livre(D)
Move(D,Mesa,B)
Move(D,C,B)
Move(D,Mesa,B)
Move(C,Mesa,A)
Move(C,D,A)
…
D
B
Acima(C,A)
Livre(B)
Livre(C)
Livre(D)
MoveParaMesa(B,D)
MoveParaMesa(B,C)
Move(C,Mesa,A)
MoveParaMesa(D,B)
MoveParaMesa(D,C)
Move(C,Mesa,A)
Move(C,B,A)
Move(C,D,A)
Acima(B,A)
Livre(B)
Livre(C)
Livre(D)
B
A
C
D
Ordenação parcial dos planos

Trabalhar com uma abordagem que considere que existem
vários sub-objetivos independentes

Solucionar cada um como um sub-plano

Combinar os sub-planos

É possível escolher os sub-objetivos mais importantes para
começar
Ex.: Planejar uma viagem de avião de Rio a Madrid

1. Encontrar um vôo de Rio a Madrid
2. Verificar como chegar da nossa casa até o aeroporto
3. Verificar como chegar do aeroporto de Madrid ao hotel
Exemplo: Colocar os sapatos

Objetivo: ter os sapatos postos
– Sub-objetivos: ter a meia direita posta, ter a meia esquerda posta, ter o
sapado direito posto e ter o sapato esquerdo posto

Ações:
– Colocar a meia direita
– Colocar a meia esquerda
– Calçar o sapato direito
– Calçar o sapato esquerdo

Existe uma ordem entre meia e sapado mas não existe ordem
entre esquerda e direita
– Colocar a meia esquerda tem que vir antes de calçar o sapato esquerdo
– Mas não é necessário executar exatamente antes
Quando consideramos organizações

Agentes na organização interagem para alcançar objetivos da
organização
Existem três tipos de planejamento:
 Planejamento centralizado para sistemas multi-agentes
– Um único agente faz o planejamento para os demais agentes

Coordenação centralizada dos planos parciais (ou sub-planos)
– Cada agente faz o planejamento de sub-planos para alcançar seus objetivos
individuais
– Um coordenador central tenta coordenar a execução dos sub-planos

Planejamento distribuído
– Não existe um coordenador central
– Os agentes negociam para coordenar suas ações e solucionar problemas
Planejamento centralizado para SMA

As tarefas que o agente tem que executar quando está
planejando para um conjunto de agentes ou para um único
agente são similares
1.
Ver o plano como um diagrama de estados acíclicos
(os estados são as ações)
2.
3.
Determinar quais ações podem ser executadas em paralelo e
introduzir ponto de sincronização
Distribuir a execução das ações para os vários agentes
Coordenação centralizada de planos parciais

Cada agente tem um objetivo e é capaz de criar seu próprio
plano e de executá-lo

Cada plano é enviado a um coordenador central

O coordenador:
– Sincroniza a execução de todos os sub-planos
– Encontra os conflitos
– Elimina os conflitos (arrumando as ações ou determinando os pontos de
sincronização)
Download

Planejamento