PLANEJADORES PRTICOS Jacques Robin DIUFPE Planejamento de Ordem
PLANEJADORES PRÁTICOS Jacques Robin DI-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
De POP-STRIPS para POP-DUNC: estender precondiçõ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 efeitos 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 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: Move. To. Table(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 y¹Table)
Efeitos 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 quantificadas * Precondições com quantificador universal, ex, * "x Block(x) Ø On(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(x 1) Ù. . . Ù C(xn) Garante não trazer de volta toda a complexidade da lógica da 1 a ordem
Restriçõ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 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 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í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
- Slides: 24