PLANEJADORES PRÁTICOS PLANEJADORES PRÁTICOS Jacques Robin DI-UFPE
Jan 18, 2016
PLANEJADORES PRÁTICOSPLANEJADORES PRÁTICOS
Jacques RobinDI-UFPE
Planejamento de Ordem Parcial (POP) Planejamento de Ordem Parcial (POP) com linguagem STRIPScom 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-STRIPSLimitaçõ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:Decomposição Hierárquica:Planejar com refinamento incrementalPlanejar 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:{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 operador não primitivoExemplo de operador não primitivo
Exemplo de decomposição hierárquicaExemplo de decomposição hierárquicaBuildHouse
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 planinputs: plan, an abstract plan with start and goal steps( and possibly other steps)loop do
if Solution?(plan) then return planSneed, c Select-Sub-Goal(plan)
Choose-Operator(plan,operators,Sneed,c)
Snomprim Select-Nonprimitive(plan)
Choose-Decomposition((plan,methods,Snonprim)
Resolve-Threats(plan)end
POP-HD-SCRIPTPOP-HD-SCRIPT
Solução abstrata x primitivaSoluçã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., se1. 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 Propriedades necessárias para garantir POP-HD mais eficiente do que POP 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 Propriedades necessárias para garantir POP-HD mais eficiente do que POPPOP-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-Upward solution property: contra-exemploexemplo
Busca e decomposição hierárquicaBusca e decomposição hierárquica
Consistente incompleto Consistente completo
Downward Solution Property
Inconsistente X: pode ser podado
Upward Solution Property
X
X
X X X X
X X X
XX X XXX
Decomposição e compartilhamentoDecomposiçã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 compartilharExemplo da necessidade de compartilhar
Curtir lua de mel & fazer bebê
Casar-seIr 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-STRIPSDe POP-HD-STRIPSpara POP-HAD STRIPSpara 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
De POP-STRIPS para POP-DUNC: estender De POP-STRIPS para POP-DUNC: estender precondiçõesprecondições
em POP-STRIPS, apenas conjunções de literais positivos
em POP-DUNC: • negativas (no lugar de apenas positivas)• disjuntivas (no lugar de apenas conjuntivas)• implicações universalmente quantificadas (no lugar de
apenas literais)
De POP-STRIPS para POP-DUNC: estender De POP-STRIPS para POP-DUNC: estender efeitosefeitos
em POP-STRIPS, apenas conjunções de literais (os negativos com semântica de hipótese de mundo fechado)
em POP-DUNC:• condicionais (no lugar de sempre verificados)• disjuntivos (no lugar de apenas conjuntivos)• implicações universalmente quantificadas (no lugar de
apenas literais) Efeitos disjuntivos tornam o ambiente não
deterministico.
Exemplo de efeito condicionalExemplo de efeito condicional
Op (Action: Move(b,x,y), Precond: On(b,x) Clear(b) Clear(y), Effect: On(b,y) Clear(x) On(b,x) Clear(y))Op (Action: MoveToTable(b,x), Precond: On(b,x) Clear(b), Effect: On(b,Table) Clear(x) On(b,x))
Op (Action: Move(b,x,y), Precond: On(b,x) Clear(b) Clear(y), Effect: On(b,y) Clear(x) On(b,x) Clear(y) when yTable)
Efeitos condicionais e ameaçasEfeitos condicionais e ameaças
Efeitos condicionais introduzem uma nova forma de ameaça:• efeito da forma ~c’ when p ameaça potencial para link
causal Si -- c --> Sj quando c e c’ unificam-se Solução:
• instanciar de c com valor proibindo tal unificação -- confrontação
Implicações universalmente Implicações universalmente quantificadasquantificadas
Precondições com quantificador universal, ex, x Block(x) n(x,b) Efeitos com quantificador universal, ex.,
Op (Action: Carry(bag,x,y), Precond: Bag(bag) At(bag,x), Effect: At(bag,y) At(bag,x) i Item(i) (At(i,y) At(i,x)) when In(i,bag))
Quantificação restrita a domínios finitos definidos em extensão no estado inicial: x T(x) C(x) C(x1) ... C(xn)
Garante não trazer de volta toda a complexidade da lógica da 1a ordem
Restrições de recursosRestrições de recursos
Pesquisa Operacional (PO): busca linearização ótima de POP manualmente construídos
PO integrada à IA permite construir planos ótimos com respeito a recursos limitados automaticamente
De POP-STRIPS para POP-RC-STRIPS:• Representações das precondições e efeitos enriquecida por
uma ontologia de medidas (cf. seção 8.4)• Testes aritméticos nas precondições• Atribuição aritmética nos efeitos• Algoritmo com novo passo verificando restrições aritméticas
(cf. seção 3.7)
Restrições temporaisRestrições temporais
Tempo = recurso com propriedades particulares:• ligado à ordem de execução• paralelismo permite compartilhamento não subtrativo• não há operador de abastecimento de tempo
De POP-STRIPS para POP-TR-STRIPS:• Representação das precondições, efeitos e ações
enriquecida por uma ontologia temporal (ex, a de Allen da seção 8.4)
• Algoritmo com novo passo verificando restrições temporais
Aplicações práticas de planejamentoAplicações práticas de planejamento
Construção de prédios: • SIPE
Escalonamento de tarefas industriais • TOSCA (Hitachi)• ISIS (Whestinghouse)
Construção, integração e verificação de espaçonaves:• Optimum-AIV (Agência Espacial Europea)
Planejamento para Missões Espaciais• Voyager, Telescópio espacial Hubble (NASA)• ERS-1 (Agência Espacial Europea)
ExercíciosExercícios
Codificar operador move(B,X,Y) usando predicados on(B,X), clear(B) e block(X) nas precondições e efeitos em:• POP-STRIPS• cálculo das situações
Codificar mesmo operador sem o predicado clear em:• POP-DUNC• cálculo das situações