180 likes | 256 Views
Planejamento. Viviane Torres da Silva viviane.silva@ic.uff.br http://www.ic.uff.br/~viviane.silva/2012.1/isma. Planos. As tarefas associadas aos planos são: Planejamento: criação de planos Seleção de planos Execução dos planos Planejamento
E N D
Planejamento Viviane Torres da Silva viviane.silva@ic.uff.br http://www.ic.uff.br/~viviane.silva/2012.1/isma
Planos • As tarefas associadas aos planos são: • Planejamento: criação de planos • Seleção de planos • Execução dos planos • Planejamento • A criação dos planos é feita a partir de um conjunto de sub-passos (ou ações) Objetivos p{i} p Planejamento Seleção Execução Estado inicial Ações
Representações • Representação de estados: • Infeliz ^ Triste estado de uma pessoa • Acima(B,A) estado do bloco B • Representação de objetivos: • É um estado especial, estado futuro que se deseja alcançar • Ex.: Feliz ^ Contente • 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 A B A 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)
B A C D C D A B Algoritmos de Planejamento • Busca para frente • Busca para trás Acima(B,A) Livre(B) Livre(C) Livre(D) Estado inicial: Acima(C,A) Acima(D,B) Livre(D) Livre(C) Objetivo:
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
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(B,Mesa,A) Mover(B,Mesa,C) Mover(B,Mesa,D) Mover(A,Mesa,B) Mover(A,Mesa,C) Mover(A,Mesa,D) … Mover(B,A,C) Mover(B,A,D) Mover(C,Mesa,B) Mover(C,Mesa,D) Mover(D,Mesa,C) Mover(D,Mesa,B) MoverParaMesa(B,A) Livre(A) Livre(B) Livre(C) Livre(D) B … A C D C D Acima(C,A) Livre(B) Livre(C) Livre(D) Acima(C,A) Acima(D,B) Livre(C) Livre(D) A B … Exemplo Acima(B,A) Livre(B) Livre(C) Livre(D) MoverParaMesa(B,A) Mover(C,Mesa,A)
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
C D A B MoveParaMesa(B,D) MoveParaMesa(B,C) MoveParaMesa(D,B) MoveParaMesa(D,C) Move(C,Mesa,A) Move(C,B,A) Move(C,D,A) Move(D,Mesa,B) Move(D,C,B) Move(C,Mesa,A) Move(C,D,A) Acima(C,A) Livre(B) Livre(C) Livre(D) Move(D,Mesa,B) B A C D Livre(A) Livre(B) Livre(C) Livre(D) … C D A B Move(C,Mesa,A) Exemplo Acima(C,A) Acima(D,B) Livre(C) Livre(D) Acima(B,A) Livre(B) Livre(C) Livre(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 • Encontrar um vôo de Rio a Madrid • Verificar como chegar da nossa casa até o aeroporto • 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 • Ver o plano como um diagrama de estados acíclicos (os estados são as ações) • 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)