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
Exemplo de operador não primitivo
Decompose(o,p)
Decompose(Construction,
Plan(STEPS:{S1:Build(Foundation),S2:Build(Frame),
S3: Build(Roof), S4:Build(Walls),
S5: Build(Interior)}
Orderings:{S1<S2<S3<S5, S2<S4<S5},
Bindings:{},
Links:{S1 Foundation S2, S2 Frame S3, S2 Frame S4,
S3 Roof S5, S4 Walls S5}))
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 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 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 GiveComb ameaça precond watch de GiveChain
•efeito ~hair de GiveChain ameaça precond hair de GiveComb
Busca e decomposição hierárquica


Consistente incompleto
Consistente completo


Inconsistente
X: pode ser podado
X
X
X

X
X
X
X
X
Downward Solution Property
X

X
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 &
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:

Hierarquia de aproximação  ! Ação principal  UDP verificada

Op(Action:Buy(x),
Effect:Have(x) ^ ¬Have(Money),
Precond:1:Sells(store,x)
2:At(store)
3:Have(Money))
Download

hpop