240 likes | 310 Views
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 1a ordem com cálculo das situações
E N D
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 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:{S1Foundation S2, S2Frame S3, S2Frame S4, S3Roof S5, S4Walls S5}))
Decomposes to Obtain Permit Pay Builder Construction Hire Builder Decomposes to Build Roof Build Foundation Build Frame Build Interior Build Walls Exemplo de decomposição hierárquica BuildHouse
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 é satisfeitapor 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
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
Consistente incompleto Consistente completo Downward Solution Property Inconsistente X: pode ser podado Upward Solution Property X X X X X X X X X X X X X X X Busca e decomposição hierárquica
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
Curtir lua de mel & fazer bebê Ir para lua de mel Casar-se Ter bebê Exemplo da necessidade de compartilhar Curtir Lua-de-mel & fazer bebê Casar-se & ir para lua-de-mel Casar-se & ter um bebê
De POP-HD-STRIPSpara POP-HAD STRIPS • 2 formas ortogonais de planejamento hierárquico: • hierarquia de açõesdevários níveis de abstração para decomposição • hierarquia de precondições de vários níveis deprioridadepara 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: 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 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(x1) Ù ... Ù C(xn) • Garante não trazer de volta toda a complexidade da lógica da 1a 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