Planejamento Hierrquico Jacques Robin CInUFPE Planejamento de Ordem
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 1 a 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
Exemplo de operador não primitivo 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 decomposição hierárquica Build House Decomposes to Obtain Permit Construction Pay Builder Hire Builder Decomposes to Build Roof Build Foundation Build Frame Build Interior Build Walls
POP-HD-SCRIPT 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 Sneed, c Select-Sub-Goal(plan) Choose-Operator(plan, operators, Sneed, c) Snomprim Select-Nonprimitive(plan) Choose-Decomposition((plan, methods, Snonprim) Resolve-Threats(plan) end
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 POPHD mais eficiente do que POP Downward solution property (DSP): P solução abstrata => P abstração de pelo menos uma solução primitiva P 1 * Upward solution property (USP): P plano abstrato inconsistente => P abstração de nenhuma solução primitiva P 1 * Ação principal: sub-ação A 1 de ação abstrata A conectada a todas as pré-condições e efeitos de A *
Propriedades necessárias para garantir POPHD 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 *
Upward solution property: contra-exemplo • efeito ~watch de Give. Comb ameaça precond watch de Give. Chain • efeito ~hair de Give. Chain ameaça precond hair de Give. Comb
Busca e decomposição hierárquica * * Consistente incompleto Consistente completo * * Inconsistente X: pode ser podado X X X * X X X Downward Solution Property X * X X X Upward Solution Property X
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 um bebê Curtir lua de mel & fazer bebê Casar-se Ir para lua de mel Ter 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
- Slides: 15