Planejamento Hierárquico Jacques Robin CIn-UFPE
Planejamento de Ordem Parcial (POP) com linguagem STRIPS * mais expressivo que resolução de problema * porque usa a lógica para representar operadores declarativamente e composicionalmente * restrição da lógica da 1a ordem com cálculo das situações * restrito demais para domínios complexos de muitas aplicações reais * necessidade de achar um melhor compromisso expressividade/eficiência * aumentar formalismo e relaxar algumas restrições
Limitações de POP-STRIPS * Planejamento a um único nível de granularidade: de POP-STRIPS para POP-HAD-STRIPS * Precondições e efeitos não contextuais: de POP-STRIPS para POP-DUNC * Representação do tempo: de POP-STRIPS para POP-TI-STRIPS * Representação de recursos globalmente limitados: de POP-STRIPS para POP-RC-STRIPS * As aplicações reais mais complexas requerem: POP-TIRC-HAD-DUNC! :)
Decomposição Hierárquica: Planejar com refinamento incremental * Hierarquia de operadores abstratos: não direitamente executáveis (não primitivos) com várias decomposições em termos de ações menos abstratas * Construir POP inicial ao maior nível de abstração * Recursivamente decompor ações abstratas * Até POP final conter apenas de ações primitivas * Verificar consistência global do POP final * Sub-POPs largamente independentes: espaço de busca reduzido conhecimento composicional uso e reuso de sub-POPs pre-fabricados ou já planejados
Decompose(o,p) Decompose(Construction, Plan(STEPS:{S 1 :Build(Foundation),S 2 :Build(Frame), S 3 : Build(Roof), S 4 :Build(Walls), S 5 : Build(Interior)} Orderings:{S 1 <S 2 <S 3 <S 5, S 2 <S 4 <S 5 }, Bindings:{}, Links:{S 1 Foundation S 2, S 2 Frame S 3, S 2 Frame S 4, S 3 Roof S 5, S 4 Walls S 5 })) Exemplo de operador não primitivo
Exemplo de decomposição hierárquica Build House Obtain Permit Hire Builder Pay Builder Construction Decomposes to Build Frame Build Roof Build Walls Build Interior Build Foundation Decomposes to
Function POP-DH(plan,operators,methods) return plan inputs: plan, an abstract plan with start and goal steps( and possibly other steps) loop do if Solution?(plan) then return plan S need, c Select-Sub-Goal(plan) Choose-Operator(plan,operators,S need,c) S nomprim Select-Nonprimitive(plan) Choose-Decomposition((plan,methods,S nonprim ) Resolve-Threats(plan) end POP-HD-SCRIPT
Solução abstrata x primitiva * P solução abstrata para O, se P decomposição consistente e completa de O a um nível de abstração dado, i.e., se 1. P é internamente consistente. 2. todo efeito de O é atingido por pelo menos 1 passo de P. 3. toda pré-condição dos passos de P é satisfeita por um passo em P ou ser uma das pré-condições de O * P solução primitiva para O, se P verifica 1, 2, 3 e também: 4. todo passo de P é primitivo
Propriedades necessárias para garantir POP- HD mais eficiente do que POP * Downward solution property (DSP): P solução abstrata => P abstração de pelo menos uma solução primitiva P1 * Upward solution property (USP): P plano abstrato inconsistente => P abstração de nenhuma solução primitiva P1 * Ação principal: sub-ação A1 de ação abstrata A conectada a todas as pré-condições e efeitos de A
Propriedades necessárias para garantir POP- HD mais eficiente do que POP * DSP e USP nem sempre verificadas * Toda decomposição de toda ação abstrata contém uma única ação principal => USP verificada * DSP ou USP verificada => pior caso da busca para uma solução primitiva drasticamente reduzida * Mesmo quando DSP ou USP não são verificadas, detalhar soluções abstratas em primeiro ainda é uma boa heurística
efeito ~watch de GiveComb ameaça precond watch de GiveChain efeito ~hair de GiveChain ameaça precond hair de GiveComb Upward solution property: contra-exemplo
Busca e decomposição hierárquica * Consistente incompleto * Consistente completo * Downward Solution Property * Inconsistente * X: pode ser podado * Upward Solution Property X X XXXX XXX XXXXXX
Decomposição e compartilhamento * Maioria das decomposições das ações abstratas independentes umas das outras * Mas as vezes a única solução primitiva envolve compartilhamento de ações entre decomposições * 2 possibilidades: quando escolher decomposição de uma ação abstrata, verificar oportunidades e restrições de compartilhamento escolher decomposição sem compartilhamento, e depois usar regras de revisão (chamadas críticas) para tornar o plano primitivo resultante em uma solução com ações corretamente compartilhadas
Exemplo da necessidade de compartilhar Curtir lua de mel & fazer bebê Casar-se Ir para lua de mel Ter bebê Curtir Lua-de-mel & fazer bebê Casar-se & ir para lua-de-mel Casar-se & ter um bebê
De POP-HD-STRIPS para POP-HAD STRIPS * 2 formas ortogonais de planejamento hierárquico: hierarquia de ações de vários níveis de abstração para decomposição hierarquia de precondições de vários níveis de prioridade para aproximação * Podem ser combinadas para reduzir busca: começar por planos completos e consistentes embora abstratos e aproximativos * Exemplo de operador com precondições a 3 níveis de prioridades: Op(Action:Buy(x), Effect:Have(x) ^ ¬Have(Money), Precond:1:Sells(store,x) 2:At(store) 3:Have(Money)) * Hierarquia de aproximação ! Ação principal UDP verificada